[Mesa-dev] [PATCH 097/133] nir/validate: Ensure that outputs are write-only and inputs are read-only

Connor Abbott cwabbott0 at gmail.com
Sun Jan 4 20:48:34 PST 2015


I'm not so sure how I feel about checking that outputs are write-only...
eventually we'll want to do lower_input_reads in NIR itself, at which point
we'll need to remove that part from the validator. At the same time, for
now this is somewhat useful. I'm just not sure if it's worth it (making
sure inputs are read-only definitely is, though).

On Tue, Dec 16, 2014 at 1:11 AM, Jason Ekstrand <jason at jlekstrand.net>
wrote:

> ---
>  src/glsl/nir/nir_validate.c | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
>
> diff --git a/src/glsl/nir/nir_validate.c b/src/glsl/nir/nir_validate.c
> index 80faa15..b8ef802 100644
> --- a/src/glsl/nir/nir_validate.c
> +++ b/src/glsl/nir/nir_validate.c
> @@ -337,6 +337,29 @@ validate_intrinsic_instr(nir_intrinsic_instr *instr,
> validate_state *state)
>        validate_deref_var(instr->variables[i], state);
>     }
>
> +   switch (instr->intrinsic) {
> +   case nir_intrinsic_load_var_vec1:
> +   case nir_intrinsic_load_var_vec2:
> +   case nir_intrinsic_load_var_vec3:
> +   case nir_intrinsic_load_var_vec4:
> +      assert(instr->variables[0]->var->data.mode != nir_var_shader_out);
> +      break;
> +   case nir_intrinsic_store_var_vec1:
> +   case nir_intrinsic_store_var_vec2:
> +   case nir_intrinsic_store_var_vec3:
> +   case nir_intrinsic_store_var_vec4:
> +      assert(instr->variables[0]->var->data.mode != nir_var_shader_in &&
> +             instr->variables[0]->var->data.mode != nir_var_uniform);
> +      break;
> +   case nir_intrinsic_copy_var:
> +      assert(instr->variables[0]->var->data.mode != nir_var_shader_in &&
> +             instr->variables[0]->var->data.mode != nir_var_uniform);
> +      assert(instr->variables[1]->var->data.mode != nir_var_shader_out);
> +      break;
> +   default:
> +      break;
> +   }
> +
>     if (instr->has_predicate)
>        validate_src(&instr->predicate, state);
>  }
> --
> 2.2.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150104/17257cce/attachment.html>


More information about the mesa-dev mailing list