[Mesa-dev] [PATCH] glsl_to_tgsi: make sure copied instructions don't lose texture target.

Brian Paul brian.e.paul at gmail.com
Mon Dec 12 09:09:10 PST 2011


On Sat, Dec 10, 2011 at 11:34 AM, Dave Airlie <airlied at gmail.com> wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> The piglit draw-pixel-with-texture was asserting in the glsl->tgsi code,
> due to 0 texture target, this makes sure the texture target is copied over
> correctly when we copy instructions around.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> index 6cc655d..68eaddc 100644
> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
> @@ -3786,6 +3786,7 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
>     * new visitor. */
>    foreach_iter(exec_list_iterator, iter, original->instructions) {
>       glsl_to_tgsi_instruction *inst = (glsl_to_tgsi_instruction *)iter.get();
> +      glsl_to_tgsi_instruction *newinst;
>       st_src_reg src_regs[3];
>
>       if (inst->dst.file == PROGRAM_OUTPUT)
> @@ -3803,7 +3804,8 @@ get_pixel_transfer_visitor(struct st_fragment_program *fp,
>             prog->InputsRead |= BITFIELD64_BIT(src_regs[i].index);
>       }
>
> -      v->emit(NULL, inst->op, inst->dst, src_regs[0], src_regs[1], src_regs[2]);
> +      newinst = v->emit(NULL, inst->op, inst->dst, src_regs[0], src_regs[1], src_regs[2]);
> +      newinst->tex_target = inst->tex_target;
>    }
>
>    /* Make modifications to fragment program info. */

Looks good to me.  I had started to look into the glDrawPixels
failures and found tex_target to be zero.  I didn't know where it was
supposed to come from though.

Reviewed-by: Brian Paul <brianp at vmware.com>


More information about the mesa-dev mailing list