Commit 240befe5 by Tobin Ehlis Committed by Commit Bot

Add support for gl_HelperInvocation

Added HelperInvocation to builtin_variables.json, regenerate the codegen portions of compiler, and plumb support for HelperInvocation through the rest of the compiler. Skipping some fails on Android and Swiftshader for this initial change and will debug/fix those issues in a follow-on. Bug: angleproject:4110 Change-Id: I781a2782ace84200bc615a2cc26b908a62e2aa26 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1922061 Commit-Queue: Tobin Ehlis <tobine@google.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 377b8caf
{ {
"src/compiler/translator/ImmutableString_ESSL_autogen.cpp": "src/compiler/translator/ImmutableString_ESSL_autogen.cpp":
"7a3f3014d9607087478ab62bb7380c41", "1dc22b75034ae56cbe544263242033b0",
"src/compiler/translator/ImmutableString_autogen.cpp": "src/compiler/translator/ImmutableString_autogen.cpp":
"f263dab8a3de5424902d50fd9c171377", "491c2b20494968ab4e6b6a4e479db102",
"src/compiler/translator/ParseContext_ESSL_autogen.h": "src/compiler/translator/ParseContext_ESSL_autogen.h":
"1edbc3eb12319018818147bccd3a226d", "f718200775523d610410e06c52e23358",
"src/compiler/translator/ParseContext_complete_autogen.h": "src/compiler/translator/ParseContext_complete_autogen.h":
"a4209c68899e9cf3bcce81be2cb5f39f", "a4209c68899e9cf3bcce81be2cb5f39f",
"src/compiler/translator/SymbolTable_ESSL_autogen.cpp": "src/compiler/translator/SymbolTable_ESSL_autogen.cpp":
"7714226af3c98c0ebce9e71ef181c3ea", "b600cc2afc658f552dbf32fc97dc5dce",
"src/compiler/translator/SymbolTable_autogen.cpp": "src/compiler/translator/SymbolTable_autogen.cpp":
"b0454c7771bda83e0ff0b39338bd3f66", "ef50067f90578a8f46914603ebd4070b",
"src/compiler/translator/SymbolTable_autogen.h": "src/compiler/translator/SymbolTable_autogen.h":
"3ce7740b6ad93a86d198c3937b70c17e", "3ce7740b6ad93a86d198c3937b70c17e",
"src/compiler/translator/builtin_function_declarations.txt": "src/compiler/translator/builtin_function_declarations.txt":
"fc9b0b050448d015482c9f13cab1df67", "fc9b0b050448d015482c9f13cab1df67",
"src/compiler/translator/builtin_variables.json": "src/compiler/translator/builtin_variables.json":
"e0155915c71991dee1c46358fdb7dd8b", "1b71075ff2644fd32b12bb53dce50062",
"src/compiler/translator/gen_builtin_symbols.py": "src/compiler/translator/gen_builtin_symbols.py":
"1034aa779dc2f10458779b28863ec6e2", "1034aa779dc2f10458779b28863ec6e2",
"src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h": "src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h":
"3c7cdcb39ac0bd262a7d2c8edf8650c0", "f62b9c5fe1e3eb67bddab00e2a5e3dca",
"src/compiler/translator/tree_util/BuiltIn_complete_autogen.h": "src/compiler/translator/tree_util/BuiltIn_complete_autogen.h":
"b840c72eb7184799469740e91f8715ab", "d86d7b7d493f1ed9b3311f858ec95447",
"src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp": "src/tests/compiler_tests/ImmutableString_test_ESSL_autogen.cpp":
"760243f6505f48d9f72b6dd5ffbe8f23", "14c7b4bfba01cf0a38f274f53460177a",
"src/tests/compiler_tests/ImmutableString_test_autogen.cpp": "src/tests/compiler_tests/ImmutableString_test_autogen.cpp":
"3329875ef3e29005aad2839c96f3ec31" "a92937de7152da9dc582f4b88f6af39a"
} }
\ No newline at end of file
...@@ -943,6 +943,7 @@ enum TQualifier ...@@ -943,6 +943,7 @@ enum TQualifier
EvqFragCoord, EvqFragCoord,
EvqFrontFacing, EvqFrontFacing,
EvqPointCoord, EvqPointCoord,
EvqHelperInvocation,
// built-ins written by fragment shader // built-ins written by fragment shader
EvqFragColor, EvqFragColor,
...@@ -1233,6 +1234,7 @@ inline const char *getQualifierString(TQualifier q) ...@@ -1233,6 +1234,7 @@ inline const char *getQualifierString(TQualifier q)
case EvqBaseInstance: return "BaseInstance"; case EvqBaseInstance: return "BaseInstance";
case EvqFragCoord: return "FragCoord"; case EvqFragCoord: return "FragCoord";
case EvqFrontFacing: return "FrontFacing"; case EvqFrontFacing: return "FrontFacing";
case EvqHelperInvocation: return "HelperInvocation";
case EvqPointCoord: return "PointCoord"; case EvqPointCoord: return "PointCoord";
case EvqFragColor: return "FragColor"; case EvqFragColor: return "FragColor";
case EvqFragData: return "FragData"; case EvqFragData: return "FragData";
......
...@@ -81,7 +81,7 @@ void MarkActive(ShaderVariable *variable) ...@@ -81,7 +81,7 @@ void MarkActive(ShaderVariable *variable)
} }
} }
variable->staticUse = true; variable->staticUse = true;
variable->active = true; variable->active = true;
} }
} }
...@@ -182,6 +182,7 @@ class CollectVariablesTraverser : public TIntermTraverser ...@@ -182,6 +182,7 @@ class CollectVariablesTraverser : public TIntermTraverser
// Fragment Shader builtins // Fragment Shader builtins
bool mPointCoordAdded; bool mPointCoordAdded;
bool mFrontFacingAdded; bool mFrontFacingAdded;
bool mHelperInvocationAdded;
bool mFragCoordAdded; bool mFragCoordAdded;
bool mLastFragDataAdded; bool mLastFragDataAdded;
bool mFragColorAdded; bool mFragColorAdded;
...@@ -238,6 +239,7 @@ CollectVariablesTraverser::CollectVariablesTraverser( ...@@ -238,6 +239,7 @@ CollectVariablesTraverser::CollectVariablesTraverser(
mPositionAdded(false), mPositionAdded(false),
mPointCoordAdded(false), mPointCoordAdded(false),
mFrontFacingAdded(false), mFrontFacingAdded(false),
mHelperInvocationAdded(false),
mFragCoordAdded(false), mFragCoordAdded(false),
mLastFragDataAdded(false), mLastFragDataAdded(false),
mFragColorAdded(false), mFragColorAdded(false),
...@@ -469,6 +471,10 @@ void CollectVariablesTraverser::visitSymbol(TIntermSymbol *symbol) ...@@ -469,6 +471,10 @@ void CollectVariablesTraverser::visitSymbol(TIntermSymbol *symbol)
case EvqFrontFacing: case EvqFrontFacing:
recordBuiltInVaryingUsed(symbol->variable(), &mFrontFacingAdded, mInputVaryings); recordBuiltInVaryingUsed(symbol->variable(), &mFrontFacingAdded, mInputVaryings);
return; return;
case EvqHelperInvocation:
recordBuiltInVaryingUsed(symbol->variable(), &mHelperInvocationAdded,
mInputVaryings);
return;
case EvqPointCoord: case EvqPointCoord:
recordBuiltInVaryingUsed(symbol->variable(), &mPointCoordAdded, mInputVaryings); recordBuiltInVaryingUsed(symbol->variable(), &mPointCoordAdded, mInputVaryings);
return; return;
......
...@@ -301,14 +301,15 @@ OutputHLSL::OutputHLSL(sh::GLenum shaderType, ...@@ -301,14 +301,15 @@ OutputHLSL::OutputHLSL(sh::GLenum shaderType,
mPerfDiagnostics(perfDiagnostics), mPerfDiagnostics(perfDiagnostics),
mNeedStructMapping(false) mNeedStructMapping(false)
{ {
mUsesFragColor = false; mUsesFragColor = false;
mUsesFragData = false; mUsesFragData = false;
mUsesDepthRange = false; mUsesDepthRange = false;
mUsesFragCoord = false; mUsesFragCoord = false;
mUsesPointCoord = false; mUsesPointCoord = false;
mUsesFrontFacing = false; mUsesFrontFacing = false;
mUsesPointSize = false; mUsesHelperInvocation = false;
mUsesInstanceID = false; mUsesPointSize = false;
mUsesInstanceID = false;
mHasMultiviewExtensionEnabled = mHasMultiviewExtensionEnabled =
IsExtensionEnabled(mExtensionBehavior, TExtension::OVR_multiview) || IsExtensionEnabled(mExtensionBehavior, TExtension::OVR_multiview) ||
IsExtensionEnabled(mExtensionBehavior, TExtension::OVR_multiview2); IsExtensionEnabled(mExtensionBehavior, TExtension::OVR_multiview2);
...@@ -760,6 +761,11 @@ void OutputHLSL::header(TInfoSinkBase &out, ...@@ -760,6 +761,11 @@ void OutputHLSL::header(TInfoSinkBase &out,
out << "static bool gl_FrontFacing = false;\n"; out << "static bool gl_FrontFacing = false;\n";
} }
if (mUsesHelperInvocation)
{
out << "static bool gl_HelperInvocation = false;\n";
}
out << "\n"; out << "\n";
if (mUsesDepthRange) if (mUsesDepthRange)
...@@ -1052,6 +1058,11 @@ void OutputHLSL::header(TInfoSinkBase &out, ...@@ -1052,6 +1058,11 @@ void OutputHLSL::header(TInfoSinkBase &out,
out << "#define GL_USES_FRONT_FACING\n"; out << "#define GL_USES_FRONT_FACING\n";
} }
if (mUsesHelperInvocation)
{
out << "#define GL_USES_HELPER_INVOCATION\n";
}
if (mUsesPointSize) if (mUsesPointSize)
{ {
out << "#define GL_USES_POINT_SIZE\n"; out << "#define GL_USES_POINT_SIZE\n";
...@@ -1224,6 +1235,11 @@ void OutputHLSL::visitSymbol(TIntermSymbol *node) ...@@ -1224,6 +1235,11 @@ void OutputHLSL::visitSymbol(TIntermSymbol *node)
mUsesFrontFacing = true; mUsesFrontFacing = true;
out << name; out << name;
} }
else if (qualifier == EvqHelperInvocation)
{
mUsesHelperInvocation = true;
out << name;
}
else if (qualifier == EvqPointSize) else if (qualifier == EvqPointSize)
{ {
mUsesPointSize = true; mUsesPointSize = true;
......
...@@ -194,6 +194,7 @@ class OutputHLSL : public TIntermTraverser ...@@ -194,6 +194,7 @@ class OutputHLSL : public TIntermTraverser
bool mUsesFragCoord; bool mUsesFragCoord;
bool mUsesPointCoord; bool mUsesPointCoord;
bool mUsesFrontFacing; bool mUsesFrontFacing;
bool mUsesHelperInvocation;
bool mUsesPointSize; bool mUsesPointSize;
bool mUsesInstanceID; bool mUsesInstanceID;
bool mHasMultiviewExtensionEnabled; bool mHasMultiviewExtensionEnabled;
......
...@@ -545,6 +545,9 @@ bool TParseContext::checkCanBeLValue(const TSourceLoc &line, const char *op, TIn ...@@ -545,6 +545,9 @@ bool TParseContext::checkCanBeLValue(const TSourceLoc &line, const char *op, TIn
case EvqFrontFacing: case EvqFrontFacing:
message = "can't modify gl_FrontFacing"; message = "can't modify gl_FrontFacing";
break; break;
case EvqHelperInvocation:
message = "can't modify gl_HelperInvocation";
break;
case EvqPointCoord: case EvqPointCoord:
message = "can't modify gl_PointCoord"; message = "can't modify gl_PointCoord";
break; break;
......
...@@ -21,42 +21,42 @@ namespace BuiltInGroup ...@@ -21,42 +21,42 @@ namespace BuiltInGroup
bool isTextureOffsetNoBias(const TFunction *func) bool isTextureOffsetNoBias(const TFunction *func)
{ {
int id = func->uniqueId().get(); int id = func->uniqueId().get();
return id >= 3016 && id <= 3085; return id >= 3017 && id <= 3086;
} }
bool isTextureOffsetBias(const TFunction *func) bool isTextureOffsetBias(const TFunction *func)
{ {
int id = func->uniqueId().get(); int id = func->uniqueId().get();
return id >= 3086 && id <= 3105; return id >= 3087 && id <= 3106;
} }
bool isTextureGatherOffset(const TFunction *func) bool isTextureGatherOffset(const TFunction *func)
{ {
int id = func->uniqueId().get(); int id = func->uniqueId().get();
return id >= 3143 && id <= 3156; return id >= 3144 && id <= 3157;
} }
bool isTextureGather(const TFunction *func) bool isTextureGather(const TFunction *func)
{ {
int id = func->uniqueId().get(); int id = func->uniqueId().get();
return id >= 3119 && id <= 3156; return id >= 3120 && id <= 3157;
} }
bool isAtomicMemory(const TFunction *func) bool isAtomicMemory(const TFunction *func)
{ {
int id = func->uniqueId().get(); int id = func->uniqueId().get();
return id >= 3173 && id <= 3190; return id >= 3174 && id <= 3191;
} }
bool isImageLoad(const TFunction *func) bool isImageLoad(const TFunction *func)
{ {
int id = func->uniqueId().get(); int id = func->uniqueId().get();
return id >= 3215 && id <= 3226; return id >= 3216 && id <= 3227;
} }
bool isImageStore(const TFunction *func) bool isImageStore(const TFunction *func)
{ {
int id = func->uniqueId().get(); int id = func->uniqueId().get();
return id >= 3227 && id <= 3238; return id >= 3228 && id <= 3239;
} }
bool isImage(const TFunction *func) bool isImage(const TFunction *func)
{ {
int id = func->uniqueId().get(); int id = func->uniqueId().get();
return id >= 3191 && id <= 3238; return id >= 3192 && id <= 3239;
} }
} // namespace BuiltInGroup } // namespace BuiltInGroup
......
...@@ -513,6 +513,13 @@ ...@@ -513,6 +513,13 @@
"precision":"High", "precision":"High",
"qualifier":"FragDepth" "qualifier":"FragDepth"
} }
},
"gl_HelperInvocation":{
"essl_level":"ESSL3_1_BUILTINS",
"type":{
"basic":"Bool",
"qualifier":"HelperInvocation"
}
} }
}, },
"subgroups":{ "subgroups":{
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -3448,43 +3448,44 @@ class BuiltInId ...@@ -3448,43 +3448,44 @@ class BuiltInId
static constexpr const TSymbolUniqueId gl_FragColor = TSymbolUniqueId(2259); static constexpr const TSymbolUniqueId gl_FragColor = TSymbolUniqueId(2259);
static constexpr const TSymbolUniqueId gl_FragData = TSymbolUniqueId(2260); static constexpr const TSymbolUniqueId gl_FragData = TSymbolUniqueId(2260);
static constexpr const TSymbolUniqueId gl_FragDepth = TSymbolUniqueId(2261); static constexpr const TSymbolUniqueId gl_FragDepth = TSymbolUniqueId(2261);
static constexpr const TSymbolUniqueId gl_SecondaryFragColorEXT = TSymbolUniqueId(2262); static constexpr const TSymbolUniqueId gl_HelperInvocation = TSymbolUniqueId(2262);
static constexpr const TSymbolUniqueId gl_SecondaryFragDataEXT = TSymbolUniqueId(2263); static constexpr const TSymbolUniqueId gl_SecondaryFragColorEXT = TSymbolUniqueId(2263);
static constexpr const TSymbolUniqueId gl_FragDepthEXT = TSymbolUniqueId(2264); static constexpr const TSymbolUniqueId gl_SecondaryFragDataEXT = TSymbolUniqueId(2264);
static constexpr const TSymbolUniqueId gl_LastFragData = TSymbolUniqueId(2265); static constexpr const TSymbolUniqueId gl_FragDepthEXT = TSymbolUniqueId(2265);
static constexpr const TSymbolUniqueId gl_LastFragColor = TSymbolUniqueId(2266); static constexpr const TSymbolUniqueId gl_LastFragData = TSymbolUniqueId(2266);
static constexpr const TSymbolUniqueId gl_LastFragDataNV = TSymbolUniqueId(2267); static constexpr const TSymbolUniqueId gl_LastFragColor = TSymbolUniqueId(2267);
static constexpr const TSymbolUniqueId gl_LastFragColorARM = TSymbolUniqueId(2268); static constexpr const TSymbolUniqueId gl_LastFragDataNV = TSymbolUniqueId(2268);
static constexpr const TSymbolUniqueId gl_PrimitiveID = TSymbolUniqueId(2269); static constexpr const TSymbolUniqueId gl_LastFragColorARM = TSymbolUniqueId(2269);
static constexpr const TSymbolUniqueId gl_Layer = TSymbolUniqueId(2270); static constexpr const TSymbolUniqueId gl_PrimitiveID = TSymbolUniqueId(2270);
static constexpr const TSymbolUniqueId gl_Position = TSymbolUniqueId(2271); static constexpr const TSymbolUniqueId gl_Layer = TSymbolUniqueId(2271);
static constexpr const TSymbolUniqueId gl_PointSize = TSymbolUniqueId(2272); static constexpr const TSymbolUniqueId gl_Position = TSymbolUniqueId(2272);
static constexpr const TSymbolUniqueId gl_InstanceID = TSymbolUniqueId(2273); static constexpr const TSymbolUniqueId gl_PointSize = TSymbolUniqueId(2273);
static constexpr const TSymbolUniqueId gl_InstanceIndex = TSymbolUniqueId(2274); static constexpr const TSymbolUniqueId gl_InstanceID = TSymbolUniqueId(2274);
static constexpr const TSymbolUniqueId gl_VertexID = TSymbolUniqueId(2275); static constexpr const TSymbolUniqueId gl_InstanceIndex = TSymbolUniqueId(2275);
static constexpr const TSymbolUniqueId gl_VertexIndex = TSymbolUniqueId(2276); static constexpr const TSymbolUniqueId gl_VertexID = TSymbolUniqueId(2276);
static constexpr const TSymbolUniqueId gl_ViewportIndex = TSymbolUniqueId(2277); static constexpr const TSymbolUniqueId gl_VertexIndex = TSymbolUniqueId(2277);
static constexpr const TSymbolUniqueId gl_LayerVS = TSymbolUniqueId(2278); static constexpr const TSymbolUniqueId gl_ViewportIndex = TSymbolUniqueId(2278);
static constexpr const TSymbolUniqueId gl_DrawID = TSymbolUniqueId(2279); static constexpr const TSymbolUniqueId gl_LayerVS = TSymbolUniqueId(2279);
static constexpr const TSymbolUniqueId gl_BaseVertex = TSymbolUniqueId(2280); static constexpr const TSymbolUniqueId gl_DrawID = TSymbolUniqueId(2280);
static constexpr const TSymbolUniqueId gl_BaseInstance = TSymbolUniqueId(2281); static constexpr const TSymbolUniqueId gl_BaseVertex = TSymbolUniqueId(2281);
static constexpr const TSymbolUniqueId angle_BaseVertex = TSymbolUniqueId(2282); static constexpr const TSymbolUniqueId gl_BaseInstance = TSymbolUniqueId(2282);
static constexpr const TSymbolUniqueId angle_BaseInstance = TSymbolUniqueId(2283); static constexpr const TSymbolUniqueId angle_BaseVertex = TSymbolUniqueId(2283);
static constexpr const TSymbolUniqueId gl_NumWorkGroups = TSymbolUniqueId(2284); static constexpr const TSymbolUniqueId angle_BaseInstance = TSymbolUniqueId(2284);
static constexpr const TSymbolUniqueId gl_WorkGroupSize = TSymbolUniqueId(2285); static constexpr const TSymbolUniqueId gl_NumWorkGroups = TSymbolUniqueId(2285);
static constexpr const TSymbolUniqueId gl_WorkGroupID = TSymbolUniqueId(2286); static constexpr const TSymbolUniqueId gl_WorkGroupSize = TSymbolUniqueId(2286);
static constexpr const TSymbolUniqueId gl_LocalInvocationID = TSymbolUniqueId(2287); static constexpr const TSymbolUniqueId gl_WorkGroupID = TSymbolUniqueId(2287);
static constexpr const TSymbolUniqueId gl_GlobalInvocationID = TSymbolUniqueId(2288); static constexpr const TSymbolUniqueId gl_LocalInvocationID = TSymbolUniqueId(2288);
static constexpr const TSymbolUniqueId gl_LocalInvocationIndex = TSymbolUniqueId(2289); static constexpr const TSymbolUniqueId gl_GlobalInvocationID = TSymbolUniqueId(2289);
static constexpr const TSymbolUniqueId gl_PrimitiveIDIn = TSymbolUniqueId(2290); static constexpr const TSymbolUniqueId gl_LocalInvocationIndex = TSymbolUniqueId(2290);
static constexpr const TSymbolUniqueId gl_InvocationID = TSymbolUniqueId(2291); static constexpr const TSymbolUniqueId gl_PrimitiveIDIn = TSymbolUniqueId(2291);
static constexpr const TSymbolUniqueId gl_PrimitiveIDGS = TSymbolUniqueId(2292); static constexpr const TSymbolUniqueId gl_InvocationID = TSymbolUniqueId(2292);
static constexpr const TSymbolUniqueId gl_LayerGS = TSymbolUniqueId(2293); static constexpr const TSymbolUniqueId gl_PrimitiveIDGS = TSymbolUniqueId(2293);
static constexpr const TSymbolUniqueId gl_PerVertex = TSymbolUniqueId(2294); static constexpr const TSymbolUniqueId gl_LayerGS = TSymbolUniqueId(2294);
static constexpr const TSymbolUniqueId gl_in = TSymbolUniqueId(2295); static constexpr const TSymbolUniqueId gl_PerVertex = TSymbolUniqueId(2295);
static constexpr const TSymbolUniqueId gl_PerVertexOutBlock = TSymbolUniqueId(2296); static constexpr const TSymbolUniqueId gl_in = TSymbolUniqueId(2296);
static constexpr const TSymbolUniqueId gl_PositionGS = TSymbolUniqueId(2297); static constexpr const TSymbolUniqueId gl_PerVertexOutBlock = TSymbolUniqueId(2297);
static constexpr const TSymbolUniqueId gl_ViewID_OVR = TSymbolUniqueId(2298); static constexpr const TSymbolUniqueId gl_PositionGS = TSymbolUniqueId(2298);
static constexpr const TSymbolUniqueId gl_ViewID_OVR = TSymbolUniqueId(2299);
}; // class BuiltInId }; // class BuiltInId
...@@ -3501,6 +3502,7 @@ const TVariable *gl_FragCoord(); ...@@ -3501,6 +3502,7 @@ const TVariable *gl_FragCoord();
const TVariable *gl_FragDepth(); const TVariable *gl_FragDepth();
const TVariable *gl_FrontFacing(); const TVariable *gl_FrontFacing();
const TVariable *gl_GlobalInvocationID(); const TVariable *gl_GlobalInvocationID();
const TVariable *gl_HelperInvocation();
const TVariable *gl_InstanceID(); const TVariable *gl_InstanceID();
const TVariable *gl_InstanceIndex(); const TVariable *gl_InstanceIndex();
const TVariable *gl_InvocationID(); const TVariable *gl_InvocationID();
......
...@@ -702,6 +702,7 @@ bool IsBuiltinFragmentInputVariable(TQualifier qualifier) ...@@ -702,6 +702,7 @@ bool IsBuiltinFragmentInputVariable(TQualifier qualifier)
case EvqFragCoord: case EvqFragCoord:
case EvqPointCoord: case EvqPointCoord:
case EvqFrontFacing: case EvqFrontFacing:
case EvqHelperInvocation:
return true; return true;
default: default:
break; break;
......
...@@ -154,6 +154,7 @@ void ShaderD3D::uncompile() ...@@ -154,6 +154,7 @@ void ShaderD3D::uncompile()
mUsesSecondaryColor = false; mUsesSecondaryColor = false;
mUsesFragCoord = false; mUsesFragCoord = false;
mUsesFrontFacing = false; mUsesFrontFacing = false;
mUsesHelperInvocation = false;
mUsesPointSize = false; mUsesPointSize = false;
mUsesPointCoord = false; mUsesPointCoord = false;
mUsesDepthRange = false; mUsesDepthRange = false;
...@@ -277,10 +278,12 @@ std::shared_ptr<WaitableCompileEvent> ShaderD3D::compile(const gl::Context *cont ...@@ -277,10 +278,12 @@ std::shared_ptr<WaitableCompileEvent> ShaderD3D::compile(const gl::Context *cont
mUsesSecondaryColor = translatedSource.find("GL_USES_SECONDARY_COLOR") != std::string::npos; mUsesSecondaryColor = translatedSource.find("GL_USES_SECONDARY_COLOR") != std::string::npos;
mUsesFragCoord = translatedSource.find("GL_USES_FRAG_COORD") != std::string::npos; mUsesFragCoord = translatedSource.find("GL_USES_FRAG_COORD") != std::string::npos;
mUsesFrontFacing = translatedSource.find("GL_USES_FRONT_FACING") != std::string::npos; mUsesFrontFacing = translatedSource.find("GL_USES_FRONT_FACING") != std::string::npos;
mUsesPointSize = translatedSource.find("GL_USES_POINT_SIZE") != std::string::npos; mUsesHelperInvocation =
mUsesPointCoord = translatedSource.find("GL_USES_POINT_COORD") != std::string::npos; translatedSource.find("GL_USES_HELPER_INVOCATION") != std::string::npos;
mUsesDepthRange = translatedSource.find("GL_USES_DEPTH_RANGE") != std::string::npos; mUsesPointSize = translatedSource.find("GL_USES_POINT_SIZE") != std::string::npos;
mUsesFragDepth = translatedSource.find("GL_USES_FRAG_DEPTH") != std::string::npos; mUsesPointCoord = translatedSource.find("GL_USES_POINT_COORD") != std::string::npos;
mUsesDepthRange = translatedSource.find("GL_USES_DEPTH_RANGE") != std::string::npos;
mUsesFragDepth = translatedSource.find("GL_USES_FRAG_DEPTH") != std::string::npos;
mHasANGLEMultiviewEnabled = mHasANGLEMultiviewEnabled =
translatedSource.find("GL_ANGLE_MULTIVIEW_ENABLED") != std::string::npos; translatedSource.find("GL_ANGLE_MULTIVIEW_ENABLED") != std::string::npos;
mUsesVertexID = translatedSource.find("GL_USES_VERTEX_ID") != std::string::npos; mUsesVertexID = translatedSource.find("GL_USES_VERTEX_ID") != std::string::npos;
......
...@@ -68,6 +68,7 @@ class ShaderD3D : public ShaderImpl ...@@ -68,6 +68,7 @@ class ShaderD3D : public ShaderImpl
bool usesSecondaryColor() const { return mUsesSecondaryColor; } bool usesSecondaryColor() const { return mUsesSecondaryColor; }
bool usesFragCoord() const { return mUsesFragCoord; } bool usesFragCoord() const { return mUsesFragCoord; }
bool usesFrontFacing() const { return mUsesFrontFacing; } bool usesFrontFacing() const { return mUsesFrontFacing; }
bool usesHelperInvocation() const { return mUsesHelperInvocation; }
bool usesPointSize() const { return mUsesPointSize; } bool usesPointSize() const { return mUsesPointSize; }
bool usesPointCoord() const { return mUsesPointCoord; } bool usesPointCoord() const { return mUsesPointCoord; }
bool usesDepthRange() const { return mUsesDepthRange; } bool usesDepthRange() const { return mUsesDepthRange; }
...@@ -85,6 +86,7 @@ class ShaderD3D : public ShaderImpl ...@@ -85,6 +86,7 @@ class ShaderD3D : public ShaderImpl
bool mUsesSecondaryColor; bool mUsesSecondaryColor;
bool mUsesFragCoord; bool mUsesFragCoord;
bool mUsesFrontFacing; bool mUsesFrontFacing;
bool mUsesHelperInvocation;
bool mUsesPointSize; bool mUsesPointSize;
bool mUsesPointCoord; bool mUsesPointCoord;
bool mUsesDepthRange; bool mUsesDepthRange;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
// D3D9 D3D11 OPENGL GLES VULKAN // D3D9 D3D11 OPENGL GLES VULKAN
// NEXUS5X PIXEL2ORXL // NEXUS5X PIXEL2ORXL
// QUADROP400 // QUADROP400
// SWIFTSHADER
// //
// //
// TEST_NAME can be a specific test name, or have a '*' in the end, which // TEST_NAME can be a specific test name, or have a '*' in the end, which
...@@ -547,7 +548,6 @@ ...@@ -547,7 +548,6 @@
1442 D3D11 : dEQP-GLES31.functional.shaders.opaque_type_indexing.* = FAIL 1442 D3D11 : dEQP-GLES31.functional.shaders.opaque_type_indexing.* = FAIL
// OpenGL/D3D11/Vulkan Failing Tests // OpenGL/D3D11/Vulkan Failing Tests
4110 : dEQP-GLES31.functional.shaders.helper_invocation.* = FAIL
1442 : dEQP-GLES31.functional.state_query.integer.program_pipeline_binding_* = FAIL 1442 : dEQP-GLES31.functional.state_query.integer.program_pipeline_binding_* = FAIL
1442 : dEQP-GLES31.functional.state_query.program.program_separable_get_programiv = FAIL 1442 : dEQP-GLES31.functional.state_query.program.program_separable_get_programiv = FAIL
1442 : dEQP-GLES31.functional.state_query.program_pipeline.* = FAIL 1442 : dEQP-GLES31.functional.state_query.program_pipeline.* = FAIL
...@@ -582,6 +582,23 @@ ...@@ -582,6 +582,23 @@
1729 D3D11 : dEQP-GLES31.functional.state_query.program.active_atomic_counter_buffers_get_programiv = SKIP 1729 D3D11 : dEQP-GLES31.functional.state_query.program.active_atomic_counter_buffers_get_programiv = SKIP
// Vulkan Android failures // Vulkan Android failures
4110 ANDROID VULKAN : dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_fwidth = FAIL
4110 ANDROID VULKAN : dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdy = FAIL
4110 ANDROID VULKAN : dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdx = FAIL
4110 ANDROID VULKAN : dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_max_samples_dfdy = FAIL
4110 ANDROID VULKAN : dEQP-GLES31.functional.shaders.helper_invocation.value.lines_8_samples = FAIL
4110 ANDROID VULKAN : dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_max_samples = FAIL
4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.value.lines_8_samples = FAIL
4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.value.points_8_samples = FAIL
4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.value.triangles_max_samples = FAIL
4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_8_samples_dfdy = FAIL
4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_dfdx = FAIL
4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.lines_8_samples_fwidth = FAIL
4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_lines_8_samples_dfdy = FAIL
4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_dfdx = FAIL
4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.points_8_samples_fwidth = FAIL
4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.wide_points_8_samples_dfdy = FAIL
4110 SWIFTSHADER : dEQP-GLES31.functional.shaders.helper_invocation.derivate.triangles_max_samples_dfdx = FAIL
// Debug failures that occur on Android: // Debug failures that occur on Android:
3590 VULKAN ANDROID : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texparameterf = FAIL 3590 VULKAN ANDROID : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texparameterf = 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