Philip Rebohle : vkd3d-shader: Use full write mask for variables for array built-ins.
Alexandre Julliard
julliard at winehq.org
Sun Oct 27 14:21:20 CDT 2019
Module: vkd3d
Branch: master
Commit: 7ac0873b4a75dde9de2b01ca11fb97aac0ffc128
URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=7ac0873b4a75dde9de2b01ca11fb97aac0ffc128
Author: Philip Rebohle <philip.rebohle at tu-dortmund.de>
Date: Thu Oct 24 21:16:15 2019 +0330
vkd3d-shader: Use full write mask for variables for array built-ins.
Private variables are always vec4, so using a sparse write mask here
will lead to invalid code being generated when accessing the variable.
Signed-off-by: Philip Rebohle <philip.rebohle at tu-dortmund.de>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
libs/vkd3d-shader/spirv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index 6a3eb10..936b014 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -4320,7 +4320,7 @@ static void vkd3d_dxbc_compiler_emit_output(struct vkd3d_dxbc_compiler *compiler
storage_class = SpvStorageClassOutput;
if ((use_private_variable = builtin && builtin->spirv_array_size))
- write_mask = dst->write_mask;
+ write_mask = VKD3DSP_WRITEMASK_ALL;
else if (get_shader_output_swizzle(compiler, signature_element->register_index) != VKD3D_NO_SWIZZLE
|| needs_private_io_variable(shader_signature, signature_element->register_index,
builtin, &output_component_count, &write_mask)
More information about the wine-cvs
mailing list