mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
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>
This commit is contained in:
committed by
Alexandre Julliard
parent
a08ee1e2df
commit
7ac0873b4a
@ -4320,7 +4320,7 @@ static void vkd3d_dxbc_compiler_emit_output(struct vkd3d_dxbc_compiler *compiler
|
|||||||
storage_class = SpvStorageClassOutput;
|
storage_class = SpvStorageClassOutput;
|
||||||
|
|
||||||
if ((use_private_variable = builtin && builtin->spirv_array_size))
|
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
|
else if (get_shader_output_swizzle(compiler, signature_element->register_index) != VKD3D_NO_SWIZZLE
|
||||||
|| needs_private_io_variable(shader_signature, signature_element->register_index,
|
|| needs_private_io_variable(shader_signature, signature_element->register_index,
|
||||||
builtin, &output_component_count, &write_mask)
|
builtin, &output_component_count, &write_mask)
|
||||||
|
Reference in New Issue
Block a user