panfrost: Prepare things to support non-native texture ops

We are about to add support for the TXS (texture size) op which is not
implemented using a midgard texture instruction. Let's rename emit_tex()
into emit_texop_native() and repurpose emit_tex() as a dispatcher.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
Boris Brezillon
2019-06-17 21:47:46 +02:00
committed by Alyssa Rosenzweig
parent c57f7d0f15
commit 5c17f84ae2
@@ -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,
@@ -1525,6 +1512,22 @@ emit_tex(compiler_context *ctx, nir_tex_instr *instr)
ctx->texture_op_count++;
}
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)
{