pan/va: Handle BIFROST_MESA_DEBUG=nosb

For debugging flakes that might be caused due to wrong scoreboarding.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17223>
This commit is contained in:
Alyssa Rosenzweig 2022-06-22 11:35:32 -04:00 committed by Marge Bot
parent 43579901be
commit d458384883

View file

@ -214,10 +214,13 @@ bi_set_dependencies(bi_block *block, bi_instr *I, struct bi_scoreboard_state *st
*
* Luckily, this situation is pretty rare. The wait introduced here can
* usually be merged into the preceding instruction.
*
* We also use the same workaround to serialize all async instructions when
* debugging this pass with the BIFROST_MESA_DEBUG=nosb option.
*/
if (I->op == BI_OPCODE_BARRIER) {
if (I->op == BI_OPCODE_BARRIER || (bifrost_debug & BIFROST_DBG_NOSB)) {
for (unsigned i = 0; i < VA_NUM_GENERAL_SLOTS; ++i) {
if (st->write[i] || (st->memory & BITFIELD_BIT(i)))
if (st->write[i] || ((st->varying | st->memory) & BITFIELD_BIT(i)))
I->flow |= bi_pop_slot(st, i);
}
}