Giovanni Mascellani (@giomasce) commented about include/vkd3d_shader.h:
* This corresponds to the "shaderFloat64" feature in the Vulkan API, and * the "GL_ARB_gpu_shader_fp64" extension in the OpenGL API. */ VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 = 0x00000002, + /** The SPIR-V target environment supports wave operations. + * This corresponds to the following minimum requirements in + * VkPhysicalDeviceSubgroupProperties: + * subgroupSize >= 4 + * supportedOperations has BASIC, VOTE, ARITHMETIC, BALLOT, SHUFFLE and + * QUAD bits set. + * supportedStages include COMPUTE and FRAGMENT. */ + VKD3D_SHADER_COMPILE_OPTION_FEATURE_WAVE_OPS = 0x00000004,
Should there be a rule mandating than when you're compiling with this flag you should also specify `VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_1` as the target environment? -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/776#note_67482