OSDN Git Service

Fix constant expression vector indexing.
authorNicolas Capens <capn@google.com>
Sun, 10 Apr 2016 05:54:50 +0000 (01:54 -0400)
committerNicolas Capens <capn@google.com>
Mon, 11 Apr 2016 14:26:09 +0000 (14:26 +0000)
Change-Id: If3b61ad65f1f1d6687890bd8715b2a534c78a353
Reviewed-on: https://swiftshader-review.googlesource.com/5081
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
src/OpenGL/compiler/ParseHelper.cpp

index 499ec13..df9ffd0 100644 (file)
@@ -2616,7 +2616,7 @@ TIntermTyped *TParseContext::addFieldSelectionExpression(TIntermTyped *baseExpre
                        TIntermTyped *index = intermediate.addSwizzle(fields, fieldLocation);
                        indexedExpression = intermediate.addIndex(EOpVectorSwizzle, baseExpression, index, dotLocation);
                        indexedExpression->setType(TType(baseExpression->getBasicType(), baseExpression->getPrecision(),
-                               EvqTemporary, (unsigned char)vectorString.size()));
+                               baseExpression->getQualifier() == EvqConstExpr ? EvqConstExpr : EvqTemporary, (unsigned char)vectorString.size()));
                }
        }
        else if(baseExpression->isMatrix())