vkd3d-shader/ir: Run validation after normalising I/O registers.

This commit is contained in:
Giovanni Mascellani 2024-09-05 17:27:47 +02:00 committed by Henri Verbeet
parent d8c41cc270
commit 1c285d40bd
Notes: Henri Verbeet 2024-09-10 21:57:30 +02:00
Approved-by: Conor McCarthy (@cmccarthy)
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1049

View File

@ -1764,8 +1764,9 @@ static bool use_flat_interpolation(const struct vsir_program *program,
} }
static enum vkd3d_result vsir_program_normalise_io_registers(struct vsir_program *program, static enum vkd3d_result vsir_program_normalise_io_registers(struct vsir_program *program,
struct vkd3d_shader_message_context *message_context) struct vsir_normalisation_context *ctx)
{ {
struct vkd3d_shader_message_context *message_context = ctx->message_context;
struct io_normaliser normaliser = {program->instructions}; struct io_normaliser normaliser = {program->instructions};
struct vkd3d_shader_instruction *ins; struct vkd3d_shader_instruction *ins;
unsigned int i; unsigned int i;
@ -6669,12 +6670,11 @@ enum vkd3d_result vsir_program_normalise(struct vsir_program *program, uint64_t
vsir_transform(&ctx, instruction_array_normalise_hull_shader_control_point_io); vsir_transform(&ctx, instruction_array_normalise_hull_shader_control_point_io);
} }
vsir_transform(&ctx, vsir_program_normalise_io_registers);
if (ctx.result < 0) if (ctx.result < 0)
return ctx.result; return ctx.result;
if ((result = vsir_program_normalise_io_registers(program, message_context)) < 0)
return result;
if ((result = instruction_array_normalise_flat_constants(program)) < 0) if ((result = instruction_array_normalise_flat_constants(program)) < 0)
return result; return result;