From: Alyssa Rosenzweig Date: Tue, 1 Aug 2023 01:42:10 +0000 (-0400) Subject: agx: Stop setting forwarding bit X-Git-Tag: upstream/23.3.3~3444 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3704caca0b99f158e1a9eb4a6b39c0d88defa1cd;p=platform%2Fupstream%2Fmesa.git agx: Stop setting forwarding bit We need actual analysis to set it properly, and improperly setting it can cause random data dependency hazards it turns out. Stop setting it. Fixes some flaky tests with shuffle code inserted. Signed-off-by: Alyssa Rosenzweig Part-of: --- diff --git a/src/asahi/compiler/agx_pack.c b/src/asahi/compiler/agx_pack.c index 3471fbc..6c8c545 100644 --- a/src/asahi/compiler/agx_pack.c +++ b/src/asahi/compiler/agx_pack.c @@ -601,17 +601,17 @@ agx_pack_instr(struct util_dynarray *emission, struct util_dynarray *fixups, sample_index = agx_zero(); } - bool kill = false; // TODO: optimize + bool kill = false; // TODO: optimize + bool forward = false; // TODO: optimize uint64_t raw = 0x21 | (flat ? (1 << 7) : 0) | (perspective ? (1 << 6) : 0) | ((D & 0xFF) << 7) | (1ull << 15) | /* XXX */ ((cf_I & BITFIELD_MASK(6)) << 16) | ((cf_J & BITFIELD_MASK(6)) << 24) | (((uint64_t)channels) << 30) | (((uint64_t)sample_index.value) << 32) | - (!flat ? (1ull << 46) : 0) | /* XXX */ - (((uint64_t)interp) << 48) | (kill ? (1ull << 52) : 0) | /* XXX */ - (((uint64_t)(D >> 8)) << 56) | ((uint64_t)(cf_I >> 6) << 58) | - ((uint64_t)(cf_J >> 6) << 60); + (forward ? (1ull << 46) : 0) | (((uint64_t)interp) << 48) | + (kill ? (1ull << 52) : 0) | (((uint64_t)(D >> 8)) << 56) | + ((uint64_t)(cf_I >> 6) << 58) | ((uint64_t)(cf_J >> 6) << 60); unsigned size = 8; memcpy(util_dynarray_grow_bytes(emission, 1, size), &raw, size);