Add more robust support for interpolation and storage qualifiers with varyings for GLSL ES 3.00.

This fixes some conformance failures in the dEQP varying link tests, particularly with ints and the flat keyword.

TRAC #23745

Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods


diff --git a/src/compiler/OutputHLSL.cpp b/src/compiler/OutputHLSL.cpp
index 15cce63..d9004ff 100644
--- a/src/compiler/OutputHLSL.cpp
+++ b/src/compiler/OutputHLSL.cpp
@@ -1549,7 +1549,7 @@
 
             out << decorateUniform(name, nodeType);
         }
-        else if (qualifier == EvqAttribute || qualifier == EvqVertexInput)
+        else if (qualifier == EvqAttribute || qualifier == EvqVertexIn)
         {
             mReferencedAttributes[name] = node;
             out << decorate(name);
@@ -1559,7 +1559,7 @@
             mReferencedVaryings[name] = node;
             out << decorate(name);
         }
-        else if (qualifier == EvqFragmentOutput)
+        else if (qualifier == EvqFragmentOut)
         {
             mReferencedOutputVariables[name] = node;
             out << "out_" << name;
@@ -2924,11 +2924,13 @@
     switch(qualifier)
     {
       case EvqVaryingIn:           return "";
+      case EvqFragmentIn:          return "";
       case EvqInvariantVaryingIn:  return "";
       case EvqSmoothIn:            return "linear";
       case EvqFlatIn:              return "nointerpolation";
       case EvqCentroidIn:          return "centroid";
       case EvqVaryingOut:          return "";
+      case EvqVertexOut:           return "";
       case EvqInvariantVaryingOut: return "";
       case EvqSmoothOut:           return "linear";
       case EvqFlatOut:             return "nointerpolation";
@@ -3772,6 +3774,7 @@
       case EvqSmoothOut:
       case EvqFlatOut:
       case EvqCentroidOut:
+      case EvqVertexOut:
         return true;
     }
 
@@ -3787,6 +3790,7 @@
       case EvqSmoothIn:
       case EvqFlatIn:
       case EvqCentroidIn:
+      case EvqFragmentIn:
         return true;
     }