agx: allow st_tile in compute shaders

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30633>
This commit is contained in:
Alyssa Rosenzweig
2024-08-07 13:08:01 -04:00
parent 9b39c5427f
commit f706079dc5
+8 -7
View File
@@ -592,12 +592,14 @@ static agx_instr *
agx_emit_local_store_pixel(agx_builder *b, nir_intrinsic_instr *instr)
{
/* TODO: Reverse-engineer interactions with MRT */
if (b->shader->key->fs.ignore_tib_dependencies) {
assert(b->shader->nir->info.internal && "only for clear shaders");
} else if (b->shader->did_writeout) {
agx_wait_pix(b, 0x0004);
} else {
agx_wait_pix(b, 0x000C);
if (b->shader->stage == MESA_SHADER_FRAGMENT) {
if (b->shader->key->fs.ignore_tib_dependencies) {
assert(b->shader->nir->info.internal && "only for clear shaders");
} else if (b->shader->did_writeout) {
agx_wait_pix(b, 0x0004);
} else {
agx_wait_pix(b, 0x000C);
}
}
/* Compact the registers according to the mask */
@@ -1266,7 +1268,6 @@ agx_emit_intrinsic(agx_builder *b, nir_intrinsic_instr *instr)
return agx_emit_store_zs(b, instr);
case nir_intrinsic_store_local_pixel_agx:
assert(stage == MESA_SHADER_FRAGMENT);
return agx_emit_local_store_pixel(b, instr);
case nir_intrinsic_load_local_pixel_agx: