mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
vkd3d-shader/d3dbc: Assign unique register indices for VKD3DSPR_RASTOUT.
This commit is contained in:
committed by
Alexandre Julliard
parent
3f52fda8ad
commit
1ce7e3d8b1
Notes:
Alexandre Julliard
2024-01-04 23:09:22 +01:00
Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/527
@ -645,15 +645,15 @@ static bool add_signature_element_from_register(struct vkd3d_shader_sm1_parser *
|
|||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
return add_signature_element(sm1, true, "POSITION", 0,
|
return add_signature_element(sm1, true, "POSITION", 0,
|
||||||
VKD3D_SHADER_SV_POSITION, register_index, is_dcl, mask);
|
VKD3D_SHADER_SV_POSITION, SM1_RASTOUT_REGISTER_OFFSET + register_index, is_dcl, mask);
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
return add_signature_element(sm1, true, "FOG", 0,
|
return add_signature_element(sm1, true, "FOG", 0,
|
||||||
VKD3D_SHADER_SV_NONE, register_index, is_dcl, 0x1);
|
VKD3D_SHADER_SV_NONE, SM1_RASTOUT_REGISTER_OFFSET + register_index, is_dcl, 0x1);
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
return add_signature_element(sm1, true, "PSIZE", 0,
|
return add_signature_element(sm1, true, "PSIZE", 0,
|
||||||
VKD3D_SHADER_SV_NONE, register_index, is_dcl, 0x1);
|
VKD3D_SHADER_SV_NONE, SM1_RASTOUT_REGISTER_OFFSET + register_index, is_dcl, 0x1);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
vkd3d_shader_parser_error(&sm1->p, VKD3D_SHADER_ERROR_D3DBC_INVALID_REGISTER_INDEX,
|
vkd3d_shader_parser_error(&sm1->p, VKD3D_SHADER_ERROR_D3DBC_INVALID_REGISTER_INDEX,
|
||||||
|
@ -916,7 +916,7 @@ static bool shader_dst_param_io_normalise(struct vkd3d_shader_dst_param *dst_par
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case VKD3DSPR_RASTOUT:
|
case VKD3DSPR_RASTOUT:
|
||||||
reg_idx = reg->idx[0].offset;
|
reg_idx = SM1_RASTOUT_REGISTER_OFFSET + reg->idx[0].offset;
|
||||||
signature = normaliser->output_signature;
|
signature = normaliser->output_signature;
|
||||||
reg->type = VKD3DSPR_OUTPUT;
|
reg->type = VKD3DSPR_OUTPUT;
|
||||||
dcl_params = normaliser->output_dcl_params;
|
dcl_params = normaliser->output_dcl_params;
|
||||||
|
@ -956,6 +956,7 @@ enum vkd3d_shader_input_sysval_semantic
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define SM1_COLOR_REGISTER_OFFSET 8
|
#define SM1_COLOR_REGISTER_OFFSET 8
|
||||||
|
#define SM1_RASTOUT_REGISTER_OFFSET 10
|
||||||
|
|
||||||
#define SIGNATURE_TARGET_LOCATION_UNUSED (~0u)
|
#define SIGNATURE_TARGET_LOCATION_UNUSED (~0u)
|
||||||
|
|
||||||
|
@ -523,11 +523,11 @@ static void test_scan_signatures(void)
|
|||||||
|
|
||||||
static const struct vkd3d_shader_signature_element vs3_outputs[] =
|
static const struct vkd3d_shader_signature_element vs3_outputs[] =
|
||||||
{
|
{
|
||||||
{"POSITION", 0, 0, VKD3D_SHADER_SV_POSITION, VKD3D_SHADER_COMPONENT_FLOAT, 0, 0xf, 0xf},
|
{"POSITION", 0, 0, VKD3D_SHADER_SV_POSITION, VKD3D_SHADER_COMPONENT_FLOAT, 10, 0xf, 0xf},
|
||||||
{"TEXCOORD", 2, 0, VKD3D_SHADER_SV_NONE, VKD3D_SHADER_COMPONENT_FLOAT, 2, 0xf, 0xf},
|
{"TEXCOORD", 2, 0, VKD3D_SHADER_SV_NONE, VKD3D_SHADER_COMPONENT_FLOAT, 2, 0xf, 0xf},
|
||||||
{"COLOR", 0, 0, VKD3D_SHADER_SV_NONE, VKD3D_SHADER_COMPONENT_FLOAT, 8, 0xf, 0xf},
|
{"COLOR", 0, 0, VKD3D_SHADER_SV_NONE, VKD3D_SHADER_COMPONENT_FLOAT, 8, 0xf, 0xf},
|
||||||
{"FOG", 0, 0, VKD3D_SHADER_SV_NONE, VKD3D_SHADER_COMPONENT_FLOAT, 1, 0x1, 0x1},
|
{"FOG", 0, 0, VKD3D_SHADER_SV_NONE, VKD3D_SHADER_COMPONENT_FLOAT, 11, 0x1, 0x1},
|
||||||
{"PSIZE", 0, 0, VKD3D_SHADER_SV_NONE, VKD3D_SHADER_COMPONENT_FLOAT, 2, 0x1, 0x1},
|
{"PSIZE", 0, 0, VKD3D_SHADER_SV_NONE, VKD3D_SHADER_COMPONENT_FLOAT, 12, 0x1, 0x1},
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char vs4_source[] =
|
static const char vs4_source[] =
|
||||||
|
Reference in New Issue
Block a user