On Thu Nov 23 13:47:07 2023 +0000, Giovanni Mascellani wrote:
Yeah, that's a sensible concern. At any rate, my feeling is that despite the name `extensions` is better suited for passing this kind of information.
For features, not extensions, which match up with a d3d12 global flag, it may be better for vkd3d-shader to send these to the client as a set of flags in a new scan struct, so the client can determine if a particular shader is supported before attempting to include it in a pipeline build. This places responsibility on the client not to compile unsupported shaders, but that is true of graphics libraries generally.
In addition to int64, this would cover wave ops, native 16-bit, int64 atomics and probably others, and new additions would only require updating the flag enum, instead of passing yet another extension or parameter and reading it in the backend.