[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