Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ValveSoftware/vkd3d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Rebohle <philip.rebohle@tu-dortmund.de>2019-10-24 20:28:15 +0300
committerAlexandre Julliard <julliard@winehq.org>2019-10-27 21:17:29 +0300
commit7ac0873b4a75dde9de2b01ca11fb97aac0ffc128 (patch)
tree73edf4e014d5257f932a2c71d38e98e4d0bfbf7b
parenta08ee1e2dfd60f519275ef41600dbb5d78970f82 (diff)
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@tu-dortmund.de> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
-rw-r--r--libs/vkd3d-shader/spirv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index 6a3eb10c..936b014e 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)