[Mesa-dev] [PATCH 2/2] glsl: verify location when dual source blending

Anuj Phogat anuj.phogat at gmail.com
Tue Jul 28 09:55:24 PDT 2015


On Tue, Jul 28, 2015 at 3:37 AM, Tapani Pälli <tapani.palli at intel.com> wrote:
> Same check is made for glBindFragDataLocationIndexed but it was missing
> when using layout qualifiers.
>
> Fixes following Piglit test:
>         arb_blend_func_extended-output-location
>
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> ---
>  src/glsl/linker.cpp | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
>
> diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
> index c8d2e8e..a781211 100644
> --- a/src/glsl/linker.cpp
> +++ b/src/glsl/linker.cpp
> @@ -2431,6 +2431,25 @@ assign_attribute_or_color_locations(gl_shader_program *prog,
>          }
>        }
>
> +      /* From GL4.5 core spec, section 15.2 (Shader Execution):
> +       *
> +       *     "Output binding assignments will cause LinkProgram to fail:
> +       *     ...
> +       *     If the program has an active output assigned to a location greater
> +       *     than or equal to the value of MAX_DUAL_SOURCE_DRAW_BUFFERS and has
> +       *     an active output assigned an index greater than or equal to one;"
> +       */
> +      if (target_index == MESA_SHADER_FRAGMENT && var->data.index >= 1 &&
> +          var->data.location - generic_base >=
> +          (int) constants->MaxDualSourceDrawBuffers) {
> +         linker_error(prog,
> +                      "output location %d >= GL_MAX_DUAL_SOURCE_DRAW_BUFFERS "
> +                      "with index %u for %s\n",
> +                      var->data.location - generic_base, var->data.index,
> +                      var->name);
> +         return false;
> +      }
> +
>        const unsigned slots = var->type->count_attribute_slots();
>
>        /* From GL4.5 core spec, section 11.1.1 (Vertex Attributes):
> --
> 2.1.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Both patches are:
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>


More information about the mesa-dev mailing list