pan/va: Handle uniforms from page 1

Like Bifrost, Valhall can access 2x as many fast acess uniforms as previously
thought. However, on Valhall this requires using the pagination mechanism.
Support this in the dis/assembler.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15364>
This commit is contained in:
Alyssa Rosenzweig 2022-03-13 13:51:20 -04:00 committed by Marge Bot
parent cf43a1cc58
commit 3bd1401075
3 changed files with 5 additions and 3 deletions

View File

@ -111,9 +111,9 @@ def encode_source(op, fau):
elif op[0] == 'r':
return parse_int(op[1:], 0, 63)
elif op[0] == 'u':
val = parse_int(op[1:], 0, 63)
val = parse_int(op[1:], 0, 127)
fau.set_page(val >> 6)
return val | 0x80
return (val & 0x3F) | 0x80
elif op[0] == 'i':
return int(op[3:]) | 0xC0
elif op in enums['thread_storage_pointers'].bare_values:

View File

@ -102,7 +102,7 @@ va_print_src(FILE *fp, uint8_t src, unsigned imm_mode)
fprintf(fp, "0x%X", va_immediates[value]);
}
} else if (type == VA_SRC_UNIFORM_TYPE) {
fprintf(fp, "u%u", value);
fprintf(fp, "u%u", value | (imm_mode << 6));
} else {
bool discard = (type & 1);
fprintf(fp, "%sr%u", discard ? "`" : "", value);

View File

@ -214,3 +214,5 @@ f0 00 3c 32 08 40 7f 78 BLEND.slot0.v4.f32.return @r0:r1:r2:r3, blend_descrip
c0 00 00 00 00 f6 10 01 IADD_IMM.i32 r54, 0x0, #0x0
c0 f1 00 00 10 c1 2f 08 BRANCHZI.eq.absolute.wait0 0x0, blend_descriptor_0_y
80 00 c0 17 34 7c 25 01 TEX_FETCH.slot0.f.32.2d @r0:r1:r2:r3, @r60:r61, u0
80 00 00 00 00 c1 91 02 MOV.i32 r1, u64
81 00 00 00 00 c1 91 02 MOV.i32 r1, u65