Inline ValidateBindTexture.
Tiny speed improvement in the perf test.
Bug: angleproject:3117
Change-Id: Ie2892772da4808615b2a810ff523602894440b64
Reviewed-on: https://chromium-review.googlesource.com/c/1350490
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/validationES2.cpp b/src/libANGLE/validationES2.cpp
index 7db8afd..c6fdbaf 100644
--- a/src/libANGLE/validationES2.cpp
+++ b/src/libANGLE/validationES2.cpp
@@ -1111,45 +1111,6 @@
return false;
}
-
-void RecordBindTextureTypeError(Context *context, TextureType target)
-{
- ASSERT(!context->getStateCache().isValidBindTextureType(target));
-
- switch (target)
- {
- case TextureType::Rectangle:
- ASSERT(!context->getExtensions().textureRectangle);
- context->validationError(GL_INVALID_ENUM, kTextureRectangleNotSupported);
- break;
-
- case TextureType::_3D:
- case TextureType::_2DArray:
- ASSERT(context->getClientMajorVersion() < 3);
- context->validationError(GL_INVALID_ENUM, kES3Required);
- break;
-
- case TextureType::_2DMultisample:
- ASSERT(context->getClientVersion() < Version(3, 1) &&
- !context->getExtensions().textureMultisample);
- context->validationError(GL_INVALID_ENUM, kMultisampleTextureExtensionOrES31Required);
- break;
-
- case TextureType::_2DMultisampleArray:
- ASSERT(!context->getExtensions().textureStorageMultisample2DArray);
- context->validationError(GL_INVALID_ENUM, kMultisampleArrayExtensionRequired);
- break;
-
- case TextureType::External:
- ASSERT(!context->getExtensions().eglImageExternal &&
- !context->getExtensions().eglStreamConsumerExternal);
- context->validationError(GL_INVALID_ENUM, kExternalTextureNotSupported);
- break;
-
- default:
- context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget);
- }
-}
} // anonymous namespace
bool ValidateES2TexImageParameters(Context *context,
@@ -3073,36 +3034,6 @@
return ValidateFlushMappedBufferRangeBase(context, target, offset, length);
}
-bool ValidateBindTexture(Context *context, TextureType target, GLuint texture)
-{
- if (!context->getStateCache().isValidBindTextureType(target))
- {
- RecordBindTextureTypeError(context, target);
- return false;
- }
-
- if (texture == 0)
- {
- return true;
- }
-
- Texture *textureObject = context->getTexture(texture);
- if (textureObject && textureObject->getType() != target)
- {
- context->validationError(GL_INVALID_OPERATION, kTypeMismatch);
- return false;
- }
-
- if (!context->getState().isBindGeneratesResourceEnabled() &&
- !context->isTextureGenerated(texture))
- {
- context->validationError(GL_INVALID_OPERATION, kObjectNotGenerated);
- return false;
- }
-
- return true;
-}
-
bool ValidateBindUniformLocationCHROMIUM(Context *context,
GLuint program,
GLint location,
@@ -6654,4 +6585,43 @@
return true;
}
+void RecordBindTextureTypeError(Context *context, TextureType target)
+{
+ ASSERT(!context->getStateCache().isValidBindTextureType(target));
+
+ switch (target)
+ {
+ case TextureType::Rectangle:
+ ASSERT(!context->getExtensions().textureRectangle);
+ context->validationError(GL_INVALID_ENUM, kTextureRectangleNotSupported);
+ break;
+
+ case TextureType::_3D:
+ case TextureType::_2DArray:
+ ASSERT(context->getClientMajorVersion() < 3);
+ context->validationError(GL_INVALID_ENUM, kES3Required);
+ break;
+
+ case TextureType::_2DMultisample:
+ ASSERT(context->getClientVersion() < Version(3, 1) &&
+ !context->getExtensions().textureMultisample);
+ context->validationError(GL_INVALID_ENUM, kMultisampleTextureExtensionOrES31Required);
+ break;
+
+ case TextureType::_2DMultisampleArray:
+ ASSERT(!context->getExtensions().textureStorageMultisample2DArray);
+ context->validationError(GL_INVALID_ENUM, kMultisampleArrayExtensionRequired);
+ break;
+
+ case TextureType::External:
+ ASSERT(!context->getExtensions().eglImageExternal &&
+ !context->getExtensions().eglStreamConsumerExternal);
+ context->validationError(GL_INVALID_ENUM, kExternalTextureNotSupported);
+ break;
+
+ default:
+ context->validationError(GL_INVALID_ENUM, kInvalidTextureTarget);
+ }
+}
+
} // namespace gl