agx: Handle large varying indices
Fixes glsl-max-varyings. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20017>
This commit is contained in:
committed by
Marge Bot
parent
21f9a72c77
commit
eb4187b02d
@@ -521,6 +521,7 @@ agx_pack_instr(struct util_dynarray *emission, struct util_dynarray *fixups, agx
|
||||
agx_index value = I->src[1];
|
||||
|
||||
assert(index_src.type == AGX_INDEX_IMMEDIATE);
|
||||
assert(index_src.value < BITFIELD_MASK(8));
|
||||
assert(value.type == AGX_INDEX_REGISTER);
|
||||
assert(value.size == AGX_SIZE_32);
|
||||
|
||||
@@ -528,9 +529,10 @@ agx_pack_instr(struct util_dynarray *emission, struct util_dynarray *fixups, agx
|
||||
0x11 |
|
||||
(I->last ? (1 << 7) : 0) |
|
||||
((value.value & 0x3F) << 9) |
|
||||
(((uint64_t) index_src.value) << 16) |
|
||||
(((uint64_t) (index_src.value & 0x3F)) << 16) |
|
||||
(0x80 << 16) | /* XXX */
|
||||
((value.value >> 6) << 24) |
|
||||
((index_src.value >> 6) << 26) |
|
||||
(0x8u << 28); /* XXX */
|
||||
|
||||
unsigned size = 4;
|
||||
|
||||
Reference in New Issue
Block a user