[Mesa-dev] [PATCH v2] glsl/linker: Allow unused in blocks which are not declated on previous stage
Alejandro Piñeiro
apinheiro at igalia.com
Mon Aug 27 10:17:03 UTC 2018
On 27/08/18 12:08, Vadym Shovkoplias wrote:
> I haven't got write permissions, so I'll appreciate if someone can
> push it.
> Thanks!
Just done:
https://gitlab.freedesktop.org/mesa/mesa/commit/4a8444d5bc865119218eca8674e5614535f4829e
>
> On Mon, Aug 27, 2018 at 12:52 PM, Alejandro Piñeiro
> <apinheiro at igalia.com <mailto:apinheiro at igalia.com>> wrote:
>
> On 27/08/18 11:12, Vadym Shovkoplias wrote:
>> Hi Timothy, Alejandro, Marek,
>>
>> Thanks for review! Can we merge the patch now ?
>
> Yes, as soon as a patch gets a Rb, it can be pushed to master. Do
> you have write permissions to do it by yourself, or do you need
> someone of do that in your behalf?
>
>
>>
>> On Mon, Aug 27, 2018 at 6:08 AM, Timothy Arceri
>> <tarceri at itsqueeze.com <mailto:tarceri at itsqueeze.com>> wrote:
>>
>> Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com
>> <mailto:tarceri at itsqueeze.com>>
>>
>>
>> On 24/08/18 18:25, Alejandro Piñeiro wrote:
>>
>> CCing Timothy just in case he still thinks that the
>> original comment
>> should remain as it is. In any case, it looks to me, so:
>>
>> Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com
>> <mailto:apinheiro at igalia.com>>
>>
>>
>> On 23/08/18 12:12, vadym.shovkoplias wrote:
>>
>> From Section 4.3.4 (Inputs) of the GLSL 1.50 spec:
>>
>> "Only the input variables that are actually read
>> need to be written
>> by the previous stage; it is allowed to have
>> superfluous
>> declarations of input variables."
>>
>> Fixes:
>> * interstage-multiple-shader-objects.shader_test
>>
>> v2:
>> Update comment in ir.h since the usage of "used" field
>> has been extended.
>>
>> Bugzilla:
>> https://bugs.freedesktop.org/show_bug.cgi?id=101247
>> <https://bugs.freedesktop.org/show_bug.cgi?id=101247>
>> Signed-off-by: Vadym Shovkoplias
>> <vadym.shovkoplias at globallogic.com
>> <mailto:vadym.shovkoplias at globallogic.com>>
>> ---
>> src/compiler/glsl/ir.h | 4 ++--
>> src/compiler/glsl/link_interface_blocks.cpp | 8
>> +++++++-
>> 2 files changed, 9 insertions(+), 3 deletions(-)
>>
>> diff --git a/src/compiler/glsl/ir.h
>> b/src/compiler/glsl/ir.h
>> index 67b38f48ef..d05d1998a5 100644
>> --- a/src/compiler/glsl/ir.h
>> +++ b/src/compiler/glsl/ir.h
>> @@ -667,8 +667,8 @@ public:
>> * variable has been used. For example, it
>> is an error to redeclare a
>> * variable as invariant after it has been used.
>> *
>> - * This is only maintained in the
>> ast_to_hir.cpp path, not in
>> - * Mesa's fixed function or ARB program paths.
>> + * This is maintained in the ast_to_hir.cpp
>> path and during linking,
>> + * but not in Mesa's fixed function or ARB
>> program paths.
>> */
>> unsigned used:1;
>> diff --git
>> a/src/compiler/glsl/link_interface_blocks.cpp
>> b/src/compiler/glsl/link_interface_blocks.cpp
>> index e5eca9460e..801fbcd5d9 100644
>> --- a/src/compiler/glsl/link_interface_blocks.cpp
>> +++ b/src/compiler/glsl/link_interface_blocks.cpp
>> @@ -417,9 +417,15 @@
>> validate_interstage_inout_blocks(struct
>> gl_shader_program *prog,
>> * write to any of the pre-defined outputs
>> (e.g. if the vertex shader
>> * does not write to gl_Position, etc), which
>> is allowed and results in
>> * undefined behavior.
>> + *
>> + * From Section 4.3.4 (Inputs) of the GLSL
>> 1.50 spec:
>> + *
>> + * "Only the input variables that are
>> actually read need to be written
>> + * by the previous stage; it is allowed to
>> have superfluous
>> + * declarations of input variables."
>> */
>> if (producer_def == NULL &&
>> - !is_builtin_gl_in_block(var,
>> consumer->Stage)) {
>> + !is_builtin_gl_in_block(var,
>> consumer->Stage) && var->data.used) {
>> linker_error(prog, "Input block `%s' is
>> not an output of "
>> "the previous stage\n",
>> var->get_interface_type()->name);
>> return;
>>
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> <mailto:mesa-dev at lists.freedesktop.org>
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>> <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>
>>
>>
>>
>>
>> --
>>
>> Vadym Shovkoplias | Senior Software Engineer
>> GlobalLogic
>> P +380.57.766.7667 M +3.8050.931.7304 S vadym.shovkoplias
>> www.globallogic.com <http://www.globallogic.com/>
>> <http://www.globallogic.com/>
>> http://www.globallogic.com/email_disclaimer.txt
>> <http://www.globallogic.com/email_disclaimer.txt>
>
>
>
>
> --
>
> Vadym Shovkoplias | Senior Software Engineer
> GlobalLogic
> P +380.57.766.7667 M +3.8050.931.7304 S vadym.shovkoplias
> www.globallogic.com <http://www.globallogic.com/>
> <http://www.globallogic.com/>
> http://www.globallogic.com/email_disclaimer.txt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180827/154628ad/attachment-0001.html>
More information about the mesa-dev
mailing list