vkd3d-shader/msl: Use iterators in msl_generator_generate().

This commit is contained in:
Giovanni Mascellani
2025-07-21 21:48:38 +02:00
committed by Henri Verbeet
parent 7d9a86790e
commit 01068dada2
Notes: Henri Verbeet 2025-07-22 17:21:09 +02:00
Approved-by: Francisco Casas (@fcasas)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1635

View File

@@ -2028,8 +2028,8 @@ static void msl_generate_entrypoint(struct msl_generator *gen)
static int msl_generator_generate(struct msl_generator *gen, struct vkd3d_shader_code *out)
{
const struct vkd3d_shader_instruction_array *instructions = &gen->program->instructions;
unsigned int i;
struct vkd3d_shader_instruction *ins;
struct vsir_program_iterator it;
MESSAGE("Generating a MSL shader. This is unsupported; you get to keep all the pieces if it breaks.\n");
@@ -2095,9 +2095,10 @@ static int msl_generator_generate(struct msl_generator *gen, struct vkd3d_shader
vkd3d_string_buffer_printf(gen->buffer, "vkd3d_vec4 r[%u];\n\n", gen->program->temp_count);
}
for (i = 0; i < instructions->count; ++i)
it = vsir_program_iterator(&gen->program->instructions);
for (ins = vsir_program_iterator_head(&it); ins; ins = vsir_program_iterator_next(&it))
{
msl_handle_instruction(gen, &instructions->elements[i]);
msl_handle_instruction(gen, ins);
}
--gen->indent;