[PATCH vkd3d 8/8] vkd3d-shader: Set correct dcl masks in vkd3d_dxbc_compiler_emit_hull_shader_inputs().

Henri Verbeet hverbeet at codeweavers.com
Mon Mar 22 07:20:09 CDT 2021


Avoiding some duplicate input declarations.

Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
 libs/vkd3d-shader/spirv.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
index 64d4e8a7..0e75b0ae 100644
--- a/libs/vkd3d-shader/spirv.c
+++ b/libs/vkd3d-shader/spirv.c
@@ -9023,10 +9023,15 @@ static void vkd3d_dxbc_compiler_emit_hull_shader_inputs(struct vkd3d_dxbc_compil
 
         symbol.key.reg.idx = register_idx;
         if ((entry = rb_get(&compiler->symbol_table, &symbol)))
+        {
+            struct vkd3d_symbol *s = RB_ENTRY_VALUE(entry, struct vkd3d_symbol, entry);
+            s->info.reg.dcl_mask |= signature->elements[i].mask;
             continue;
+        }
 
         vkd3d_symbol_set_register_info(&symbol, vicp_id, SpvStorageClassPrivate,
                 VKD3D_SHADER_COMPONENT_FLOAT, VKD3DSP_WRITEMASK_ALL);
+        symbol.info.reg.dcl_mask = signature->elements[i].mask;
         symbol.info.reg.is_aggregate = true;
         vkd3d_dxbc_compiler_put_symbol(compiler, &symbol);
     }
-- 
2.20.1




More information about the wine-devel mailing list