On 10 Aug 2021, at 20:50, Henri Verbeet hverbeet@gmail.com wrote:
On Tue, 10 Aug 2021 at 10:35, Jan Sikorski jsikorski@codeweavers.com wrote:
dlls/wined3d/shader_spirv.c | 112 +++++++++++++++++++++++++++++++++ dlls/wined3d/wined3d_private.h | 2 + 2 files changed, 114 insertions(+)
And this too is never used anywhere until patch 5/5 in this series.
Yes, do I squash it all together then?
- .shader_run_compute = wined3d_spirv_run_compute,
};
"shader_run_compute" remains uninitialised for the other shader backends.
It should be initialised to NULL, which seemed appropriate, but if we don’t want this I’ll make it spit an ERR.
Conceptually, it doesn't seem quite proper for the shader backends to do compute dispatch by themselves; ideally these would only translate shaders, although in practice they're also responsible for setting up some related state, for OpenGL in particular.
I'm not sure whether you perhaps already considered and rejected this, but would it be very hard to use the existing .shader_select_compute() operation from wined3d_unordered_access_view_vk_clear()? Or perhaps simply adapter_vk_dispatch_compute()?
My understanding is that I can’t touch wined3d_state, so in order to unite with existing functionality I’d have to decouple it from the state. Maybe we want this anyway? It looks straightforward to do for shader_select_compute. adapter_vk_dispatch_compute() mostly applies state so I don’t see how it could be of use here.
- Jan