mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d/device: Require VK_KHR_zero_initialize_workgroup_memory when appropriate.
That extension (and the corresponding feature) must be enabled when the Initializer operand is used for workgroup variables.
This commit is contained in:
committed by
Henri Verbeet
parent
e746a4c12f
commit
8297ea9aa6
Notes:
Henri Verbeet
2025-02-26 16:18:05 +01:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1390
@@ -6905,6 +6905,13 @@ static void spirv_compiler_emit_workgroup_memory(struct spirv_compiler *compiler
|
||||
const SpvStorageClass storage_class = SpvStorageClassWorkgroup;
|
||||
struct vkd3d_symbol reg_symbol;
|
||||
|
||||
if (zero_init && !(compiler->features & VKD3D_SHADER_COMPILE_OPTION_FEATURE_ZERO_INITIALIZE_WORKGROUP_MEMORY))
|
||||
{
|
||||
WARN("Unsupported zero-initialized workgroup memory.\n");
|
||||
spirv_compiler_error(compiler, VKD3D_SHADER_ERROR_SPV_UNSUPPORTED_FEATURE,
|
||||
"The target environment does not support zero-initialized workgroup memory.");
|
||||
}
|
||||
|
||||
/* Alignment is supported only in the Kernel execution model. */
|
||||
if (alignment)
|
||||
TRACE("Ignoring alignment %u.\n", alignment);
|
||||
|
Reference in New Issue
Block a user