mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-09-12 08:45:48 +00:00
Store parent-relative byte offset in UBOs from GLSL reflection
This commit is contained in:
@@ -1795,6 +1795,10 @@ void MakeShaderReflection(GLenum shadType, GLuint sepProg, ShaderReflection &ref
|
||||
(GLint *)&cblock.byteSize);
|
||||
|
||||
sort(ubos[i]);
|
||||
|
||||
for(ShaderConstant &member : ubos[i])
|
||||
MakeChildByteOffsetsRelative(member);
|
||||
|
||||
std::swap(cblock.variables, ubos[i]);
|
||||
|
||||
refl.constantBlocks.push_back(cblock);
|
||||
|
||||
@@ -3942,7 +3942,7 @@ void main() {
|
||||
const ShaderConstant &submember = member.type.members[0];
|
||||
INFO("UBO submember: " << submember.name.c_str());
|
||||
|
||||
CHECK(submember.byteOffset == 192);
|
||||
CHECK(submember.byteOffset == 0);
|
||||
CHECK(submember.type.members.empty());
|
||||
CHECK(submember.type.descriptor.type == VarType::Float);
|
||||
CHECK(submember.type.descriptor.rows == 1);
|
||||
@@ -3955,7 +3955,7 @@ void main() {
|
||||
const ShaderConstant &submember = member.type.members[1];
|
||||
INFO("UBO submember: " << submember.name.c_str());
|
||||
|
||||
CHECK(submember.byteOffset == 196);
|
||||
CHECK(submember.byteOffset == 4);
|
||||
CHECK(submember.type.members.empty());
|
||||
CHECK(submember.type.descriptor.type == VarType::SInt);
|
||||
CHECK(submember.type.descriptor.rows == 1);
|
||||
@@ -3968,7 +3968,7 @@ void main() {
|
||||
const ShaderConstant &submember = member.type.members[2];
|
||||
INFO("UBO submember: " << submember.name.c_str());
|
||||
|
||||
CHECK(submember.byteOffset == 208);
|
||||
CHECK(submember.byteOffset == 16);
|
||||
CHECK(submember.type.members.empty());
|
||||
CHECK(submember.type.descriptor.type == VarType::Float);
|
||||
CHECK(submember.type.descriptor.rows == 2);
|
||||
|
||||
Reference in New Issue
Block a user