diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c index 5e7a8c99..02d649ba 100644 --- a/libs/vkd3d-shader/spirv.c +++ b/libs/vkd3d-shader/spirv.c @@ -1525,6 +1525,10 @@ static uint32_t vkd3d_dxbc_compiler_emit_input(struct vkd3d_dxbc_compiler *compi SpvStorageClass storage_class; component_count = vkd3d_write_mask_component_count(dst->write_mask); + /* vThreadIDInGroupFlattened is declared with no write mask in shader + * bytecode generated by fxc. */ + if (!dst->write_mask) + component_count = 1; if (!(input_component_count = vkd3d_dxbc_compiler_get_sysval_component_count(sysval))) input_component_count = component_count;