Commit 4021932f by JiangYizhou Committed by Commit Bot

translator: Add ES3.1 multisample texture support.

Implement shader objects, [iu]sampler2DMS, textureSize(gsampler2DMS). as well as texelFetch(gsampler2DMS,P,sample) for the glsl. BUG=angleproject:1590 TEST=angle_unittests TEST=angle_end2end_tests Change-Id: I781023f7bec34ad0264af69f34bb182b50bd1fbd Reviewed-on: https://chromium-review.googlesource.com/423175 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarOlli Etuaho <oetuaho@nvidia.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 80ab03c5
......@@ -429,6 +429,15 @@ void PrintVariable(const std::string &prefix, size_t index, const sh::ShaderVari
case GL_FLOAT_MAT3x4: typeName = "GL_FLOAT_MAT3x4"; break;
case GL_FLOAT_MAT4x3: typeName = "GL_FLOAT_MAT4x3"; break;
case GL_SAMPLER_2D: typeName = "GL_SAMPLER_2D"; break;
case GL_SAMPLER_2D_MULTISAMPLE:
typeName = "GL_SAMPLER_2D_MULTISAMPLE";
break;
case GL_INT_SAMPLER_2D_MULTISAMPLE:
typeName = "GL_INT_SAMPLER_2D_MULTISAMPLE";
break;
case GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE:
typeName = "GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE";
break;
case GL_SAMPLER_CUBE: typeName = "GL_SAMPLER_CUBE"; break;
case GL_SAMPLER_EXTERNAL_OES: typeName = "GL_SAMPLER_EXTERNAL_OES"; break;
default: typeName = "UNKNOWN"; break;
......
......@@ -128,14 +128,17 @@ GLenum VariableComponentType(GLenum type)
case GL_SAMPLER_CUBE:
case GL_SAMPLER_2D_ARRAY:
case GL_SAMPLER_EXTERNAL_OES:
case GL_SAMPLER_2D_MULTISAMPLE:
case GL_INT_SAMPLER_2D:
case GL_INT_SAMPLER_3D:
case GL_INT_SAMPLER_CUBE:
case GL_INT_SAMPLER_2D_ARRAY:
case GL_INT_SAMPLER_2D_MULTISAMPLE:
case GL_UNSIGNED_INT_SAMPLER_2D:
case GL_UNSIGNED_INT_SAMPLER_3D:
case GL_UNSIGNED_INT_SAMPLER_CUBE:
case GL_UNSIGNED_INT_SAMPLER_2D_ARRAY:
case GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE:
case GL_SAMPLER_2D_SHADOW:
case GL_SAMPLER_CUBE_SHADOW:
case GL_SAMPLER_2D_ARRAY_SHADOW:
......@@ -236,14 +239,17 @@ int VariableRowCount(GLenum type)
case GL_SAMPLER_2D_ARRAY:
case GL_SAMPLER_EXTERNAL_OES:
case GL_SAMPLER_2D_RECT_ARB:
case GL_SAMPLER_2D_MULTISAMPLE:
case GL_INT_SAMPLER_2D:
case GL_INT_SAMPLER_3D:
case GL_INT_SAMPLER_CUBE:
case GL_INT_SAMPLER_2D_ARRAY:
case GL_INT_SAMPLER_2D_MULTISAMPLE:
case GL_UNSIGNED_INT_SAMPLER_2D:
case GL_UNSIGNED_INT_SAMPLER_3D:
case GL_UNSIGNED_INT_SAMPLER_CUBE:
case GL_UNSIGNED_INT_SAMPLER_2D_ARRAY:
case GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE:
case GL_SAMPLER_2D_SHADOW:
case GL_SAMPLER_CUBE_SHADOW:
case GL_SAMPLER_2D_ARRAY_SHADOW:
......@@ -294,16 +300,19 @@ int VariableColumnCount(GLenum type)
case GL_SAMPLER_3D:
case GL_SAMPLER_CUBE:
case GL_SAMPLER_2D_ARRAY:
case GL_SAMPLER_2D_MULTISAMPLE:
case GL_INT_SAMPLER_2D:
case GL_INT_SAMPLER_3D:
case GL_INT_SAMPLER_CUBE:
case GL_INT_SAMPLER_2D_ARRAY:
case GL_INT_SAMPLER_2D_MULTISAMPLE:
case GL_SAMPLER_EXTERNAL_OES:
case GL_SAMPLER_2D_RECT_ARB:
case GL_UNSIGNED_INT_SAMPLER_2D:
case GL_UNSIGNED_INT_SAMPLER_3D:
case GL_UNSIGNED_INT_SAMPLER_CUBE:
case GL_UNSIGNED_INT_SAMPLER_2D_ARRAY:
case GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE:
case GL_SAMPLER_2D_SHADOW:
case GL_SAMPLER_CUBE_SHADOW:
case GL_SAMPLER_2D_ARRAY_SHADOW:
......@@ -348,14 +357,17 @@ bool IsSamplerType(GLenum type)
case GL_SAMPLER_CUBE:
case GL_SAMPLER_2D_ARRAY:
case GL_SAMPLER_EXTERNAL_OES:
case GL_SAMPLER_2D_MULTISAMPLE:
case GL_INT_SAMPLER_2D:
case GL_INT_SAMPLER_3D:
case GL_INT_SAMPLER_CUBE:
case GL_INT_SAMPLER_2D_ARRAY:
case GL_INT_SAMPLER_2D_MULTISAMPLE:
case GL_UNSIGNED_INT_SAMPLER_2D:
case GL_UNSIGNED_INT_SAMPLER_3D:
case GL_UNSIGNED_INT_SAMPLER_CUBE:
case GL_UNSIGNED_INT_SAMPLER_2D_ARRAY:
case GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE:
case GL_SAMPLER_2D_SHADOW:
case GL_SAMPLER_CUBE_SHADOW:
case GL_SAMPLER_2D_ARRAY_SHADOW:
......@@ -395,6 +407,11 @@ GLenum SamplerTypeToTextureType(GLenum samplerType)
case GL_UNSIGNED_INT_SAMPLER_3D:
return GL_TEXTURE_3D;
case GL_SAMPLER_2D_MULTISAMPLE:
case GL_INT_SAMPLER_2D_MULTISAMPLE:
case GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE:
return GL_TEXTURE_2D_MULTISAMPLE;
default:
UNREACHABLE();
return 0;
......@@ -605,15 +622,18 @@ int VariableSortOrder(GLenum type)
case GL_SAMPLER_EXTERNAL_OES:
case GL_SAMPLER_2D_RECT_ARB:
case GL_SAMPLER_2D_ARRAY:
case GL_SAMPLER_2D_MULTISAMPLE:
case GL_SAMPLER_3D:
case GL_INT_SAMPLER_2D:
case GL_INT_SAMPLER_3D:
case GL_INT_SAMPLER_CUBE:
case GL_INT_SAMPLER_2D_ARRAY:
case GL_INT_SAMPLER_2D_MULTISAMPLE:
case GL_UNSIGNED_INT_SAMPLER_2D:
case GL_UNSIGNED_INT_SAMPLER_3D:
case GL_UNSIGNED_INT_SAMPLER_CUBE:
case GL_UNSIGNED_INT_SAMPLER_2D_ARRAY:
case GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE:
case GL_SAMPLER_2D_SHADOW:
case GL_SAMPLER_2D_ARRAY_SHADOW:
case GL_SAMPLER_CUBE_SHADOW:
......
......@@ -72,14 +72,17 @@ enum TBasicType
EbtSampler2DArray,
EbtSamplerExternalOES, // Only valid if OES_EGL_image_external exists.
EbtSampler2DRect, // Only valid if GL_ARB_texture_rectangle exists.
EbtSampler2DMS,
EbtISampler2D,
EbtISampler3D,
EbtISamplerCube,
EbtISampler2DArray,
EbtISampler2DMS,
EbtUSampler2D,
EbtUSampler3D,
EbtUSamplerCube,
EbtUSampler2DArray,
EbtUSampler2DMS,
EbtSampler2DShadow,
EbtSamplerCubeShadow,
EbtSampler2DArrayShadow,
......@@ -89,6 +92,7 @@ enum TBasicType
EbtGSamplerCube, // non type: represents samplerCube, isamplerCube, and usamplerCube
EbtGSampler2DArray, // non type: represents sampler2DArray, isampler2DArray, and
// usampler2DArray
EbtGSampler2DMS, // non type: represents sampler2DMS, isampler2DMS, and usampler2DMS
// images
EbtGuardImageBegin,
......@@ -206,10 +210,12 @@ inline bool IsIntegerSampler(TBasicType type)
case EbtISampler3D:
case EbtISamplerCube:
case EbtISampler2DArray:
case EbtISampler2DMS:
case EbtUSampler2D:
case EbtUSampler3D:
case EbtUSamplerCube:
case EbtUSampler2DArray:
case EbtUSampler2DMS:
return true;
case EbtSampler2D:
case EbtSampler3D:
......@@ -220,6 +226,7 @@ inline bool IsIntegerSampler(TBasicType type)
case EbtSampler2DShadow:
case EbtSamplerCubeShadow:
case EbtSampler2DArrayShadow:
case EbtSampler2DMS:
return false;
default:
assert(!IsSampler(type));
......@@ -292,6 +299,9 @@ inline bool IsSampler2D(TBasicType type)
case EbtSamplerExternalOES:
case EbtSampler2DShadow:
case EbtSampler2DArrayShadow:
case EbtSampler2DMS:
case EbtISampler2DMS:
case EbtUSampler2DMS:
return true;
case EbtSampler3D:
case EbtISampler3D:
......@@ -322,12 +332,15 @@ inline bool IsSamplerCube(TBasicType type)
case EbtSamplerExternalOES:
case EbtSampler2DRect:
case EbtSampler2DArray:
case EbtSampler2DMS:
case EbtISampler2D:
case EbtISampler3D:
case EbtISampler2DArray:
case EbtISampler2DMS:
case EbtUSampler2D:
case EbtUSampler3D:
case EbtUSampler2DArray:
case EbtUSampler2DMS:
case EbtSampler2DShadow:
case EbtSampler2DArrayShadow:
return false;
......@@ -351,12 +364,15 @@ inline bool IsSampler3D(TBasicType type)
case EbtSamplerExternalOES:
case EbtSampler2DRect:
case EbtSampler2DArray:
case EbtSampler2DMS:
case EbtISampler2D:
case EbtISamplerCube:
case EbtISampler2DArray:
case EbtISampler2DMS:
case EbtUSampler2D:
case EbtUSamplerCube:
case EbtUSampler2DArray:
case EbtUSampler2DMS:
case EbtSampler2DShadow:
case EbtSamplerCubeShadow:
case EbtSampler2DArrayShadow:
......@@ -390,6 +406,9 @@ inline bool IsSamplerArray(TBasicType type)
case EbtSamplerCube:
case EbtSampler2DShadow:
case EbtSamplerCubeShadow:
case EbtSampler2DMS:
case EbtISampler2DMS:
case EbtUSampler2DMS:
return false;
default:
assert(!IsSampler(type));
......@@ -410,16 +429,19 @@ inline bool IsShadowSampler(TBasicType type)
case EbtISampler3D:
case EbtISamplerCube:
case EbtISampler2DArray:
case EbtISampler2DMS:
case EbtUSampler2D:
case EbtUSampler3D:
case EbtUSamplerCube:
case EbtUSampler2DArray:
case EbtUSampler2DMS:
case EbtSampler2D:
case EbtSampler3D:
case EbtSamplerCube:
case EbtSamplerExternalOES:
case EbtSampler2DRect:
case EbtSampler2DArray:
case EbtSampler2DMS:
return false;
default:
assert(!IsSampler(type));
......
......@@ -373,6 +373,7 @@ void InsertBuiltInFunctions(sh::GLenum type,
const TType *gsamplerCube = TCache::getType(EbtGSamplerCube);
const TType *gsampler3D = TCache::getType(EbtGSampler3D);
const TType *gsampler2DArray = TCache::getType(EbtGSampler2DArray);
const TType *gsampler2DMS = TCache::getType(EbtGSampler2DMS);
//
// Texture Functions for GLSL ES 3.0
......@@ -452,6 +453,7 @@ void InsertBuiltInFunctions(sh::GLenum type,
symbolTable.insertBuiltIn(ESSL3_BUILTINS, int2, "textureSize", sampler2DShadow, int1);
symbolTable.insertBuiltIn(ESSL3_BUILTINS, int2, "textureSize", samplerCubeShadow, int1);
symbolTable.insertBuiltIn(ESSL3_BUILTINS, int3, "textureSize", sampler2DArrayShadow, int1);
symbolTable.insertBuiltIn(ESSL3_BUILTINS, int2, "textureSize", gsampler2DMS);
if (resources.OES_EGL_image_external_essl3)
{
......@@ -620,6 +622,8 @@ void InsertBuiltInFunctions(sh::GLenum type,
symbolTable.insertBuiltInFunctionNoParameters(ESSL3_1_BUILTINS, EOpMemoryBarrierImage, voidType,
"memoryBarrierImage");
symbolTable.insertBuiltIn(ESSL3_1_BUILTINS, gvec4, "texelFetch", gsampler2DMS, int2, int1);
if (type == GL_COMPUTE_SHADER)
{
symbolTable.insertBuiltInFunctionNoParameters(ESSL3_1_BUILTINS, EOpBarrier, voidType,
......
......@@ -290,6 +290,17 @@ void TSymbolTable::insertBuiltIn(ESymbolLevel level,
insertBuiltIn(level, gvec4 ? TCache::getType(EbtUInt, 4) : rvalue, name,
TCache::getType(EbtUSampler2DArray), ptype2, ptype3, ptype4, ptype5);
}
else if (ptype1->getBasicType() == EbtGSampler2DMS)
{
insertUnmangledBuiltInName(name, level);
bool gvec4 = (rvalue->getBasicType() == EbtGVec4);
insertBuiltIn(level, gvec4 ? TCache::getType(EbtFloat, 4) : rvalue, name,
TCache::getType(EbtSampler2DMS), ptype2, ptype3, ptype4, ptype5);
insertBuiltIn(level, gvec4 ? TCache::getType(EbtInt, 4) : rvalue, name,
TCache::getType(EbtISampler2DMS), ptype2, ptype3, ptype4, ptype5);
insertBuiltIn(level, gvec4 ? TCache::getType(EbtUInt, 4) : rvalue, name,
TCache::getType(EbtUSampler2DMS), ptype2, ptype3, ptype4, ptype5);
}
else if (IsGImage(ptype1->getBasicType()))
{
insertUnmangledBuiltInName(name, level);
......
......@@ -45,6 +45,8 @@ const char *getBasicString(TBasicType t)
return "sampler2DRect";
case EbtSampler2DArray:
return "sampler2DArray";
case EbtSampler2DMS:
return "sampler2DMS";
case EbtISampler2D:
return "isampler2D";
case EbtISampler3D:
......@@ -53,6 +55,8 @@ const char *getBasicString(TBasicType t)
return "isamplerCube";
case EbtISampler2DArray:
return "isampler2DArray";
case EbtISampler2DMS:
return "isampler2DMS";
case EbtUSampler2D:
return "usampler2D";
case EbtUSampler3D:
......@@ -61,6 +65,8 @@ const char *getBasicString(TBasicType t)
return "usamplerCube";
case EbtUSampler2DArray:
return "usampler2DArray";
case EbtUSampler2DMS:
return "usampler2DMS";
case EbtSampler2DShadow:
return "sampler2DShadow";
case EbtSamplerCubeShadow:
......@@ -304,6 +310,9 @@ TString TType::buildMangledName() const
case EbtSampler2DRect:
mangledName += "s2r";
break;
case EbtSampler2DMS:
mangledName += "s2ms";
break;
case EbtISampler2D:
mangledName += "is2";
break;
......@@ -316,6 +325,9 @@ TString TType::buildMangledName() const
case EbtISampler2DArray:
mangledName += "is2a";
break;
case EbtISampler2DMS:
mangledName += "is2ms";
break;
case EbtUSampler2D:
mangledName += "us2";
break;
......@@ -328,6 +340,9 @@ TString TType::buildMangledName() const
case EbtUSampler2DArray:
mangledName += "us2a";
break;
case EbtUSampler2DMS:
mangledName += "us2ms";
break;
case EbtSampler2DShadow:
mangledName += "s2s";
break;
......
......@@ -180,14 +180,17 @@ O [0-7]
"sampler3DRect" { return ES2_reserved_ES3_keyword(context, SAMPLER3DRECT); }
"sampler2DRect" { return SAMPLER2DRECT; }
"sampler2DArray" { return ES2_ident_ES3_keyword(context, SAMPLER2DARRAY); }
"sampler2DMS" { return ES2_ident_ES3_reserved_ES3_1_keyword(context, SAMPLER2DMS); }
"isampler2D" { return ES2_ident_ES3_keyword(context, ISAMPLER2D); }
"isampler3D" { return ES2_ident_ES3_keyword(context, ISAMPLER3D); }
"isamplerCube" { return ES2_ident_ES3_keyword(context, ISAMPLERCUBE); }
"isampler2DArray" { return ES2_ident_ES3_keyword(context, ISAMPLER2DARRAY); }
"isampler2DMS" { return ES2_ident_ES3_reserved_ES3_1_keyword(context, ISAMPLER2DMS); }
"usampler2D" { return ES2_ident_ES3_keyword(context, USAMPLER2D); }
"usampler3D" { return ES2_ident_ES3_keyword(context, USAMPLER3D); }
"usamplerCube" { return ES2_ident_ES3_keyword(context, USAMPLERCUBE); }
"usampler2DArray" { return ES2_ident_ES3_keyword(context, USAMPLER2DARRAY); }
"usampler2DMS" { return ES2_ident_ES3_reserved_ES3_1_keyword(context, USAMPLER2DMS); }
"sampler2DShadow" { return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); }
"samplerCubeShadow" { return ES2_ident_ES3_keyword(context, SAMPLERCUBESHADOW); }
"sampler2DArrayShadow" { return ES2_ident_ES3_keyword(context, SAMPLER2DARRAYSHADOW); }
......@@ -251,9 +254,6 @@ O [0-7]
"samplerBuffer" |
"isamplerBuffer" |
"usamplerBuffer" |
"sampler2DMS" |
"isampler2DMS" |
"usampler2DMS" |
"sampler2DMSArray" |
"isampler2DMSArray" |
"usampler2DMSArray" {
......
......@@ -174,6 +174,7 @@ extern void yyerror(YYLTYPE* yylloc, TParseContext* context, void *scanner, cons
%token <lex> SAMPLER2D SAMPLERCUBE SAMPLER_EXTERNAL_OES SAMPLER2DRECT SAMPLER2DARRAY
%token <lex> ISAMPLER2D ISAMPLER3D ISAMPLERCUBE ISAMPLER2DARRAY
%token <lex> USAMPLER2D USAMPLER3D USAMPLERCUBE USAMPLER2DARRAY
%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
%token <lex> SAMPLER3D SAMPLER3DRECT SAMPLER2DSHADOW SAMPLERCUBESHADOW SAMPLER2DARRAYSHADOW
%token <lex> IMAGE2D IIMAGE2D UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D IMAGE2DARRAY IIMAGE2DARRAY UIMAGE2DARRAY
%token <lex> IMAGECUBE IIMAGECUBE UIMAGECUBE
......@@ -1147,6 +1148,9 @@ type_specifier_nonarray
| SAMPLER2DARRAY {
$$.initialize(EbtSampler2DArray, @1);
}
| SAMPLER2DMS {
$$.initialize(EbtSampler2DMS, @1);
}
| ISAMPLER2D {
$$.initialize(EbtISampler2D, @1);
}
......@@ -1159,6 +1163,9 @@ type_specifier_nonarray
| ISAMPLER2DARRAY {
$$.initialize(EbtISampler2DArray, @1);
}
| ISAMPLER2DMS {
$$.initialize(EbtISampler2DMS, @1);
}
| USAMPLER2D {
$$.initialize(EbtUSampler2D, @1);
}
......@@ -1171,6 +1178,9 @@ type_specifier_nonarray
| USAMPLER2DARRAY {
$$.initialize(EbtUSampler2DArray, @1);
}
| USAMPLER2DMS {
$$.initialize(EbtUSampler2DMS, @1);
}
| SAMPLER2DSHADOW {
$$.initialize(EbtSampler2DShadow, @1);
}
......
......@@ -222,7 +222,7 @@ typedef size_t yy_size_t;
#define YY_LESS_LINENO(n) \
do { \
yy_size_t yyl;\
for ( yyl = n; yyl < yyleng; ++yyl )\
for ( yyl = n; yyl < static_cast<yy_site_t>(yyleng); ++yyl )\
if ( yytext[yyl] == '\n' )\
--yylineno;\
}while(0)
......@@ -397,7 +397,7 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
*/
#define YY_DO_BEFORE_ACTION \
yyg->yytext_ptr = yy_bp; \
yyleng = (yy_size_t) (yy_cp - yy_bp); \
yyleng = (size_t) (yy_cp - yy_bp); \
yyg->yy_hold_char = *yy_cp; \
*yy_cp = '\0'; \
yyg->yy_c_buf_p = yy_cp;
......@@ -455,55 +455,55 @@ static yyconst flex_int16_t yy_accept[824] =
178, 165, 166, 167, 178, 33, 178, 157, 27, 168,
169, 170, 2, 162, 163, 164, 178, 178, 178, 25,
160, 178, 178, 178, 51, 52, 53, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 100, 178,
178, 178, 178, 178, 178, 178, 178, 178, 103, 178,
178, 178, 178, 178, 178, 178, 178, 154, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 140,
178, 178, 177, 57, 58, 59, 178, 178, 14, 178,
105, 178, 178, 178, 178, 103, 178, 178, 178, 155,
150, 106, 178, 178, 178, 178, 178, 178, 146, 178,
178, 178, 79, 39, 42, 44, 43, 40, 46, 45,
108, 178, 178, 178, 178, 106, 178, 178, 178, 155,
150, 109, 178, 178, 178, 178, 178, 178, 146, 178,
178, 178, 82, 39, 42, 44, 43, 40, 46, 45,
47, 41, 178, 178, 178, 178, 161, 137, 178, 178,
148, 178, 178, 178, 35, 101, 26, 174, 22, 149,
78, 178, 159, 17, 178, 178, 178, 178, 178, 178,
148, 178, 178, 178, 35, 104, 26, 174, 22, 149,
81, 178, 159, 17, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 19, 34,
178, 178, 178, 178, 178, 178, 107, 80, 86, 178,
178, 178, 178, 178, 178, 178, 110, 83, 89, 178,
178, 178, 178, 178, 3, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 142, 178, 178, 178,
178, 178, 8, 178, 178, 9, 178, 178, 178, 178,
20, 94, 11, 151, 108, 81, 88, 178, 178, 178,
20, 97, 11, 151, 111, 84, 91, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 147,
178, 178, 178, 92, 97, 95, 178, 178, 178, 178,
178, 178, 178, 143, 109, 82, 87, 178, 178, 158,
178, 96, 178, 178, 6, 178, 178, 178, 178, 178,
178, 178, 178, 178, 91, 152, 1, 178, 178, 178,
178, 178, 178, 95, 100, 98, 178, 178, 178, 178,
178, 178, 178, 143, 112, 85, 90, 178, 178, 158,
178, 99, 178, 178, 6, 178, 178, 178, 178, 178,
178, 178, 178, 178, 94, 152, 1, 178, 178, 178,
178, 178, 176, 178, 104, 5, 171, 60, 63, 178,
178, 178, 176, 178, 107, 5, 171, 60, 63, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
178, 178, 93, 178, 178, 178, 178, 89, 178, 178,
178, 178, 178, 122, 67, 68, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 102,
178, 178, 178, 90, 124, 71, 72, 178, 178, 98,
178, 178, 178, 178, 178, 178, 178, 117, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 131, 178,
178, 178, 96, 178, 178, 178, 178, 92, 178, 178,
178, 178, 178, 125, 68, 69, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 105,
178, 178, 178, 93, 127, 73, 74, 178, 178, 101,
178, 178, 178, 178, 178, 178, 178, 120, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 67, 178,
178, 178, 178, 61, 178, 178, 178, 178, 178, 178,
178, 178, 178, 178, 178, 178, 118, 110, 178, 83,
178, 178, 178, 178, 178, 178, 121, 113, 178, 86,
178, 178, 178, 132, 178, 178, 69, 178, 178, 178,
178, 178, 178, 72, 178, 178, 70, 178, 178, 178,
178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
119, 178, 178, 133, 178, 178, 73, 111, 84, 178,
113, 178, 114, 178, 178, 178, 178, 178, 99, 178,
178, 178, 178, 65, 178, 64, 128, 178, 178, 112,
85, 178, 178, 178, 178, 178, 178, 178, 178, 178,
178, 126, 129, 120, 178, 66, 178, 178, 178, 178,
178, 178, 178, 178, 127, 130, 178, 178, 123, 70,
178, 178, 172, 178, 178, 178, 75, 178, 178, 125,
74, 178, 178, 178, 178, 178, 178, 134, 178, 178,
178, 178, 178, 178, 135, 178, 178, 178, 76, 178,
136, 115, 116, 178, 178, 178, 62, 178, 178, 173,
121, 77, 0
122, 178, 178, 77, 178, 178, 75, 114, 87, 178,
116, 178, 117, 178, 178, 178, 178, 178, 102, 178,
178, 178, 178, 65, 178, 64, 131, 178, 178, 115,
88, 178, 178, 178, 178, 178, 178, 178, 178, 178,
178, 129, 132, 123, 178, 66, 178, 178, 178, 178,
178, 178, 178, 178, 130, 133, 178, 178, 126, 71,
178, 178, 172, 178, 178, 178, 78, 178, 178, 128,
76, 178, 178, 178, 178, 178, 178, 134, 178, 178,
178, 178, 178, 178, 135, 178, 178, 178, 79, 178,
136, 118, 119, 178, 178, 178, 62, 178, 178, 173,
124, 80, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
......@@ -1381,7 +1381,7 @@ yy_find_action:
if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
{
yy_size_t yyl;
for ( yyl = 0; yyl < yyleng; ++yyl )
for ( yyl = 0; yyl < static_cast<yy_size_t>(yyleng); ++yyl )
if ( yytext[yyl] == '\n' )
do{ yylineno++;
......@@ -1667,128 +1667,137 @@ YY_RULE_SETUP
YY_BREAK
case 67:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, ISAMPLER2D); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, SAMPLER2DMS); }
YY_BREAK
case 68:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, ISAMPLER3D); }
{ return ES2_ident_ES3_keyword(context, ISAMPLER2D); }
YY_BREAK
case 69:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, ISAMPLERCUBE); }
{ return ES2_ident_ES3_keyword(context, ISAMPLER3D); }
YY_BREAK
case 70:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, ISAMPLER2DARRAY); }
{ return ES2_ident_ES3_keyword(context, ISAMPLERCUBE); }
YY_BREAK
case 71:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, USAMPLER2D); }
{ return ES2_ident_ES3_keyword(context, ISAMPLER2DARRAY); }
YY_BREAK
case 72:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, USAMPLER3D); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, ISAMPLER2DMS); }
YY_BREAK
case 73:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, USAMPLERCUBE); }
{ return ES2_ident_ES3_keyword(context, USAMPLER2D); }
YY_BREAK
case 74:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, USAMPLER2DARRAY); }
{ return ES2_ident_ES3_keyword(context, USAMPLER3D); }
YY_BREAK
case 75:
YY_RULE_SETUP
{ return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); }
{ return ES2_ident_ES3_keyword(context, USAMPLERCUBE); }
YY_BREAK
case 76:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, SAMPLERCUBESHADOW); }
{ return ES2_ident_ES3_keyword(context, USAMPLER2DARRAY); }
YY_BREAK
case 77:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, SAMPLER2DARRAYSHADOW); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, USAMPLER2DMS); }
YY_BREAK
case 78:
YY_RULE_SETUP
{ return STRUCT; }
{ return ES2_reserved_ES3_keyword(context, SAMPLER2DSHADOW); }
YY_BREAK
case 79:
YY_RULE_SETUP
{ return ES2_ident_ES3_keyword(context, LAYOUT); }
{ return ES2_ident_ES3_keyword(context, SAMPLERCUBESHADOW); }
YY_BREAK
case 80:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGE2D); }
{ return ES2_ident_ES3_keyword(context, SAMPLER2DARRAYSHADOW); }
YY_BREAK
case 81:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGE2D); }
{ return STRUCT; }
YY_BREAK
case 82:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGE2D); }
{ return ES2_ident_ES3_keyword(context, LAYOUT); }
YY_BREAK
case 83:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGE2DARRAY); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGE2D); }
YY_BREAK
case 84:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGE2DARRAY); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGE2D); }
YY_BREAK
case 85:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGE2DARRAY); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGE2D); }
YY_BREAK
case 86:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGE3D); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGE2DARRAY); }
YY_BREAK
case 87:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGE3D); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGE2DARRAY); }
YY_BREAK
case 88:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGE3D); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGE2DARRAY); }
YY_BREAK
case 89:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGECUBE); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGE3D); }
YY_BREAK
case 90:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGECUBE); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGE3D); }
YY_BREAK
case 91:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGECUBE); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGE3D); }
YY_BREAK
case 92:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, READONLY); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IIMAGECUBE); }
YY_BREAK
case 93:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, WRITEONLY); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, UIMAGECUBE); }
YY_BREAK
case 94:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, COHERENT); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, IMAGECUBE); }
YY_BREAK
case 95:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, RESTRICT); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, READONLY); }
YY_BREAK
case 96:
YY_RULE_SETUP
{ return ES2_and_ES3_reserved_ES3_1_keyword(context, VOLATILE); }
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, WRITEONLY); }
YY_BREAK
/* Reserved keywords for GLSL ES 3.00 that are not reserved for GLSL ES 1.00 */
case 97:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, COHERENT); }
YY_BREAK
case 98:
YY_RULE_SETUP
{ return ES2_ident_ES3_reserved_ES3_1_keyword(context, RESTRICT); }
YY_BREAK
case 99:
YY_RULE_SETUP
{ return ES2_and_ES3_reserved_ES3_1_keyword(context, VOLATILE); }
YY_BREAK
/* Reserved keywords for GLSL ES 3.00 that are not reserved for GLSL ES 1.00 */
case 100:
case 101:
case 102:
......@@ -2385,7 +2394,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
number_to_move - 1;
static_cast<int>(number_to_move) - 1;
}
......@@ -2393,8 +2402,10 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
num_to_read = YY_READ_BUF_SIZE;
/* Read in more data. */
size_t result = 0;
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
yyg->yy_n_chars, num_to_read );
result, num_to_read );
yyg->yy_n_chars = static_cast<int>(result);
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
}
......@@ -2835,7 +2846,7 @@ static void yyensure_buffer_stack (yyscan_t yyscanner)
/* Increase the buffer to prepare for a possible push. */
int grow_size = 8 /* arbitrary grow size */;
num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
num_to_alloc = static_cast<int>(yyg->yy_buffer_stack_max + grow_size);
yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
(yyg->yy_buffer_stack,
num_to_alloc * sizeof(struct yy_buffer_state*)
......@@ -2869,7 +2880,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscann
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
b->yy_buf_size = static_cast<int>(size) - 2; /* "- 2" to take care of EOB's */
b->yy_buf_pos = b->yy_ch_buf = base;
b->yy_is_our_buffer = 0;
b->yy_input_file = 0;
......@@ -2918,7 +2929,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len
if ( ! buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
for ( i = 0; i < _yybytes_len; ++i )
for ( i = 0; i < static_cast<yy_size_t>(_yybytes_len); ++i )
buf[i] = yybytes[i];
buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -122,76 +122,79 @@ enum yytokentype
USAMPLER3D = 328,
USAMPLERCUBE = 329,
USAMPLER2DARRAY = 330,
SAMPLER3D = 331,
SAMPLER3DRECT = 332,
SAMPLER2DSHADOW = 333,
SAMPLERCUBESHADOW = 334,
SAMPLER2DARRAYSHADOW = 335,
IMAGE2D = 336,
IIMAGE2D = 337,
UIMAGE2D = 338,
IMAGE3D = 339,
IIMAGE3D = 340,
UIMAGE3D = 341,
IMAGE2DARRAY = 342,
IIMAGE2DARRAY = 343,
UIMAGE2DARRAY = 344,
IMAGECUBE = 345,
IIMAGECUBE = 346,
UIMAGECUBE = 347,
LAYOUT = 348,
IDENTIFIER = 349,
TYPE_NAME = 350,
FLOATCONSTANT = 351,
INTCONSTANT = 352,
UINTCONSTANT = 353,
BOOLCONSTANT = 354,
FIELD_SELECTION = 355,
LEFT_OP = 356,
RIGHT_OP = 357,
INC_OP = 358,
DEC_OP = 359,
LE_OP = 360,
GE_OP = 361,
EQ_OP = 362,
NE_OP = 363,
AND_OP = 364,
OR_OP = 365,
XOR_OP = 366,
MUL_ASSIGN = 367,
DIV_ASSIGN = 368,
ADD_ASSIGN = 369,
MOD_ASSIGN = 370,
LEFT_ASSIGN = 371,
RIGHT_ASSIGN = 372,
AND_ASSIGN = 373,
XOR_ASSIGN = 374,
OR_ASSIGN = 375,
SUB_ASSIGN = 376,
LEFT_PAREN = 377,
RIGHT_PAREN = 378,
LEFT_BRACKET = 379,
RIGHT_BRACKET = 380,
LEFT_BRACE = 381,
RIGHT_BRACE = 382,
DOT = 383,
COMMA = 384,
COLON = 385,
EQUAL = 386,
SEMICOLON = 387,
BANG = 388,
DASH = 389,
TILDE = 390,
PLUS = 391,
STAR = 392,
SLASH = 393,
PERCENT = 394,
LEFT_ANGLE = 395,
RIGHT_ANGLE = 396,
VERTICAL_BAR = 397,
CARET = 398,
AMPERSAND = 399,
QUESTION = 400
SAMPLER2DMS = 331,
ISAMPLER2DMS = 332,
USAMPLER2DMS = 333,
SAMPLER3D = 334,
SAMPLER3DRECT = 335,
SAMPLER2DSHADOW = 336,
SAMPLERCUBESHADOW = 337,
SAMPLER2DARRAYSHADOW = 338,
IMAGE2D = 339,
IIMAGE2D = 340,
UIMAGE2D = 341,
IMAGE3D = 342,
IIMAGE3D = 343,
UIMAGE3D = 344,
IMAGE2DARRAY = 345,
IIMAGE2DARRAY = 346,
UIMAGE2DARRAY = 347,
IMAGECUBE = 348,
IIMAGECUBE = 349,
UIMAGECUBE = 350,
LAYOUT = 351,
IDENTIFIER = 352,
TYPE_NAME = 353,
FLOATCONSTANT = 354,
INTCONSTANT = 355,
UINTCONSTANT = 356,
BOOLCONSTANT = 357,
FIELD_SELECTION = 358,
LEFT_OP = 359,
RIGHT_OP = 360,
INC_OP = 361,
DEC_OP = 362,
LE_OP = 363,
GE_OP = 364,
EQ_OP = 365,
NE_OP = 366,
AND_OP = 367,
OR_OP = 368,
XOR_OP = 369,
MUL_ASSIGN = 370,
DIV_ASSIGN = 371,
ADD_ASSIGN = 372,
MOD_ASSIGN = 373,
LEFT_ASSIGN = 374,
RIGHT_ASSIGN = 375,
AND_ASSIGN = 376,
XOR_ASSIGN = 377,
OR_ASSIGN = 378,
SUB_ASSIGN = 379,
LEFT_PAREN = 380,
RIGHT_PAREN = 381,
LEFT_BRACKET = 382,
RIGHT_BRACKET = 383,
LEFT_BRACE = 384,
RIGHT_BRACE = 385,
DOT = 386,
COMMA = 387,
COLON = 388,
EQUAL = 389,
SEMICOLON = 390,
BANG = 391,
DASH = 392,
TILDE = 393,
PLUS = 394,
STAR = 395,
SLASH = 396,
PERCENT = 397,
LEFT_ANGLE = 398,
RIGHT_ANGLE = 399,
VERTICAL_BAR = 400,
CARET = 401,
AMPERSAND = 402,
QUESTION = 403
};
#endif
......
......@@ -338,6 +338,8 @@ GLenum GLVariableType(const TType &type)
return GL_SAMPLER_2D_RECT_ARB;
case EbtSampler2DArray:
return GL_SAMPLER_2D_ARRAY;
case EbtSampler2DMS:
return GL_SAMPLER_2D_MULTISAMPLE;
case EbtISampler2D:
return GL_INT_SAMPLER_2D;
case EbtISampler3D:
......@@ -346,6 +348,8 @@ GLenum GLVariableType(const TType &type)
return GL_INT_SAMPLER_CUBE;
case EbtISampler2DArray:
return GL_INT_SAMPLER_2D_ARRAY;
case EbtISampler2DMS:
return GL_INT_SAMPLER_2D_MULTISAMPLE;
case EbtUSampler2D:
return GL_UNSIGNED_INT_SAMPLER_2D;
case EbtUSampler3D:
......@@ -354,6 +358,8 @@ GLenum GLVariableType(const TType &type)
return GL_UNSIGNED_INT_SAMPLER_CUBE;
case EbtUSampler2DArray:
return GL_UNSIGNED_INT_SAMPLER_2D_ARRAY;
case EbtUSampler2DMS:
return GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE;
case EbtSampler2DShadow:
return GL_SAMPLER_2D_SHADOW;
case EbtSamplerCubeShadow:
......
......@@ -66,6 +66,7 @@
'<(angle_path)/src/tests/compiler_tests/QualificationOrder_test.cpp',
'<(angle_path)/src/tests/compiler_tests/RecordConstantPrecision_test.cpp',
'<(angle_path)/src/tests/compiler_tests/RemovePow_test.cpp',
'<(angle_path)/src/tests/compiler_tests/SamplerMultisample_test.cpp',
'<(angle_path)/src/tests/compiler_tests/ShaderExtension_test.cpp',
'<(angle_path)/src/tests/compiler_tests/ShaderImage_test.cpp',
'<(angle_path)/src/tests/compiler_tests/ShaderValidation_test.cpp',
......
//
// Copyright (c) 2016 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// SamplerMultisample_test.cpp:
// Tests compiling shaders that use gsampler2DMS types
//
#include "angle_gl.h"
#include "gtest/gtest.h"
#include "GLSLANG/ShaderLang.h"
#include "tests/test_utils/ShaderCompileTreeTest.h"
using namespace sh;
class SamplerMultisampleTest : public ShaderCompileTreeTest
{
public:
SamplerMultisampleTest() {}
protected:
::GLenum getShaderType() const override { return GL_FRAGMENT_SHADER; }
ShShaderSpec getShaderSpec() const override { return SH_GLES3_1_SPEC; }
};
// checks whether compiler has parsed the gsampler2DMS, texelfetch qualifiers correctly
TEST_F(SamplerMultisampleTest, TexelFetchSampler2DMSQualifier)
{
const std::string &shaderString =
"#version 310 es\n"
"precision highp float;\n"
"uniform highp sampler2DMS s;\n"
"uniform highp isampler2DMS is;\n"
"uniform highp usampler2DMS us;\n"
""
"void main() {\n"
" vec4 tex1 = texelFetch(s, ivec2(0, 0), 0);\n"
" ivec4 tex2 = texelFetch(is, ivec2(0, 0), 0);\n"
" uvec4 tex3 = texelFetch(us, ivec2(0, 0), 0);\n"
"}\n";
if (!compile(shaderString))
{
FAIL() << "Shader compilation failed, expecting success:\n" << mInfoLog;
}
}
// checks whether compiler has parsed the gsampler2DMS, texturesize qualifiers correctly
TEST_F(SamplerMultisampleTest, TextureSizeSampler2DMSQualifier)
{
const std::string &shaderString =
"#version 310 es\n"
"precision highp float;\n"
"uniform highp sampler2DMS s;\n"
"uniform highp isampler2DMS is;\n"
"uniform highp usampler2DMS us;\n"
""
"void main() {\n"
" ivec2 size = textureSize(s);\n"
" size = textureSize(is);\n"
" size = textureSize(us);\n"
"}\n";
if (!compile(shaderString))
{
FAIL() << "Shader compilation failed, expecting success:\n" << mInfoLog;
}
}
// checks gsampler2DMS has no default precision
TEST_F(SamplerMultisampleTest, NoPrecisionSampler2DMS)
{
const std::string &shaderString =
"#version 310 es\n"
"precision highp float;\n"
"uniform sampler2DMS s;\n"
"uniform isampler2DMS is;\n"
"uniform usampler2DMS us;\n"
""
"void main() {}\n";
if (compile(shaderString))
{
FAIL() << "Shader compilation succeeded, expecting failure:\n" << mInfoLog;
}
}
......@@ -3355,4 +3355,18 @@ TEST_F(FragmentShaderValidationTest, ValidUseOfMemoryBarrierImageInFragmentShade
{
FAIL() << "Shader compilation failed, expecting success " << mInfoLog;
}
}
// checks that gsampler2DMS is not supported in version lower than 310
TEST_F(FragmentShaderValidationTest, Sampler2DMSInESSL300Shader)
{
const std::string &shaderString =
"#version 300 es\n"
"uniform highp sampler2DMS s;\n"
"void main() {}\n";
if (compile(shaderString))
{
FAIL() << "Shader compilation succeed, expecting failure " << mInfoLog;
}
}
\ No newline at end of file
......@@ -48,6 +48,7 @@
1442 OPENGL D3D11 : dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.name_length.vertex_fragment.default_block_struct_member = SKIP
1442 OPENGL D3D11 : dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.type.vertex_fragment.struct.* = SKIP
1442 D3D11 : dEQP-GLES31.functional.stencil_texturing.* = SKIP
1442 D3D11 : dEQP-GLES31.functional.state_query.shader.sampler_type = SKIP
// D3D11 Failing Tests
1442 D3D11 : dEQP-GLES31.functional.draw_indirect.* = FAIL
......@@ -1180,7 +1181,6 @@
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.* = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.texture_level.* = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.texture_level.texture_2d_multisample.* = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.shader.sampler_type = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.internal_format.renderbuffer.rgb10_a2ui_samples = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.internal_format.renderbuffer.r8i_samples = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.internal_format.renderbuffer.r8ui_samples = FAIL
......
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