aco: fix vgpr alloc granule with wave32
[mesa.git] / src / amd / compiler / aco_scheduler.cpp
index 5c164703ebff6da29e1dab4bb55b8708ceaa1d1b..665fcb2db6f03ec39fd6eace565dbaf1731990c2 100644 (file)
@@ -934,7 +934,8 @@ void schedule_program(Program *program, live& live_vars)
       ctx.num_waves = 8;
 
    assert(ctx.num_waves > 0 && ctx.num_waves <= program->num_waves);
-   ctx.max_registers = { int16_t(((256 / ctx.num_waves) & ~3) - 2), int16_t(get_addr_sgpr_from_waves(program, ctx.num_waves))};
+   ctx.max_registers = { int16_t(get_addr_vgpr_from_waves(program, ctx.num_waves) - 2),
+                         int16_t(get_addr_sgpr_from_waves(program, ctx.num_waves))};
 
    for (Block& block : program->blocks)
       schedule_block(ctx, program, &block, live_vars);