Support sampler2DArray throughout the compiler.
TRAC #23377
Signed-off-by: Jamie Madill
Signed-off-by: Shannon Woods
Author: Nicolas Capens
diff --git a/src/compiler/BaseTypes.h b/src/compiler/BaseTypes.h
index 79f793b..c8fdeb5 100644
--- a/src/compiler/BaseTypes.h
+++ b/src/compiler/BaseTypes.h
@@ -76,12 +76,15 @@
case EbtSamplerCube: return "samplerCube"; break;
case EbtSamplerExternalOES: return "samplerExternalOES"; break;
case EbtSampler2DRect: return "sampler2DRect"; break;
+ case EbtSampler2DArray: return "sampler2DArray"; break;
case EbtISampler2D: return "isampler2D"; break;
case EbtISampler3D: return "isampler3D"; break;
case EbtISamplerCube: return "isamplerCube"; break;
+ case EbtISampler2DArray: return "isampler2DArray"; break;
case EbtUSampler2D: return "usampler2D"; break;
case EbtUSampler3D: return "usampler3D"; break;
case EbtUSamplerCube: return "usamplerCube"; break;
+ case EbtUSampler2DArray: return "usampler2DArray"; break;
case EbtStruct: return "structure"; break;
case EbtInterfaceBlock: return "interface block"; break;
default: return "unknown type";
diff --git a/src/compiler/SymbolTable.cpp b/src/compiler/SymbolTable.cpp
index 8d3d76a..8e4636d 100644
--- a/src/compiler/SymbolTable.cpp
+++ b/src/compiler/SymbolTable.cpp
@@ -51,12 +51,15 @@
case EbtSampler2D: mangledName += "s2"; break;
case EbtSampler3D: mangledName += "s3"; break;
case EbtSamplerCube: mangledName += "sC"; break;
+ case EbtSampler2DArray: mangledName += "s2a"; break;
case EbtISampler2D: mangledName += "is2"; break;
case EbtISampler3D: mangledName += "is3"; break;
case EbtISamplerCube: mangledName += "isC"; break;
+ case EbtISampler2DArray: mangledName += "is2a"; break;
case EbtUSampler2D: mangledName += "us2"; break;
case EbtUSampler3D: mangledName += "us3"; break;
case EbtUSamplerCube: mangledName += "usC"; break;
+ case EbtUSampler2DArray: mangledName += "us2a"; break;
case EbtStruct:
mangledName += "struct-";
if (typeName)
diff --git a/src/compiler/VariableInfo.cpp b/src/compiler/VariableInfo.cpp
index a8dd472..cce5e36 100644
--- a/src/compiler/VariableInfo.cpp
+++ b/src/compiler/VariableInfo.cpp
@@ -96,13 +96,19 @@
return SH_BOOL;
}
case EbtSampler2D: return SH_SAMPLER_2D;
+ case EbtSampler3D: return SH_SAMPLER_3D;
case EbtSamplerCube: return SH_SAMPLER_CUBE;
case EbtSamplerExternalOES: return SH_SAMPLER_EXTERNAL_OES;
case EbtSampler2DRect: return SH_SAMPLER_2D_RECT_ARB;
+ case EbtSampler2DArray: return SH_SAMPLER_2D_ARRAY;
case EbtISampler2D: return SH_INT_SAMPLER_2D;
+ case EbtISampler3D: return SH_INT_SAMPLER_3D;
case EbtISamplerCube: return SH_INT_SAMPLER_CUBE;
+ case EbtISampler2DArray: return SH_INT_SAMPLER_2D_ARRAY;
case EbtUSampler2D: return SH_UNSIGNED_INT_SAMPLER_2D;
+ case EbtUSampler3D: return SH_UNSIGNED_INT_SAMPLER_3D;
case EbtUSamplerCube: return SH_UNSIGNED_INT_SAMPLER_CUBE;
+ case EbtUSampler2DArray: return SH_UNSIGNED_INT_SAMPLER_2D_ARRAY;
default: UNREACHABLE();
}
return SH_NONE;