Zebediah Figura (@zfigura) commented about libs/vkd3d-shader/hlsl_codegen.c:
rb_for_each_entry(&ctx->functions, dump_function, ctx);
allocate_register_reservations(ctx); + + /* For now, request all the registers for each variable, even if they are not used. */ + LIST_FOR_EACH_ENTRY(var, &ctx->extern_vars, struct hlsl_ir_var, extern_entry) + { + unsigned int k; + + for (k = 0; k <= HLSL_REGSET_LAST_OBJECT; ++k) + var->regs[k].count = var->data_type->reg_size[k]; + }
I think this causes a regression for simple variables at least—we used to check last_read. Granted, this is fixed later in the series, but it makes the patch look wrong by itself. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/159#note_29996