Reflection: Implement the std140 block offset calculation rules.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24027 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
c043498b02
commit
568bc3ae55
5 changed files with 228 additions and 37 deletions
|
|
@ -1,22 +1,41 @@
|
|||
#version 440 core
|
||||
|
||||
uniform nameless {
|
||||
layout(std140, row_major) uniform nameless {
|
||||
vec3 anonMember1;
|
||||
mat3x2 m23;
|
||||
int scalarAfterm23;
|
||||
vec4 anonDeadMember2;
|
||||
vec4 anonMember3;
|
||||
int scalarBeforeArray;
|
||||
float floatArray[5];
|
||||
int scalarAfterArray;
|
||||
};
|
||||
|
||||
uniform named {
|
||||
layout(std140, column_major) uniform c_nameless {
|
||||
vec3 c_anonMember1;
|
||||
mat3x2 c_m23;
|
||||
int c_scalarAfterm23;
|
||||
vec4 c_anonDeadMember2;
|
||||
vec4 c_anonMember3;
|
||||
};
|
||||
|
||||
layout(std140) uniform named {
|
||||
vec3 deadMember1;
|
||||
int scalar;
|
||||
vec4 member2;
|
||||
vec4 member3;
|
||||
vec2 memvec2;
|
||||
float memf1;
|
||||
bool memf2;
|
||||
int memf3;
|
||||
vec2 memvec2a;
|
||||
} ablock;
|
||||
|
||||
uniform namelessdead {
|
||||
layout(std140) uniform namelessdead {
|
||||
int a;
|
||||
};
|
||||
|
||||
uniform namedDead {
|
||||
layout(std140) uniform namedDead {
|
||||
int b;
|
||||
} bblock;
|
||||
|
||||
|
|
@ -68,6 +87,17 @@ void main()
|
|||
liveFunction2();
|
||||
f = anonMember3.z;
|
||||
f = s.a;
|
||||
f = ablock.scalar;
|
||||
f = m23[1].y + scalarAfterm23;
|
||||
f = c_m23[1].y + c_scalarAfterm23;
|
||||
f += scalarBeforeArray;
|
||||
f += floatArray[2];
|
||||
f += scalarAfterArray;
|
||||
f += ablock.memvec2.x;
|
||||
f += ablock.memf1;
|
||||
f += float(ablock.memf2);
|
||||
f += ablock.memf3;
|
||||
f += ablock.memvec2a.y;
|
||||
} else
|
||||
f = ufDead3;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue