Commit bdda9dac by Alexis Hetu Committed by Alexis Hétu

Fixed uniform block lookup

Blocks are also symbols, so when we have a block, we have to look for blocks instead of symbols. Change-Id: I683e646c2c63754a0b27b299dfdbc1d87017fb99 Reviewed-on: https://swiftshader-review.googlesource.com/4542Tested-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com>
parent 6c7ac3c8
...@@ -2725,21 +2725,22 @@ namespace glsl ...@@ -2725,21 +2725,22 @@ namespace glsl
TIntermSymbol *varSymbol = variable->getAsSymbolNode(); TIntermSymbol *varSymbol = variable->getAsSymbolNode();
TInterfaceBlock *varBlock = variable->getType().getAsInterfaceBlock(); TInterfaceBlock *varBlock = variable->getType().getAsInterfaceBlock();
if(varSymbol) if(varBlock)
{ {
for(unsigned int i = 0; i < list.size(); i++) for(unsigned int i = 0; i < list.size(); i++)
{ {
if(list[i]) if(list[i])
{ {
TIntermSymbol *listSymbol = list[i]->getAsSymbolNode(); TInterfaceBlock *listBlock = list[i]->getType().getAsInterfaceBlock();
if(listSymbol) if(listBlock)
{ {
if(listSymbol->getId() == varSymbol->getId()) if(listBlock->name() == varBlock->name())
{ {
ASSERT(listSymbol->getSymbol() == varSymbol->getSymbol()); ASSERT(listBlock->arraySize() == varBlock->arraySize());
ASSERT(listSymbol->getType() == varSymbol->getType()); ASSERT(listBlock->fields() == varBlock->fields());
ASSERT(listSymbol->getQualifier() == varSymbol->getQualifier()); ASSERT(listBlock->blockStorage() == varBlock->blockStorage());
ASSERT(listBlock->matrixPacking() == varBlock->matrixPacking());
return i; return i;
} }
...@@ -2747,22 +2748,21 @@ namespace glsl ...@@ -2747,22 +2748,21 @@ namespace glsl
} }
} }
} }
else if(varBlock) else if(varSymbol)
{ {
for(unsigned int i = 0; i < list.size(); i++) for(unsigned int i = 0; i < list.size(); i++)
{ {
if(list[i]) if(list[i])
{ {
TInterfaceBlock *listBlock = list[i]->getType().getAsInterfaceBlock(); TIntermSymbol *listSymbol = list[i]->getAsSymbolNode();
if(listBlock) if(listSymbol)
{ {
if(listBlock->name() == varBlock->name()) if(listSymbol->getId() == varSymbol->getId())
{ {
ASSERT(listBlock->arraySize() == varBlock->arraySize()); ASSERT(listSymbol->getSymbol() == varSymbol->getSymbol());
ASSERT(listBlock->fields() == varBlock->fields()); ASSERT(listSymbol->getType() == varSymbol->getType());
ASSERT(listBlock->blockStorage() == varBlock->blockStorage()); ASSERT(listSymbol->getQualifier() == varSymbol->getQualifier());
ASSERT(listBlock->matrixPacking() == varBlock->matrixPacking());
return i; return i;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment