mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader: Add a register index to struct vkd3d_shader_immediate_constant_buffer.
This commit is contained in:
committed by
Alexandre Julliard
parent
ef940cb778
commit
cb88844a3d
Notes:
Alexandre Julliard
2023-12-07 22:47:09 +01: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/477
@@ -2162,6 +2162,7 @@ static void vkd3d_symbol_make_register(struct vkd3d_symbol *symbol,
|
||||
break;
|
||||
|
||||
case VKD3DSPR_IMMCONSTBUFFER:
|
||||
symbol->key.reg.idx = reg->idx_count > 1 ? reg->idx[0].offset : 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -3508,7 +3509,7 @@ static void spirv_compiler_emit_dereference_register(struct spirv_compiler *comp
|
||||
}
|
||||
else if (reg->type == VKD3DSPR_IMMCONSTBUFFER)
|
||||
{
|
||||
indexes[index_count++] = spirv_compiler_emit_register_addressing(compiler, ®->idx[0]);
|
||||
indexes[index_count++] = spirv_compiler_emit_register_addressing(compiler, ®->idx[reg->idx_count - 1]);
|
||||
}
|
||||
else if (reg->type == VKD3DSPR_IDXTEMP)
|
||||
{
|
||||
@@ -5828,7 +5829,9 @@ static void spirv_compiler_emit_dcl_immediate_constant_buffer(struct spirv_compi
|
||||
ptr_type_id, SpvStorageClassPrivate, const_id);
|
||||
vkd3d_spirv_build_op_name(builder, icb_id, "icb");
|
||||
|
||||
vsir_register_init(®, VKD3DSPR_IMMCONSTBUFFER, VKD3D_DATA_FLOAT, 0);
|
||||
/* Set an index count of 2 so vkd3d_symbol_make_register() uses idx[0] as a buffer id. */
|
||||
vsir_register_init(®, VKD3DSPR_IMMCONSTBUFFER, VKD3D_DATA_FLOAT, 2);
|
||||
reg.idx[0].offset = icb->register_idx;
|
||||
vkd3d_symbol_make_register(®_symbol, ®);
|
||||
vkd3d_symbol_set_register_info(®_symbol, icb_id, SpvStorageClassPrivate,
|
||||
vkd3d_component_type_from_data_type(icb->data_type),
|
||||
|
Reference in New Issue
Block a user