[Mesa-dev] [PATCH 1/2] tgsi/scan: add uses_doubles to tgsi scanner

Ilia Mirkin imirkin at alum.mit.edu
Thu Feb 19 16:55:41 PST 2015


On Thu, Feb 19, 2015 at 7:54 PM, Dave Airlie <airlied at gmail.com> wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> This allows drivers to work out if a shader contains any
> double opcodes easily.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  src/gallium/auxiliary/tgsi/tgsi_scan.c | 4 ++++
>  src/gallium/auxiliary/tgsi/tgsi_scan.h | 2 +-
>  2 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c
> index e6011d2..e19b8a1 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_scan.c
> +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c
> @@ -97,6 +97,10 @@ tgsi_scan_shader(const struct tgsi_token *tokens,
>              assert(fullinst->Instruction.Opcode < TGSI_OPCODE_LAST);
>              info->opcode_count[fullinst->Instruction.Opcode]++;
>
> +            if (fullinst->Instruction.Opcode >= TGSI_OPCODE_F2D ||
> +                fullinst->Instruction.Opcode < TGSI_OPCODE_DRSQ)

I added a few :)

> +               info->uses_doubles = true;
> +
>              for (i = 0; i < fullinst->Instruction.NumSrcRegs; i++) {
>                 const struct tgsi_full_src_register *src =
>                    &fullinst->Src[i];
> diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.h b/src/gallium/auxiliary/tgsi/tgsi_scan.h
> index 5dc9267..daa73cc 100644
> --- a/src/gallium/auxiliary/tgsi/tgsi_scan.h
> +++ b/src/gallium/auxiliary/tgsi/tgsi_scan.h
> @@ -86,7 +86,7 @@ struct tgsi_shader_info
>     boolean writes_viewport_index;
>     boolean writes_layer;
>     boolean is_msaa_sampler[PIPE_MAX_SAMPLERS];
> -
> +   boolean uses_doubles; /**< uses any of the double instructions */
>     unsigned clipdist_writemask;
>     unsigned culldist_writemask;
>     unsigned num_written_culldistance;
> --
> 1.9.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list