Infinisearch
Veteran
Wow thats pretty big news.Vulkan is merging with OpenCL for an all around graphics and compute API
Wow thats pretty big news.Vulkan is merging with OpenCL for an all around graphics and compute API
This is the most awesome news I have heard in long time. We finally get productivity compared to CUDA in game GPU programming soonVulkan is merging with OpenCL for an all around graphics and compute API
https://www.pcper.com/reviews/General-Tech/Breaking-OpenCL-Merging-Roadmap-Vulkan
Vulkan is Windows + Linux + Android. Consoles have their own APIs. iOS and Mac have Metal.Seems like this news puts Direct3d in a really tough spot. Personally, I'd be happy if Mac supported Vulkan and we could just have every "pc" game show up on Windows, Mac, Linux.
Vulkan is Windows + Linux + Android. Consoles have their own APIs. iOS and Mac have Metal.
Agreed. Also OpenCL and Vulkan have different memory models. I just hope that we get a better C++ style shading language to Vulkan with generics and other modern features. Like Metal and CUDA. HLSL and GLSL are designed for DX9 hardware, to describe small (<64 instruction) pixel/vertex shader programs. We need a better language for compute shaders.I am not fully convinced: would make more sense having a single universal SPIR-V high level interface for me (like an intermediate API, maybe with new rebranded shading language) which can be used in both OpenCl and Vulkan.
Merging all the rest of the APIs looks like a big no-no for me. Remember also OpenCL is not meant to run on GPUs only.
There are lots of stupid limitations. Let me list some...I'll disagree here, HLSL & GLSL are C derivatives, although they lack pointers [which reduces their versatility] they by no means are preventing good programming practice.
You have been forever able to forward declare struct & functions, you can append then to generate your programs and don't have to rely on that horrible pre-processor [that really should be forbidden], it encourages good design. (Well it would w/o that horror that a string pre processor is)
But I agree a C with generics (and pointers) would be much more powerful and close to my ideal language (be it for GPU or CPU).
I just ran the 3D Mark API Overhead feature test (V2.0) on my i7-3770K (4GHz all cores) + GTX970 (OCed a bit). I'm still on Win7 so no DX12 but I found the Vulkan result interesting.
DirectX 11 single-thread -- 2 464 400 Draw calls per second
DirectX 11 multi-thread --- 3 057 329 Draw calls per second
Vulkan -------------------------- 17 128 458 Draw calls per second
I've always heard that NVIDIA cards (especially pre-Pascal) don't gain much from DX12/Vulkan but I guess it does make a bit of difference. 3 million vs 17 million lmao.
But the GPU + driver is not irrelevant. It's more of a software issue but the hardware does matter to some extent (for example the DX12/Vulkan way of issuing commands would not work on G80).That has nothing to do with hardware, that's the CPU overhead of the run-time.
Well... You need to know the circumstances in which the numbers above from 3D API Overhead feature test are achieved. That is pretty much just draw calls without much changing of state in between. At the end of day even in DX11 most of the CPU cost is from building and changing graphics state and not directly from issuing draw calls and that's not something that DX12/Vulkan made significantly faster.On another note, DX11 games are rarely limited by draw calls since there are many ways to reduce them but at the end of the day they still take a significant amount of CPU time. In DX12/Vukan, those tricks can still be used and the amount of CPU time spent issuing commands to the GPU should be minimal right?
Pardon my ignorance, but is that true for GCN cards as well?Well... You need to know the circumstances in which the numbers above from 3D API Overhead feature test are achieved. That is pretty much just draw calls without much changing of state in between. At the end of day even in DX11 most of the CPU cost is from building and changing graphics state and not directly from issuing draw calls and that's not something that DX12/Vulkan made significantly faster.
But the GPU + driver is not irrelevant.
It's more of a software issue but the hardware does matter to some extent (for example the DX12/Vulkan way of issuing commands would not work on G80).
On another note, DX11 games are rarely limited by draw calls since there are many ways to reduce them but at the end of the day they still take a significant amount of CPU time.
In DX12/Vukan, those tricks can still be used and the amount of CPU time spent issuing commands to the GPU should be minimal right?