summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>2021-04-24 14:00:55 -0400
committerAlyssa Rosenzweig <none>2021-05-02 17:41:18 -0400
commitd555849c3c0981c466d95ced31ce0f3a95a54555 (patch)
treed0ce65313f14d3dfeb552b04e41f5c441d9975ad
parent1455f33f9b83cf8a818725dcb38f8ac2a7fd7321 (diff)
agx: Add agx_tex_dim helper
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Acked-by: Jason Ekstrand <jason@jlekstrand.net> Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10582>
-rw-r--r--src/asahi/compiler/agx_compile.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/asahi/compiler/agx_compile.c b/src/asahi/compiler/agx_compile.c
index 997d7f9a277..8a354b1835b 100644
--- a/src/asahi/compiler/agx_compile.c
+++ b/src/asahi/compiler/agx_compile.c
@@ -491,6 +491,35 @@ agx_emit_alu(agx_builder *b, nir_alu_instr *instr)
}
}
+static enum agx_dim
+agx_tex_dim(enum glsl_sampler_dim dim, bool array)
+{
+ switch (dim) {
+ case GLSL_SAMPLER_DIM_1D:
+ case GLSL_SAMPLER_DIM_BUF:
+ return array ? AGX_DIM_TEX_1D_ARRAY : AGX_DIM_TEX_1D;
+
+ case GLSL_SAMPLER_DIM_2D:
+ case GLSL_SAMPLER_DIM_RECT:
+ case GLSL_SAMPLER_DIM_EXTERNAL:
+ return array ? AGX_DIM_TEX_2D_ARRAY : AGX_DIM_TEX_2D;
+
+ case GLSL_SAMPLER_DIM_MS:
+ assert(!array && "multisampled arrays unsupported");
+ return AGX_DIM_TEX_2D_MS;
+
+ case GLSL_SAMPLER_DIM_3D:
+ assert(!array && "3D arrays unsupported");
+ return AGX_DIM_TEX_3D;
+
+ case GLSL_SAMPLER_DIM_CUBE:
+ return array ? AGX_DIM_TEX_CUBE_ARRAY : AGX_DIM_TEX_CUBE;
+
+ default:
+ unreachable("Invalid sampler dim\n");
+ }
+}
+
static void
agx_emit_tex(agx_builder *b, nir_tex_instr *instr)
{