<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><span class="vcard"><a class="email" href="mailto:jasuarez@igalia.com" title="Juan A. Suarez <jasuarez@igalia.com>"> <span class="fn">Juan A. Suarez</span></a>
</span> changed
<a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - Attaching multiple shader objects for the same stage to a GLSL program triggers a linker error"
href="https://bugs.freedesktop.org/show_bug.cgi?id=104777">bug 104777</a>
<br>
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>What</th>
<th>Removed</th>
<th>Added</th>
</tr>
<tr>
<td style="text-align:right;">Resolution</td>
<td>---
</td>
<td>FIXED
</td>
</tr>
<tr>
<td style="text-align:right;">Status</td>
<td>NEW
</td>
<td>RESOLVED
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - Attaching multiple shader objects for the same stage to a GLSL program triggers a linker error"
href="https://bugs.freedesktop.org/show_bug.cgi?id=104777#c3">Comment # 3</a>
on <a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - Attaching multiple shader objects for the same stage to a GLSL program triggers a linker error"
href="https://bugs.freedesktop.org/show_bug.cgi?id=104777">bug 104777</a>
from <span class="vcard"><a class="email" href="mailto:jasuarez@igalia.com" title="Juan A. Suarez <jasuarez@igalia.com>"> <span class="fn">Juan A. Suarez</span></a>
</span></b>
<pre>commit 4195eed961ccfe404ae81b9112189fc93a254ded
Author: Juan A. Suarez Romero <<a href="mailto:jasuarez@igalia.com">jasuarez@igalia.com</a>>
Date: Mon Feb 5 17:38:39 2018 +0100
glsl/linker: check same name is not used in block and outside
According with OpenGL GLSL 3.20 spec, section 4.3.9:
"It is a link-time error if any particular shader interface
contains:
- two different blocks, each having no instance name, and each
having a member of the same name, or
- a variable outside a block, and a block with no instance name,
where the variable has the same name as a member in the block."
This fixes a previous commit 9b894c8 ("glsl/linker: link-error using the
same name in unnamed block and outside") that covered this case, but
did not take in account that precision qualifiers are ignored when
comparing blocks with no instance name.
With this commit, the original tests
KHR-GL*.shaders.uniform_block.common.name_matching keep fixed, and also
dEQP-GLES31.functional.shaders.linkage.uniform.block.differing_precision
regression is fixed, which was broken by previous commit.
v2: use helper varibles (Matteo Bruni)
Fixes: 9b894c8 ("glsl/linker: link-error using the same name in unnamed
block and outside")
Bugzilla: <a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - dEQP-GLES31.functional.shaders.linkage.uniform.block.differing_precision regression"
href="show_bug.cgi?id=104668">https://bugs.freedesktop.org/show_bug.cgi?id=104668</a>
Bugzilla: <a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED FIXED - Attaching multiple shader objects for the same stage to a GLSL program triggers a linker error"
href="show_bug.cgi?id=104777">https://bugs.freedesktop.org/show_bug.cgi?id=104777</a>
CC: Mark Janes <<a href="mailto:mark.a.janes@intel.com">mark.a.janes@intel.com</a>>
CC: "18.0" <<a href="mailto:mesa-stable@lists.freedesktop.org">mesa-stable@lists.freedesktop.org</a>>
Tested-by: Matteo Bruni <<a href="mailto:matteo.mystral@gmail.com">matteo.mystral@gmail.com</a>>
Reviewed-by: Tapani Pälli <<a href="mailto:tapani.palli@intel.com">tapani.palli@intel.com</a>>
Signed-off-by: Juan A. Suarez Romero <<a href="mailto:jasuarez@igalia.com">jasuarez@igalia.com</a>>
src/compiler/glsl/linker.cpp | 53
++++++++++++++++++++++++++++++-----------------------
1 file changed, 30 insertions(+), 23 deletions(-)</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>