<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - glLinkProgram is expected to fail when vertex attribute aliasing happens on ES3.0 context or later"
href="https://bugs.freedesktop.org/show_bug.cgi?id=106833">106833</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>glLinkProgram is expected to fail when vertex attribute aliasing happens on ES3.0 context or later
</td>
</tr>
<tr>
<th>Product</th>
<td>Mesa
</td>
</tr>
<tr>
<th>Version</th>
<td>git
</td>
</tr>
<tr>
<th>Hardware</th>
<td>x86-64 (AMD64)
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux (All)
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Component</th>
<td>Mesa core
</td>
</tr>
<tr>
<th>Assignee</th>
<td>mesa-dev@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>xinghua.cao@intel.com
</td>
</tr>
<tr>
<th>QA Contact</th>
<td>mesa-dev@lists.freedesktop.org
</td>
</tr></table>
<p>
<div>
<pre>Steps:
1. Download chrome and install it on your Ubuntu,
<a href="https://www.google.com/chrome/?platform=linux&extra=devchannel">https://www.google.com/chrome/?platform=linux&extra=devchannel</a>.
2. Open chrome on command line, "google-chrome-unstable --use-gl=egl".
3. Open the link,
<a href="https://www.khronos.org/registry/webgl/sdk/tests/conformance2/attribs/gl-bindAttribLocation-aliasing-inactive.html?webglVersion=2&quiet=0">https://www.khronos.org/registry/webgl/sdk/tests/conformance2/attribs/gl-bindAttribLocation-aliasing-inactive.html?webglVersion=2&quiet=0</a>
4. Some cases fail.
Notes:
These failed cases verify that glLinkProgram is expected to fail when binding
two vertex inputs(attributes) to the same position.
You could read the spec to get more information(OpenGL ES GLSL 3.0, issue
12.46, P150).
I am not sure whether OpenGL GLSL 4.5 and OpenGL ES GLSL 2.0 allow this
behavior. (It seems that OpenGL ES GLSL 2.0 allows this behavior, and does not
report error when linking program)
One case may be as below,
the vertex shader:
#version 300 es
in mediump float a_1;
in mediump float a_2;
void main()
{
gl_Position = vec4(0.0, 0.0, 0.0, 0.0);
}
API side calls:
var glProgram = gl.createProgram();
gl.bindAttribLocation(glProgram, l, 'a_1');
gl.bindAttribLocation(glProgram, l, 'a_2'); // bind a_2 the same location as
a_1
gl.attachShader(glProgram, glVertexShader);
gl.attachShader(glProgram, glFragmentShader);
gl.linkProgram(glProgram); // Expect failure here</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>