[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