diff options
| author | Boris Brezillon <boris.brezillon@collabora.com> | 2019-06-17 21:47:46 +0200 |
|---|---|---|
| committer | Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> | 2019-06-18 06:36:07 -0700 |
| commit | 5c17f84ae22ce2770f6b81eba3360d1ce693787b (patch) | |
| tree | b8cbaa2b75c14555362de1e2a02ea1ca744e8f9d | |
| parent | c57f7d0f152f79cf9bba35e23d754518531aefdf (diff) | |
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>
| -rw-r--r-- | src/gallium/drivers/panfrost/midgard/midgard_compile.c | 35 |
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) { |
