mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader: Make *src and *dst mutable in vkd3d_shader_instruction.
They were originally made const because no optimization/normalization pass existed. Now having to cast away const all the time is becoming more and more burdening.
This commit is contained in:
parent
fd8a0d7fb6
commit
78d95889bd
Notes:
Alexandre Julliard
2024-01-11 23:14:32 +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/554
@ -492,7 +492,7 @@ static enum vkd3d_result instruction_array_normalise_hull_shader_control_point_i
|
||||
if (shader_instruction_is_dcl(ins))
|
||||
break;
|
||||
for (j = 0; j < ins->dst_count; ++j)
|
||||
shader_dst_param_normalise_outpointid((struct vkd3d_shader_dst_param *)&ins->dst[j], &normaliser);
|
||||
shader_dst_param_normalise_outpointid(&ins->dst[j], &normaliser);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1116,9 +1116,9 @@ static void shader_instruction_normalise_io_params(struct vkd3d_shader_instructi
|
||||
if (shader_instruction_is_dcl(ins))
|
||||
break;
|
||||
for (i = 0; i < ins->dst_count; ++i)
|
||||
shader_dst_param_io_normalise((struct vkd3d_shader_dst_param *)&ins->dst[i], false, normaliser);
|
||||
shader_dst_param_io_normalise(&ins->dst[i], false, normaliser);
|
||||
for (i = 0; i < ins->src_count; ++i)
|
||||
shader_src_param_io_normalise((struct vkd3d_shader_src_param *)&ins->src[i], normaliser);
|
||||
shader_src_param_io_normalise(&ins->src[i], normaliser);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1310,7 +1310,7 @@ static enum vkd3d_result instruction_array_normalise_flat_constants(struct vkd3d
|
||||
else
|
||||
{
|
||||
for (j = 0; j < ins->src_count; ++j)
|
||||
shader_register_normalise_flat_constants((struct vkd3d_shader_src_param *)&ins->src[j], &normaliser);
|
||||
shader_register_normalise_flat_constants(&ins->src[j], &normaliser);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -742,8 +742,7 @@ static bool shader_sm4_read_register_space(struct vkd3d_shader_sm4_parser *priv,
|
||||
static void shader_sm4_read_conditional_op(struct vkd3d_shader_instruction *ins, uint32_t opcode,
|
||||
uint32_t opcode_token, const uint32_t *tokens, unsigned int token_count, struct vkd3d_shader_sm4_parser *priv)
|
||||
{
|
||||
shader_sm4_read_src_param(priv, &tokens, &tokens[token_count], VKD3D_DATA_UINT,
|
||||
(struct vkd3d_shader_src_param *)&ins->src[0]);
|
||||
shader_sm4_read_src_param(priv, &tokens, &tokens[token_count], VKD3D_DATA_UINT, &ins->src[0]);
|
||||
ins->flags = (opcode_token & VKD3D_SM4_CONDITIONAL_NZ) ?
|
||||
VKD3D_SHADER_CONDITIONAL_OP_NZ : VKD3D_SHADER_CONDITIONAL_OP_Z;
|
||||
}
|
||||
@ -751,8 +750,7 @@ static void shader_sm4_read_conditional_op(struct vkd3d_shader_instruction *ins,
|
||||
static void shader_sm4_read_case_condition(struct vkd3d_shader_instruction *ins, uint32_t opcode,
|
||||
uint32_t opcode_token, const uint32_t *tokens, unsigned int token_count, struct vkd3d_shader_sm4_parser *priv)
|
||||
{
|
||||
shader_sm4_read_src_param(priv, &tokens, &tokens[token_count], VKD3D_DATA_UINT,
|
||||
(struct vkd3d_shader_src_param *)&ins->src[0]);
|
||||
shader_sm4_read_src_param(priv, &tokens, &tokens[token_count], VKD3D_DATA_UINT, &ins->src[0]);
|
||||
if (ins->src[0].reg.type != VKD3DSPR_IMMCONST)
|
||||
{
|
||||
FIXME("Switch case value is not a 32-bit constant.\n");
|
||||
@ -1130,9 +1128,8 @@ static void shader_sm4_read_dcl_global_flags(struct vkd3d_shader_instruction *in
|
||||
static void shader_sm5_read_fcall(struct vkd3d_shader_instruction *ins, uint32_t opcode, uint32_t opcode_token,
|
||||
const uint32_t *tokens, unsigned int token_count, struct vkd3d_shader_sm4_parser *priv)
|
||||
{
|
||||
struct vkd3d_shader_src_param *src_params = (struct vkd3d_shader_src_param *)ins->src;
|
||||
src_params[0].reg.u.fp_body_idx = *tokens++;
|
||||
shader_sm4_read_src_param(priv, &tokens, &tokens[token_count], VKD3D_DATA_OPAQUE, &src_params[0]);
|
||||
ins->src[0].reg.u.fp_body_idx = *tokens++;
|
||||
shader_sm4_read_src_param(priv, &tokens, &tokens[token_count], VKD3D_DATA_OPAQUE, &ins->src[0]);
|
||||
}
|
||||
|
||||
static void shader_sm5_read_dcl_function_body(struct vkd3d_shader_instruction *ins, uint32_t opcode,
|
||||
|
@ -1126,8 +1126,8 @@ struct vkd3d_shader_instruction
|
||||
uint32_t flags;
|
||||
unsigned int dst_count;
|
||||
unsigned int src_count;
|
||||
const struct vkd3d_shader_dst_param *dst;
|
||||
const struct vkd3d_shader_src_param *src;
|
||||
struct vkd3d_shader_dst_param *dst;
|
||||
struct vkd3d_shader_src_param *src;
|
||||
struct vkd3d_shader_texel_offset texel_offset;
|
||||
enum vkd3d_shader_resource_type resource_type;
|
||||
unsigned int resource_stride;
|
||||
|
Loading…
x
Reference in New Issue
Block a user