mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 22:18:13 +02:00
aco: fix shared VGPR allocation on RDNA2
VGPRs are now allocated in blocks of 8 normal or 16 shared VGPRs, respectively. Fixes:14a5021aff('aco/gfx10: Refactor of GFX10 wave64 bpermute.') Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8921> (cherry picked from commitbacc3b36f5)
This commit is contained in:
parent
f9a57d53c9
commit
8e8ba3402a
2 changed files with 4 additions and 3 deletions
|
|
@ -3226,7 +3226,7 @@
|
|||
"description": "aco: fix shared VGPR allocation on RDNA2",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": "14a5021aff661a26d76f330fec55d400d35443a8"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -197,8 +197,9 @@ static Temp emit_bpermute(isel_context *ctx, Builder &bld, Temp index, Temp data
|
|||
/* GFX10 wave64 mode: emulate full-wave bpermute */
|
||||
if (!ctx->has_gfx10_wave64_bpermute) {
|
||||
ctx->has_gfx10_wave64_bpermute = true;
|
||||
ctx->program->config->num_shared_vgprs = 8; /* Shared VGPRs are allocated in groups of 8 */
|
||||
ctx->program->vgpr_limit -= 4; /* We allocate 8 shared VGPRs, so we'll have 4 fewer normal VGPRs */
|
||||
/* Shared VGPRs are allocated in groups of 8/16 */
|
||||
ctx->program->config->num_shared_vgprs = ctx->program->chip_class >= GFX10_3 ? 16 : 8;
|
||||
ctx->program->vgpr_limit -= ctx->program->chip_class >= GFX10_3 ? 8 : 4;
|
||||
}
|
||||
|
||||
Temp index_is_lo = bld.vopc(aco_opcode::v_cmp_ge_u32, bld.def(bld.lm), Operand(31u), index);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue