[Mesa-dev] [PATCH 3/3] glsl->tgsi: add TXF support.

Bryan Cain bryancain3 at gmail.com
Thu Aug 25 08:09:31 PDT 2011


Like the other patch, the commit prefix should probably be "glsl_to_tgsi".

On 08/25/2011 09:51 AM, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> This adds texelFetch support to translate from GLSL to TGSI TXF opcode.
>
> I've tested this works with an r600g and softpipe backend.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> index fb5060c..8f9b843 100644
> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> @@ -2477,7 +2477,9 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
>        lod_info = this->result;
>        break;
>     case ir_txf: /* TODO: use TGSI_OPCODE_TXF here */

You can remove the comment on the above line now that TXF is actually
being used there.

> -      assert(!"GLSL 1.30 features unsupported");
> +      opcode = TGSI_OPCODE_TXF;
> +      ir->lod_info.lod->accept(this);
> +      lod_info = this->result;
>        break;
>     }
>  
> @@ -2541,7 +2543,8 @@ glsl_to_tgsi_visitor::visit(ir_texture *ir)
>        coord_dst.writemask = WRITEMASK_XYZW;
>     }
>  
> -   if (opcode == TGSI_OPCODE_TXL || opcode == TGSI_OPCODE_TXB) {
> +   if (opcode == TGSI_OPCODE_TXL || opcode == TGSI_OPCODE_TXB ||
> +       opcode == TGSI_OPCODE_TXF) {
>        /* TGSI stores LOD or LOD bias in the last channel of the coords. */
>        coord_dst.writemask = WRITEMASK_W;
>        emit(ir, TGSI_OPCODE_MOV, coord_dst, lod_info);
> @@ -4285,6 +4288,7 @@ compile_tgsi_instruction(struct st_translate *t,
>     case TGSI_OPCODE_TXL:
>     case TGSI_OPCODE_TXP:
>     case TGSI_OPCODE_TXQ:
> +   case TGSI_OPCODE_TXF:
>        src[num_src++] = t->samplers[inst->sampler];
>        ureg_tex_insn(ureg,
>                      inst->op,

Aside from those things,
Reviewed-by: Bryan Cain <bryancain3 at gmail.com>


More information about the mesa-dev mailing list