summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/panfrost/midgard/midgard_compile.c35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.c b/src/gallium/drivers/panfrost/midgard/midgard_compile.c
index 0abecb90f3c..2d2d69a98ac 100644
--- a/src/gallium/drivers/panfrost/midgard/midgard_compile.c
+++ b/src/gallium/drivers/panfrost/midgard/midgard_compile.c
@@ -1366,22 +1366,9 @@ midgard_tex_format(enum glsl_sampler_dim dim)
}
}
-static unsigned
-midgard_tex_op(nir_texop op)
-{
- switch (op) {
- case nir_texop_tex:
- case nir_texop_txb:
- return TEXTURE_OP_NORMAL;
- case nir_texop_txl:
- return TEXTURE_OP_LOD;
- default:
- unreachable("Unhanlded texture op");
- }
-}
-
static void
-emit_tex(compiler_context *ctx, nir_tex_instr *instr)
+emit_texop_native(compiler_context *ctx, nir_tex_instr *instr,
+ unsigned midgard_texop)
{
/* TODO */
//assert (!instr->sampler);
@@ -1467,7 +1454,7 @@ emit_tex(compiler_context *ctx, nir_tex_instr *instr)
midgard_instruction ins = {
.type = TAG_TEXTURE_4,
.texture = {
- .op = midgard_tex_op(instr->op),
+ .op = midgard_texop,
.format = midgard_tex_format(instr->sampler_dim),
.texture_handle = texture_index,
.sampler_handle = sampler_index,
@@ -1526,6 +1513,22 @@ emit_tex(compiler_context *ctx, nir_tex_instr *instr)
}
static void
+emit_tex(compiler_context *ctx, nir_tex_instr *instr)
+{
+ switch (instr->op) {
+ case nir_texop_tex:
+ case nir_texop_txb:
+ emit_texop_native(ctx, instr, TEXTURE_OP_NORMAL);
+ break;
+ case nir_texop_txl:
+ emit_texop_native(ctx, instr, TEXTURE_OP_LOD);
+ break;
+ default:
+ unreachable("Unhanlded texture op");
+ }
+}
+
+static void
emit_jump(compiler_context *ctx, nir_jump_instr *instr)
{
switch (instr->type) {