Hey guys, I'm developing a game and one of the features I use is ComputeShader.
I would like to know if there is a way to run Compute shaders on software instead of hardware so I can still run on old hardware that
don't have ComputeShader compatibility.
If you use a WARP device then you can run compute shaders. It's a lot faster than a ref device but still may fall flat on its face in terms of real performance. So I'd be leery of doing it without some heavy perf testing on low-end and older hardware.It could end up being a lot faster to do those calculations CPU-side using DirectXMath (or other vector math functionality) and parallelization (e.g. PPL's parallel_for and parallel_for_each) without being a huge time-sink in terms of writing and maintaining the separate code path for non-compute class hardware.
I know I could do it in the CPU. But I would like to know if I can virtualize it so I don't have to recode the whole Shader.
What I am computing is very heavy depending on the configuration.
But it depend a lot on the option you choose. I know I wouldn't have the same performace in CPU but at least it would be supported.
So I just want to know if I can run the Shader on the CPU, so I don't have to transfer the code from HLSL to c++.
There's no HLSL virtual machine, or anything like that. Even if there were, the CPU/GPU synchronization would have serious performance implications. The only option would be to run *everything* on WARP device, but this would likely be slower than most GPU's.