[PATCH vkd3d 01/11] vkd3d-shader: Don't shift output array component write mask.

Philip Rebohle philip.rebohle at tu-dortmund.de
Wed Oct 16 14:55:35 CDT 2019


Fixes an assertion when compiling shaders with more than four
clip or cull distances. Output arrays are arrays of scalars,
so shifting the write mask is not very meaningful.

Signed-off-by: Philip Rebohle <philip.rebohle at tu-dortmund.de>
---
 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 75a3a4f..4b93e01 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -4536,7 +4536,7 @@ static void vkd3d_dxbc_compiler_emit_store_shader_output(struct vkd3d_dxbc_compi
                 ptr_type_id, output_id, vkd3d_dxbc_compiler_get_constant_uint(compiler, index));
         object_id = vkd3d_dxbc_compiler_emit_swizzle(compiler, val_id,
                 write_mask, output_info->component_type, VKD3D_NO_SWIZZLE, VKD3DSP_WRITEMASK_0 << i);
-        vkd3d_dxbc_compiler_emit_store(compiler, chain_id, VKD3DSP_WRITEMASK_0 << index,
+        vkd3d_dxbc_compiler_emit_store(compiler, chain_id, VKD3DSP_WRITEMASK_0,
                 output_info->component_type, SpvStorageClassOutput, VKD3DSP_WRITEMASK_0 << i, object_id);
         ++index;
     }
-- 
2.23.0




More information about the wine-devel mailing list