vkd3d-shader: Introduce a wave ops feature flag.

This commit is contained in:
Conor McCarthy 2023-12-18 19:09:34 +10:00 committed by Alexandre Julliard
parent 270aa22d0b
commit b0145ad96e
Notes: Alexandre Julliard 2024-04-17 23:29:42 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/776

View File

@ -215,6 +215,15 @@ enum vkd3d_shader_compile_option_feature_flags
* This corresponds to the "shaderFloat64" feature in the Vulkan API, and * This corresponds to the "shaderFloat64" feature in the Vulkan API, and
* the "GL_ARB_gpu_shader_fp64" extension in the OpenGL API. */ * the "GL_ARB_gpu_shader_fp64" extension in the OpenGL API. */
VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 = 0x00000002, VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 = 0x00000002,
/** The SPIR-V target environment supports wave operations.
* This flag is valid only in VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_1
* or greater, and 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. \since 1.12 */
VKD3D_SHADER_COMPILE_OPTION_FEATURE_WAVE_OPS = 0x00000004,
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLAGS), VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLAGS),
}; };