From dd3dd6e127f405dc55912858b0f28dfb5620eacc Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sun, 3 Sep 2023 15:22:51 -0400 Subject: [PATCH] asahi: Handle linear 1D Arrays Lowered to linear 2D Arrays, handle them like that. Fixes 1D Array case of arb_shader_image_size-builtin. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/gallium/drivers/asahi/agx_state.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/asahi/agx_state.c b/src/gallium/drivers/asahi/agx_state.c index f037e31af2e..e9a7a1ef6c5 100644 --- a/src/gallium/drivers/asahi/agx_state.c +++ b/src/gallium/drivers/asahi/agx_state.c @@ -712,7 +712,9 @@ agx_pack_texture(void *out, struct agx_resource *rsrc, layers /= 6; if (rsrc->layout.tiling == AIL_TILING_LINEAR && - state->target == PIPE_TEXTURE_2D_ARRAY) { + (state->target == PIPE_TEXTURE_1D_ARRAY || + state->target == PIPE_TEXTURE_2D_ARRAY)) { + cfg.depth_linear = layers; cfg.layer_stride_linear = (rsrc->layout.layer_stride_B - 0x80); cfg.extended = true; @@ -1206,7 +1208,9 @@ agx_batch_upload_pbe(struct agx_batch *batch, struct agx_pbe_packed *out, unsigned layers = view->u.tex.last_layer - layer + 1; if (tex->layout.tiling == AIL_TILING_LINEAR && - tex->base.target == PIPE_TEXTURE_2D_ARRAY) { + (tex->base.target == PIPE_TEXTURE_1D_ARRAY || + tex->base.target == PIPE_TEXTURE_2D_ARRAY)) { + cfg.depth_linear = layers; cfg.layer_stride_linear = (tex->layout.layer_stride_B - 0x80); cfg.extended = true;