[Mesa-dev] [PATCH 2/2] mesa: do runtime validation of precision varyings only on ES

Samuel Iglesias Gonsálvez siglesias at igalia.com
Mon Nov 16 04:59:38 PST 2015


Please add the spec quote in the commit log. For example:

>From OpenGL 4.4, section 4.7 "Precision and Precision Qualifiers":

"For the purposes of determining if an output from one shader stage
matches an input of the next stage, the precision qualifier need not match."

Other than that,

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>

I wonder if this check is better placed inside validate_io() so we don't
forget about it if validate_io() does more things than only check
precision qualifier in the future. But I don't have a strong opinion
about it.

Sam


On 16/11/15 07:44, Tapani Pälli wrote:
> Precision qualifier should be ignored on desktop OpenGL.
> 
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> ---
>  src/mesa/main/shader_query.cpp | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/src/mesa/main/shader_query.cpp b/src/mesa/main/shader_query.cpp
> index 58ba041..dc39f24 100644
> --- a/src/mesa/main/shader_query.cpp
> +++ b/src/mesa/main/shader_query.cpp
> @@ -1413,9 +1413,15 @@ _mesa_validate_pipeline_io(struct gl_pipeline_object *pipeline)
>  
>     for (idx = prev + 1; idx < ARRAY_SIZE(pipeline->CurrentProgram); idx++) {
>        if (shProg[idx]) {
> -         if (!validate_io(shProg[prev]->_LinkedShaders[prev],
> -                          shProg[idx]->_LinkedShaders[idx]))
> -            return false;
> +
> +         /* Since we now only validate precision, we can skip this step for
> +          * desktop GLSL shaders, there precision qualifier is ignored.
> +          */
> +         if (shProg[prev]->IsES || shProg[idx]->IsES) {
> +            if (!validate_io(shProg[prev]->_LinkedShaders[prev],
> +                             shProg[idx]->_LinkedShaders[idx]))
> +               return false;
> +         }
>           prev = idx;
>        }
>     }
> 


More information about the mesa-dev mailing list