OSDN Git Service

Fixed uniform block lookup
authorAlexis Hetu <sugoi@google.com>
Tue, 12 Jan 2016 21:09:29 +0000 (16:09 -0500)
committerAlexis Hétu <sugoi@google.com>
Wed, 13 Jan 2016 15:02:10 +0000 (15:02 +0000)
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/4542
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
src/OpenGL/compiler/OutputASM.cpp

index 8af200d..166c1bb 100644 (file)
@@ -2725,21 +2725,22 @@ namespace glsl
                TIntermSymbol *varSymbol = variable->getAsSymbolNode();\r
                TInterfaceBlock *varBlock = variable->getType().getAsInterfaceBlock();\r
 \r
-               if(varSymbol)\r
+               if(varBlock)\r
                {\r
                        for(unsigned int i = 0; i < list.size(); i++)\r
                        {\r
                                if(list[i])\r
                                {\r
-                                       TIntermSymbol *listSymbol = list[i]->getAsSymbolNode();\r
+                                       TInterfaceBlock *listBlock = list[i]->getType().getAsInterfaceBlock();\r
 \r
-                                       if(listSymbol)\r
+                                       if(listBlock)\r
                                        {\r
-                                               if(listSymbol->getId() == varSymbol->getId())\r
+                                               if(listBlock->name() == varBlock->name())\r
                                                {\r
-                                                       ASSERT(listSymbol->getSymbol() == varSymbol->getSymbol());\r
-                                                       ASSERT(listSymbol->getType() == varSymbol->getType());\r
-                                                       ASSERT(listSymbol->getQualifier() == varSymbol->getQualifier());\r
+                                                       ASSERT(listBlock->arraySize() == varBlock->arraySize());\r
+                                                       ASSERT(listBlock->fields() == varBlock->fields());\r
+                                                       ASSERT(listBlock->blockStorage() == varBlock->blockStorage());\r
+                                                       ASSERT(listBlock->matrixPacking() == varBlock->matrixPacking());\r
 \r
                                                        return i;\r
                                                }\r
@@ -2747,22 +2748,21 @@ namespace glsl
                                }\r
                        }\r
                }\r
-               else if(varBlock)\r
+               else if(varSymbol)\r
                {\r
                        for(unsigned int i = 0; i < list.size(); i++)\r
                        {\r
                                if(list[i])\r
                                {\r
-                                       TInterfaceBlock *listBlock = list[i]->getType().getAsInterfaceBlock();\r
+                                       TIntermSymbol *listSymbol = list[i]->getAsSymbolNode();\r
 \r
-                                       if(listBlock)\r
+                                       if(listSymbol)\r
                                        {\r
-                                               if(listBlock->name() == varBlock->name())\r
+                                               if(listSymbol->getId() == varSymbol->getId())\r
                                                {\r
-                                                       ASSERT(listBlock->arraySize() == varBlock->arraySize());\r
-                                                       ASSERT(listBlock->fields() == varBlock->fields());\r
-                                                       ASSERT(listBlock->blockStorage() == varBlock->blockStorage());\r
-                                                       ASSERT(listBlock->matrixPacking() == varBlock->matrixPacking());\r
+                                                       ASSERT(listSymbol->getSymbol() == varSymbol->getSymbol());\r
+                                                       ASSERT(listSymbol->getType() == varSymbol->getType());\r
+                                                       ASSERT(listSymbol->getQualifier() == varSymbol->getQualifier());\r
 \r
                                                        return i;\r
                                                }\r