https://bugs.freedesktop.org/show_bug.cgi?id=90397
Bug ID: 90397
Summary: ARB_program_interface_query: glGetProgramResourceiv()
returns wrong value for GL_REFERENCED_BY_*_SHADER prop
for GL_UNIFORM for members of an interface block with
an instance name
Product: Mesa
Version: git
Hardware: Other
OS: All
Status: NEW
Severity: normal
Priority: medium
Component: Mesa core
Assignee: [email protected]
Reporter: [email protected]
QA Contact: [email protected]
CC: [email protected]
I was doing some testing of GL_BUFFER_VARIABLE <programInterface> parameter in
glGetProgramResourceiv() checking different property queries, because I need
that support for testing my GL_ARB_shader_storage_buffer_object work.
I realized that queries for GL_REFERENCED_BY_*_SHADER
(GL_REFERENCED_BY_VERTEX_SHADER, GL_REFERENCED_BY_FRAGMENT_SHADER...) are not
returning the proper value when the variable is a member of an interface block
with an instance name. This is happening to GL_UNIFORM in current master
branch.
For example: using the following vertex shader,
glGetProgramResourceiv(GL_REFERENCED_BY_VERTEX_SHADER) query for GL_UNIFORM's
"ubo_std140.s[0].b[0]" should return 1 but it returns 0. ATI proprietary driver
returns 1.
#version 330
#extension GL_ARB_uniform_buffer_object : require
struct B {mat2 b[3]; float c;};
layout(row_major, std140) uniform ubo_std140 {
vec4 v;
B s[2];
} a_std140;
in vec4 piglit_vertex;
void main() {
gl_Position = piglit_vertex;
mat2 a = a_std140.s[0].b[0];
gl_Position.x = a[0][0];
}
Tested on Mesa master: abf3fefa1aa734844e0ca8e95e8c3a501909aa33
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev