From 3715586580badb558fe552d35b551482e12dfa61 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Mon, 28 Aug 2023 09:43:56 -0400 Subject: [PATCH] asahi: Generate layered EOT programs Signed-off-by: Alyssa Rosenzweig --- src/asahi/lib/agx_meta.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/asahi/lib/agx_meta.c b/src/asahi/lib/agx_meta.c index 5f4902572a1..222a2cfc1e7 100644 --- a/src/asahi/lib/agx_meta.c +++ b/src/asahi/lib/agx_meta.c @@ -128,11 +128,14 @@ agx_build_end_of_tile_shader(struct agx_meta_cache *cache, assert(key->op[rt] == AGX_META_OP_STORE); unsigned offset_B = agx_tilebuffer_offset_B(&key->tib, rt); + nir_def *layer = nir_undef(&b, 1, 16); + if (key->tib.layered) + layer = nir_u2u16(&b, agx_internal_layer_id(&b)); + nir_block_image_store_agx( - &b, nir_imm_int(&b, rt), nir_imm_intN_t(&b, offset_B, 16), - nir_imm_intN_t(&b, 0, 16), + &b, nir_imm_int(&b, rt), nir_imm_intN_t(&b, offset_B, 16), layer, .format = agx_tilebuffer_physical_format(&key->tib, rt), - .image_dim = dim, .image_array = false); + .image_dim = dim, .image_array = key->tib.layered); } struct agx_shader_key compiler_key = {