mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader/spirv: Handle signature element mask left shift in spirv_compiler_emit_output().
Element masks can have a left shift in DXIL, but these must start at bit 0 in the register info. The SPIR-V declaration will either be a builtin or have SpvDecorationComponent.
This commit is contained in:
parent
ebc461f795
commit
61a550017f
Notes:
Alexandre Julliard
2023-08-30 23:19:25 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/283
@ -4965,7 +4965,6 @@ static void spirv_compiler_emit_output(struct spirv_compiler *compiler,
|
||||
component_type = builtin->component_type;
|
||||
if (!builtin->spirv_array_size)
|
||||
output_component_count = builtin->component_count;
|
||||
component_idx = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -4979,14 +4978,9 @@ static void spirv_compiler_emit_output(struct spirv_compiler *compiler,
|
||||
|| needs_private_io_variable(builtin))
|
||||
{
|
||||
use_private_variable = true;
|
||||
reg_write_mask = write_mask;
|
||||
}
|
||||
else
|
||||
{
|
||||
component_idx = vkd3d_write_mask_get_component_idx(write_mask);
|
||||
reg_write_mask = write_mask >> component_idx;
|
||||
}
|
||||
|
||||
reg_write_mask = write_mask >> component_idx;
|
||||
vkd3d_symbol_make_register(®_symbol, reg);
|
||||
|
||||
if (rb_get(&compiler->symbol_table, ®_symbol))
|
||||
|
Loading…
x
Reference in New Issue
Block a user