vkd3d-shader: Set correct dcl masks in vkd3d_dxbc_compiler_emit_hull_shader_inputs().

Avoiding some duplicate input declarations.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Henri Verbeet 2021-03-22 13:20:09 +01:00 committed by Alexandre Julliard
parent f59e9dfeee
commit 9007df1067

View File

@ -9023,10 +9023,15 @@ static void vkd3d_dxbc_compiler_emit_hull_shader_inputs(struct vkd3d_dxbc_compil
symbol.key.reg.idx = register_idx; symbol.key.reg.idx = register_idx;
if ((entry = rb_get(&compiler->symbol_table, &symbol))) 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; continue;
}
vkd3d_symbol_set_register_info(&symbol, vicp_id, SpvStorageClassPrivate, vkd3d_symbol_set_register_info(&symbol, vicp_id, SpvStorageClassPrivate,
VKD3D_SHADER_COMPONENT_FLOAT, VKD3DSP_WRITEMASK_ALL); VKD3D_SHADER_COMPONENT_FLOAT, VKD3DSP_WRITEMASK_ALL);
symbol.info.reg.dcl_mask = signature->elements[i].mask;
symbol.info.reg.is_aggregate = true; symbol.info.reg.is_aggregate = true;
vkd3d_dxbc_compiler_put_symbol(compiler, &symbol); vkd3d_dxbc_compiler_put_symbol(compiler, &symbol);
} }