Centralize renderer limitations for non-conformant renderers
Some renderer configurations (e.g. D3D11 Feature Level 9_3) have
some limitations and aren't quite conformant. This change
generates errors when applications hit these limitations, and
informs developers that they must work around them.
BUG=angleproject:1055
Change-Id: I6a4a9e5cc71288ca366a54c769ca0eb82e79a7f7
Reviewed-on: https://chromium-review.googlesource.com/282814
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index b21c7ee..2a24990 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -1389,6 +1389,11 @@
return mExtensions;
}
+const Limitations &Context::getLimitations() const
+{
+ return mLimitations;
+}
+
void Context::detachTexture(GLuint texture)
{
// Simple pass-through to State's detachTexture method, as textures do not require
@@ -1605,6 +1610,8 @@
mExtensions = mRenderer->getRendererExtensions();
+ mLimitations = mRenderer->getRendererLimitations();
+
if (clientVersion < 3)
{
// Disable ES3+ extensions