I know there are a lot of threads saying that performance would improve with Vulkan and DX12, but this is a very specific, but enormous issue that may be solved with these modern APIs. Many games suffer stuttering, some more than others (I'm looking mainly at Metroid Prime) and this is because it has to create a shader for use of PC APIs. I heard that DX12 and Vulkan however are more close to the metal in terms of programming. So does this mean that it might be possible to completely avoid shaders and perform more accurately towards how a Gamecube renders graphics while boosting performance.
I understand that the overall performance benefit of Vulkan/DX12 will likely be Minimal for low-end GPUs, but higher accuracy in Dolphin seems to generally give boosts, and this, while not improving people's experiences much on slow PCs, will greatly enhance those with high-end PC as stuttering is the largest problem in Dolphin to date, and that affects every PC, no matter how powerful.
Before dismissing this as another DX12/Vulkan thread, I think this specific issue does not get enough attention. Please read it before commenting.
I don't have enough knowledge in the GPU emulation stuff but I think it's veeeeeeery unlikely we can just skip using shaders, even with DX12/Vulkan...
Shaders are still a thing with those APIs.
(10-10-2015, 04:10 PM)helios747 Wrote: [ -> ]Shaders are still a thing with those APIs.
Yup. The only thing about Vulkan that changed with shaders is that it can use HLSL or GLSL through SPIR-V
I know it still has shaders, but are they required? Or is all this about closer-to-metal programming just BS and it's just a gimmicky phrase they use. If so, it would be nice if someone actually made an API that bypasses shaders altogether on PC and allow full metal performance.
It's not BS. Even Low Level APIs need Shaders. The PS4 and Xbox One use Shaders as well.
Is it possible to do what they did with Gallium3D (Native DirectX 10-11 port for Linux) with it's own direct API to render like a GameCube. It would only work on Linux though, but it would be interesting to boot into something like DolphinOS for best performance. Here is an article about Gallium3D
http://www.phoronix.com/scan.php?page=article&item=mesa_gallium3d_d3d11&num=1
So essentially instead of converting GCN shaders to another API (which can take time and cause stuttering), you could port the GCN API to run directly on PC hardware. I am aware this is no easy task, but it seems like it may be necessary to get a complete performance boost in dolphin. If the tools do not exist, sometimes we must build our own. I don't have any skill in this area, but I would be willing to donate $20 to see this done.
(10-11-2015, 07:41 AM)phly95 Wrote: [ -> ]So essentially instead of converting GCN shaders to another API (which can take time and cause stuttering), you could port the GCN API to run directly on PC hardware.
That's the point. GC/Wii doesn't use any kind of shaders, there's no conversion. But to emulate its effects on PC we must use them, from our FAQ:
Quote:The GPU is not using shaders: every graphics effect and every computation done by the game is executed directly by the hardware without an intermediate programming language. This does not match how a PC GPU works at all. Dolphin uses shaders on the PC GPU to translate what the GC GPU can do directly in hardware, causing it to run a lot slower.