[Mesa-dev] [PATCH v2 11/11] gallium/compute: Drop TGSI dependency.
Tom Stellard
thomas.stellard at amd.com
Fri Apr 20 09:46:49 PDT 2012
On Fri, Apr 20, 2012 at 06:04:51PM +0200, Francisco Jerez wrote:
> Add a shader cap for specifying the preferred shader representation.
> Right now the only supported value is TGSI, other enum values will be
> added as they are needed.
>
> This is mainly to accommodate AMD's LLVM compiler back-end by letting
> it bypass the TGSI representation for compute programs. Other drivers
> will keep using the common TGSI instruction set.
> ---
> v2: Use an enumeration instead of a string, and make it a shader cap
> instead of a compute-specific cap.
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
>
> src/gallium/docs/source/screen.rst | 2 ++
> src/gallium/include/pipe/p_defines.h | 11 ++++++++++-
> src/gallium/include/pipe/p_state.h | 2 +-
> 3 files changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/docs/source/screen.rst b/src/gallium/docs/source/screen.rst
> index 7f0f462..afaefb2 100644
> --- a/src/gallium/docs/source/screen.rst
> +++ b/src/gallium/docs/source/screen.rst
> @@ -173,6 +173,8 @@ to be 0.
> If unsupported, only float opcodes are supported.
> * ``PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS``: THe maximum number of texture
> samplers.
> +* ``PIPE_SHADER_CAP_PREFERRED_IR``: Preferred representation of the
> + program. It should be one of the ``pipe_shader_ir`` enum values.
>
>
> .. _pipe_compute_cap:
> diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h
> index 9a74ea3..b6caff7 100644
> --- a/src/gallium/include/pipe/p_defines.h
> +++ b/src/gallium/include/pipe/p_defines.h
> @@ -519,7 +519,16 @@ enum pipe_shader_cap
> PIPE_SHADER_CAP_INDIRECT_CONST_ADDR = 15,
> PIPE_SHADER_CAP_SUBROUTINES = 16, /* BGNSUB, ENDSUB, CAL, RET */
> PIPE_SHADER_CAP_INTEGERS = 17,
> - PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS = 18
> + PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS = 18,
> + PIPE_SHADER_CAP_PREFERRED_IR = 19
> +};
> +
> +/**
> + * Shader intermediate representation.
> + */
> +enum pipe_shader_ir
> +{
> + PIPE_SHADER_IR_TGSI
> };
>
> /**
> diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h
> index 8b6dc7e..bffe46f 100644
> --- a/src/gallium/include/pipe/p_state.h
> +++ b/src/gallium/include/pipe/p_state.h
> @@ -580,7 +580,7 @@ struct pipe_resolve_info
>
> struct pipe_compute_state
> {
> - const struct tgsi_token *tokens; /**< Compute program to be executed. */
> + const void *prog; /**< Compute program to be executed. */
> unsigned req_local_mem; /**< Required size of the LOCAL resource. */
> unsigned req_private_mem; /**< Required size of the PRIVATE resource. */
> unsigned req_input_mem; /**< Required size of the INPUT resource. */
> --
> 1.7.9.2
>
> _______________________________________________
> 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