Fix indirection for looking up SSBOs for member patching

This commit is contained in:
baldurk
2019-06-12 15:30:59 +01:00
parent 9d9aa49330
commit 67fc665bf1
2 changed files with 4 additions and 4 deletions
+1 -1
View File
@@ -1726,7 +1726,7 @@ void MakeShaderReflection(GLenum shadType, GLuint sepProg, ShaderReflection &ref
// number of elements, and make all child byteOffset values relative to their parent
for(size_t ssbo = 0; ssbo < ssbos.size(); ssbo++)
{
rdcarray<ShaderConstant> &ssboVars = rwresources[ssbo].variableType.members;
rdcarray<ShaderConstant> &ssboVars = rwresources[ssbos[ssbo]].variableType.members;
for(size_t rootMember = 0; rootMember + 1 < ssboVars.size(); rootMember++)
{
ShaderConstant &member = ssboVars[rootMember];
+3 -3
View File
@@ -3782,7 +3782,7 @@ void main() {
const ShaderConstant &submember = member.type.members[0];
INFO("SSBO submember: " << submember.name.c_str());
CHECK(submember.byteOffset == 40);
CHECK(submember.byteOffset == 0);
CHECK(submember.type.members.empty());
CHECK(submember.type.descriptor.type == VarType::Float);
CHECK(submember.type.descriptor.rows == 1);
@@ -3795,7 +3795,7 @@ void main() {
const ShaderConstant &submember = member.type.members[1];
INFO("SSBO submember: " << submember.name.c_str());
CHECK(submember.byteOffset == 44);
CHECK(submember.byteOffset == 4);
CHECK(submember.type.members.empty());
CHECK(submember.type.descriptor.type == VarType::SInt);
CHECK(submember.type.descriptor.rows == 1);
@@ -3808,7 +3808,7 @@ void main() {
const ShaderConstant &submember = member.type.members[2];
INFO("SSBO submember: " << submember.name.c_str());
CHECK(submember.byteOffset == 48);
CHECK(submember.byteOffset == 8);
CHECK(submember.type.members.empty());
CHECK(submember.type.descriptor.type == VarType::Float);
CHECK(submember.type.descriptor.rows == 2);