[Mesa-dev] [PATCH] glsl: double-precision values don't support interpolation

Tapani Pälli tapani.palli at intel.com
Wed Jan 27 21:34:37 PST 2016


Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

On 01/27/2016 03:55 PM, Samuel Iglesias Gonsálvez wrote:
> ARB_gpu_shader_fp64 spec says:
>
>    "This extension does not support interpolation of double-precision
>    values; doubles used as fragment shader inputs must be qualified as
>    "flat"."
>
> Fixes the regressions added by commit 781d278:
>
> arb_gpu_shader_fp64-double-gettransformfeedbackvarying
> arb_gpu_shader_fp64-tf-interleaved
> arb_gpu_shader_fp64-tf-interleaved-aligned
> arb_gpu_shader_fp64-tf-separate
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93878
> Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
> ---
>   src/compiler/glsl/link_varyings.cpp | 9 +++++++--
>   1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/src/compiler/glsl/link_varyings.cpp b/src/compiler/glsl/link_varyings.cpp
> index 264b69c..a4c730f 100644
> --- a/src/compiler/glsl/link_varyings.cpp
> +++ b/src/compiler/glsl/link_varyings.cpp
> @@ -967,11 +967,16 @@ varying_matches::record(ir_variable *producer_var, ir_variable *consumer_var)
>         return;
>      }
>   
> -   if ((consumer_var == NULL && producer_var->type->contains_integer()) ||
> +   bool needs_flat_qualifier = consumer_var == NULL &&
> +      (producer_var->type->contains_integer() ||
> +       producer_var->type->contains_double());
> +
> +   if (needs_flat_qualifier ||
>          (consumer_stage != -1 && consumer_stage != MESA_SHADER_FRAGMENT)) {
>         /* Since this varying is not being consumed by the fragment shader, its
>          * interpolation type varying cannot possibly affect rendering.
> -       * Also, this variable is non-flat and is (or contains) an integer.
> +       * Also, this variable is non-flat and is (or contains) an integer
> +       * or a double.
>          * If the consumer stage is unknown, don't modify the interpolation
>          * type as it could affect rendering later with separate shaders.
>          *



More information about the mesa-dev mailing list