[Mesa-dev] [PATCH 2/3] nir: Make gl_FrontFacing a system_value

Connor Abbott cwabbott0 at gmail.com
Sat Feb 14 13:01:30 PST 2015


Patches 2 and 3 are

Reviewed-by: Connor Abbott <cwabbott0 at gmail.com>

On Sat, Feb 14, 2015 at 3:51 PM, Jason Ekstrand <jason at jlekstrand.net> wrote:
> GLSL IR labels gl_FrontFacing as an input variable and not a system value.
> This commit makes NIR silently translate gl_FrontFacing to a system value
> so that it properly gets translated into a load_system_value intrinsic.
> ---
>  src/glsl/nir/glsl_to_nir.cpp | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/src/glsl/nir/glsl_to_nir.cpp b/src/glsl/nir/glsl_to_nir.cpp
> index 46cfac3..efc15a6 100644
> --- a/src/glsl/nir/glsl_to_nir.cpp
> +++ b/src/glsl/nir/glsl_to_nir.cpp
> @@ -242,6 +242,7 @@ nir_visitor::visit(ir_variable *ir)
>     var->data.centroid = ir->data.centroid;
>     var->data.sample = ir->data.sample;
>     var->data.invariant = ir->data.invariant;
> +   var->data.location = ir->data.location;
>
>     switch(ir->data.mode) {
>     case ir_var_auto:
> @@ -260,7 +261,13 @@ nir_visitor::visit(ir_variable *ir)
>        break;
>
>     case ir_var_shader_in:
> -      var->data.mode = nir_var_shader_in;
> +      if (ir->data.location == VARYING_SLOT_FACE) {
> +         /* For whatever reason, GLSL IR makes gl_FrontFacing an input */
> +         var->data.location = SYSTEM_VALUE_FRONT_FACE;
> +         var->data.mode = nir_var_system_value;
> +      } else {
> +         var->data.mode = nir_var_shader_in;
> +      }
>        break;
>
>     case ir_var_shader_out:
> @@ -312,7 +319,6 @@ nir_visitor::visit(ir_variable *ir)
>        unreachable("not reached");
>     }
>
> -   var->data.location = ir->data.location;
>     var->data.index = ir->data.index;
>     var->data.binding = ir->data.binding;
>     /* XXX Get rid of buffer_index */
> --
> 2.2.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