[Mesa-dev] [PATCH 2/2] glsl: don't run intrastage array validation when the interface type is not an array

Nicolai Hähnle nhaehnle at gmail.com
Thu Nov 30 14:47:18 UTC 2017


Can you add an explanation / spec quote for this?

On 09.11.2017 12:48, Samuel Iglesias Gonsálvez wrote:
> Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
> ---
>   src/compiler/glsl/link_interface_blocks.cpp | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/compiler/glsl/link_interface_blocks.cpp b/src/compiler/glsl/link_interface_blocks.cpp
> index c2c3b58f821..ce90d916075 100644
> --- a/src/compiler/glsl/link_interface_blocks.cpp
> +++ b/src/compiler/glsl/link_interface_blocks.cpp
> @@ -137,7 +137,7 @@ intrastage_match(ir_variable *a,
>      /* If a block is an array then it must match across the shader.
>       * Unsized arrays are also processed and matched agaist sized arrays.
>       */
> -   if (b->type != a->type &&
> +   if (b->type != a->type && (b->type->is_array() || a->type->is_array()) &&
>          (b->is_interface_instance() || a->is_interface_instance()) &&
>          !validate_intrastage_arrays(prog, b, a))
>         return false;
> 


-- 
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.


More information about the mesa-dev mailing list