[Mesa-dev] [PATCH 5/5] mesa/st: enable AMD_vertex_shader_viewport_index

Marek Olšák maraeo at gmail.com
Thu Jul 3 03:35:01 PDT 2014


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Renaming the cap to include "VIEWPORT" would not be a bad idea.

Marek

On Wed, Jul 2, 2014 at 10:30 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> The assumption is that any driver capable of emitting layer from the
> vertex shader and supporting viewports should be able to also handle
> emitting viewport index from the vertex shader.
>
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> Tested-by: Tobias Droste <tdroste at gmx.de>
> ---
>  docs/relnotes/10.3.html                | 2 +-
>  src/mesa/state_tracker/st_extensions.c | 2 ++
>  src/mesa/state_tracker/st_program.c    | 4 ++++
>  3 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/docs/relnotes/10.3.html b/docs/relnotes/10.3.html
> index 6090a92..2e718fc 100644
> --- a/docs/relnotes/10.3.html
> +++ b/docs/relnotes/10.3.html
> @@ -55,7 +55,7 @@ Note: some of the new features are only available with certain drivers.
>  <li>GL_ARB_viewport_array on nvc0</li>
>  <li>GL_ARB_seamless_cubemap_per_texture on i965, llvmpipe, nvc0, r600, radeonsi, softpipe</li>
>  <li>GL_ARB_fragment_layer_viewport on nv50, nvc0, llvmpipe, r600</li>
> -<li>GL_AMD_vertex_shader_viewport_index on i965/gen7+</li>
> +<li>GL_AMD_vertex_shader_viewport_index on i965/gen7+, r600</li>
>  </ul>
>
>
> diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
> index 9824135..b8b3d50 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -816,6 +816,8 @@ void st_init_extensions(struct st_context *st)
>           ctx->Const.ViewportBounds.Max = 16384.0;
>           ctx->Extensions.ARB_viewport_array = GL_TRUE;
>           ctx->Extensions.ARB_fragment_layer_viewport = GL_TRUE;
> +         if (ctx->Extensions.AMD_vertex_shader_layer)
> +            ctx->Extensions.AMD_vertex_shader_viewport_index = GL_TRUE;
>        }
>     }
>     if (ctx->Const.MaxProgramTextureGatherComponents > 0)
> diff --git a/src/mesa/state_tracker/st_program.c b/src/mesa/state_tracker/st_program.c
> index 1df411c..3570557 100644
> --- a/src/mesa/state_tracker/st_program.c
> +++ b/src/mesa/state_tracker/st_program.c
> @@ -262,6 +262,10 @@ st_prepare_vertex_program(struct gl_context *ctx,
>              stvp->output_semantic_name[slot] = TGSI_SEMANTIC_LAYER;
>              stvp->output_semantic_index[slot] = 0;
>              break;
> +         case VARYING_SLOT_VIEWPORT:
> +            stvp->output_semantic_name[slot] = TGSI_SEMANTIC_VIEWPORT_INDEX;
> +            stvp->output_semantic_index[slot] = 0;
> +            break;
>
>           case VARYING_SLOT_TEX0:
>           case VARYING_SLOT_TEX1:
> --
> 1.8.5.5
>
> _______________________________________________
> 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