Commit 8772b588 by Nicolas Capens Committed by Shannon Woods

Support sampler2DArray throughout the compiler.

TRAC #23377 Signed-off-by: Jamie Madill Signed-off-by: Shannon Woods Author: Nicolas Capens
parent fc2e6b90
...@@ -37,7 +37,7 @@ extern "C" { ...@@ -37,7 +37,7 @@ extern "C" {
// Version number for shader translation API. // Version number for shader translation API.
// It is incremented every time the API changes. // It is incremented every time the API changes.
#define ANGLE_SH_VERSION 118 #define ANGLE_SH_VERSION 119
// //
// The names of the following enums have been derived by replacing GL prefix // The names of the following enums have been derived by replacing GL prefix
...@@ -117,12 +117,15 @@ typedef enum { ...@@ -117,12 +117,15 @@ typedef enum {
SH_SAMPLER_CUBE = 0x8B60, SH_SAMPLER_CUBE = 0x8B60,
SH_SAMPLER_2D_RECT_ARB = 0x8B63, SH_SAMPLER_2D_RECT_ARB = 0x8B63,
SH_SAMPLER_EXTERNAL_OES = 0x8D66, SH_SAMPLER_EXTERNAL_OES = 0x8D66,
SH_SAMPLER_2D_ARRAY = 0x8DC1,
SH_INT_SAMPLER_2D = 0x8DCA, SH_INT_SAMPLER_2D = 0x8DCA,
SH_INT_SAMPLER_3D = 0x8DCB, SH_INT_SAMPLER_3D = 0x8DCB,
SH_INT_SAMPLER_CUBE = 0x8DCC, SH_INT_SAMPLER_CUBE = 0x8DCC,
SH_INT_SAMPLER_2D_ARRAY = 0x8DCF,
SH_UNSIGNED_INT_SAMPLER_2D = 0x8DD2, SH_UNSIGNED_INT_SAMPLER_2D = 0x8DD2,
SH_UNSIGNED_INT_SAMPLER_3D = 0x8DD3, SH_UNSIGNED_INT_SAMPLER_3D = 0x8DD3,
SH_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4, SH_UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4,
SH_UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
} ShDataType; } ShDataType;
typedef enum { typedef enum {
......
...@@ -76,12 +76,15 @@ inline const char* getBasicString(TBasicType t) ...@@ -76,12 +76,15 @@ inline const char* getBasicString(TBasicType t)
case EbtSamplerCube: return "samplerCube"; break; case EbtSamplerCube: return "samplerCube"; break;
case EbtSamplerExternalOES: return "samplerExternalOES"; break; case EbtSamplerExternalOES: return "samplerExternalOES"; break;
case EbtSampler2DRect: return "sampler2DRect"; break; case EbtSampler2DRect: return "sampler2DRect"; break;
case EbtSampler2DArray: return "sampler2DArray"; break;
case EbtISampler2D: return "isampler2D"; break; case EbtISampler2D: return "isampler2D"; break;
case EbtISampler3D: return "isampler3D"; break; case EbtISampler3D: return "isampler3D"; break;
case EbtISamplerCube: return "isamplerCube"; break; case EbtISamplerCube: return "isamplerCube"; break;
case EbtISampler2DArray: return "isampler2DArray"; break;
case EbtUSampler2D: return "usampler2D"; break; case EbtUSampler2D: return "usampler2D"; break;
case EbtUSampler3D: return "usampler3D"; break; case EbtUSampler3D: return "usampler3D"; break;
case EbtUSamplerCube: return "usamplerCube"; break; case EbtUSamplerCube: return "usamplerCube"; break;
case EbtUSampler2DArray: return "usampler2DArray"; break;
case EbtStruct: return "structure"; break; case EbtStruct: return "structure"; break;
case EbtInterfaceBlock: return "interface block"; break; case EbtInterfaceBlock: return "interface block"; break;
default: return "unknown type"; default: return "unknown type";
......
...@@ -51,12 +51,15 @@ void TType::buildMangledName(TString& mangledName) ...@@ -51,12 +51,15 @@ void TType::buildMangledName(TString& mangledName)
case EbtSampler2D: mangledName += "s2"; break; case EbtSampler2D: mangledName += "s2"; break;
case EbtSampler3D: mangledName += "s3"; break; case EbtSampler3D: mangledName += "s3"; break;
case EbtSamplerCube: mangledName += "sC"; break; case EbtSamplerCube: mangledName += "sC"; break;
case EbtSampler2DArray: mangledName += "s2a"; break;
case EbtISampler2D: mangledName += "is2"; break; case EbtISampler2D: mangledName += "is2"; break;
case EbtISampler3D: mangledName += "is3"; break; case EbtISampler3D: mangledName += "is3"; break;
case EbtISamplerCube: mangledName += "isC"; break; case EbtISamplerCube: mangledName += "isC"; break;
case EbtISampler2DArray: mangledName += "is2a"; break;
case EbtUSampler2D: mangledName += "us2"; break; case EbtUSampler2D: mangledName += "us2"; break;
case EbtUSampler3D: mangledName += "us3"; break; case EbtUSampler3D: mangledName += "us3"; break;
case EbtUSamplerCube: mangledName += "usC"; break; case EbtUSamplerCube: mangledName += "usC"; break;
case EbtUSampler2DArray: mangledName += "us2a"; break;
case EbtStruct: case EbtStruct:
mangledName += "struct-"; mangledName += "struct-";
if (typeName) if (typeName)
......
...@@ -96,13 +96,19 @@ static ShDataType getVariableDataType(const TType& type) ...@@ -96,13 +96,19 @@ static ShDataType getVariableDataType(const TType& type)
return SH_BOOL; return SH_BOOL;
} }
case EbtSampler2D: return SH_SAMPLER_2D; case EbtSampler2D: return SH_SAMPLER_2D;
case EbtSampler3D: return SH_SAMPLER_3D;
case EbtSamplerCube: return SH_SAMPLER_CUBE; case EbtSamplerCube: return SH_SAMPLER_CUBE;
case EbtSamplerExternalOES: return SH_SAMPLER_EXTERNAL_OES; case EbtSamplerExternalOES: return SH_SAMPLER_EXTERNAL_OES;
case EbtSampler2DRect: return SH_SAMPLER_2D_RECT_ARB; case EbtSampler2DRect: return SH_SAMPLER_2D_RECT_ARB;
case EbtSampler2DArray: return SH_SAMPLER_2D_ARRAY;
case EbtISampler2D: return SH_INT_SAMPLER_2D; case EbtISampler2D: return SH_INT_SAMPLER_2D;
case EbtISampler3D: return SH_INT_SAMPLER_3D;
case EbtISamplerCube: return SH_INT_SAMPLER_CUBE; case EbtISamplerCube: return SH_INT_SAMPLER_CUBE;
case EbtISampler2DArray: return SH_INT_SAMPLER_2D_ARRAY;
case EbtUSampler2D: return SH_UNSIGNED_INT_SAMPLER_2D; 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 EbtUSamplerCube: return SH_UNSIGNED_INT_SAMPLER_CUBE;
case EbtUSampler2DArray: return SH_UNSIGNED_INT_SAMPLER_2D_ARRAY;
default: UNREACHABLE(); default: UNREACHABLE();
} }
return SH_NONE; return SH_NONE;
......
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