On Wed, Jan 3, 2018 at 6:04 AM, Timothy Arceri <tarc...@itsqueeze.com> wrote:
> Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com>
> ---
>  src/gallium/drivers/radeonsi/si_shader_nir.c | 29 
> ++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
>
> diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c 
> b/src/gallium/drivers/radeonsi/si_shader_nir.c
> index 4138e04dcb..d2760b03bc 100644
> --- a/src/gallium/drivers/radeonsi/si_shader_nir.c
> +++ b/src/gallium/drivers/radeonsi/si_shader_nir.c
> @@ -83,6 +83,9 @@ static void scan_instruction(struct tgsi_shader_info *info,
>                 case nir_intrinsic_load_instance_id:
>                         info->uses_instanceid = 1;
>                         break;
> +               case nir_intrinsic_load_invocation_id:
> +                       info->uses_invocationid = true;
> +                       break;
>                 case nir_intrinsic_load_vertex_id:
>                         info->uses_vertexid = 1;
>                         break;
> @@ -95,6 +98,10 @@ static void scan_instruction(struct tgsi_shader_info *info,
>                 case nir_intrinsic_load_primitive_id:
>                         info->uses_primid = 1;
>                         break;
> +               case nir_intrinsic_load_tess_level_inner:
> +               case nir_intrinsic_load_tess_level_outer:
> +                       info->reads_tess_factors = true;
> +                       break;
>                 case nir_intrinsic_image_store:
>                 case nir_intrinsic_image_atomic_add:
>                 case nir_intrinsic_image_atomic_min:
> @@ -137,6 +144,28 @@ void si_nir_scan_shader(const struct nir_shader *nir,
>         info->num_tokens = 2; /* indicate that the shader is non-empty */
>         info->num_instructions = 2;
>
> +       if (nir->info.stage == MESA_SHADER_TESS_CTRL) {
> +               info->properties[TGSI_PROPERTY_TCS_VERTICES_OUT] =
> +                       nir->info.tess.tcs_vertices_out;
> +       }
> +
> +       if (nir->info.stage == MESA_SHADER_TESS_EVAL) {
> +               if (nir->info.tess.primitive_mode == GL_ISOLINES)
> +                       info->properties[TGSI_PROPERTY_TES_PRIM_MODE] = 
> GL_LINES;

PIPE_PRIM_LINES (for consistency).

Marek

> +               else
> +                       info->properties[TGSI_PROPERTY_TES_PRIM_MODE] = 
> nir->info.tess.primitive_mode;
> +
> +               STATIC_ASSERT((TESS_SPACING_EQUAL + 1) % 3 == 
> PIPE_TESS_SPACING_EQUAL);
> +               STATIC_ASSERT((TESS_SPACING_FRACTIONAL_ODD + 1) % 3 ==
> +                             PIPE_TESS_SPACING_FRACTIONAL_ODD);
> +               STATIC_ASSERT((TESS_SPACING_FRACTIONAL_EVEN + 1) % 3 ==
> +                             PIPE_TESS_SPACING_FRACTIONAL_EVEN);
> +
> +               info->properties[TGSI_PROPERTY_TES_SPACING] = 
> (nir->info.tess.spacing + 1) % 3;
> +               info->properties[TGSI_PROPERTY_TES_VERTEX_ORDER_CW] = 
> !nir->info.tess.ccw;
> +               info->properties[TGSI_PROPERTY_TES_POINT_MODE] = 
> nir->info.tess.point_mode;
> +       }
> +
>         if (nir->info.stage == MESA_SHADER_GEOMETRY) {
>                 info->properties[TGSI_PROPERTY_GS_INPUT_PRIM] = 
> nir->info.gs.input_primitive;
>                 info->properties[TGSI_PROPERTY_GS_OUTPUT_PRIM] = 
> nir->info.gs.output_primitive;
> --
> 2.14.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to