Implement EXT_discard_framebuffer for the GL backend.
BUG=angleproject:1634
Change-Id: I3822b99b59d4653e4d9a2c1d3dd16734f2050fae
Reviewed-on: https://chromium-review.googlesource.com/414437
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/libANGLE/renderer/gl/FunctionsGL.cpp b/src/libANGLE/renderer/gl/FunctionsGL.cpp
index fcbf211..985ca94 100644
--- a/src/libANGLE/renderer/gl/FunctionsGL.cpp
+++ b/src/libANGLE/renderer/gl/FunctionsGL.cpp
@@ -788,7 +788,8 @@
blendBarrier(nullptr),
primitiveBoundingBox(nullptr),
eglImageTargetRenderbufferStorageOES(nullptr),
- eglImageTargetTexture2DOES(nullptr)
+ eglImageTargetTexture2DOES(nullptr),
+ discardFramebuffer(nullptr)
{
}
@@ -1029,6 +1030,14 @@
// GL_KHR_robustness
AssignGLExtensionEntryPoint(extensions, "GL_KHR_robustness", loadProcAddress("glGetGraphicsResetStatus"), &getGraphicsResetStatus);
+ // GL_ARB_invalidate_subdata
+ AssignGLExtensionEntryPoint(extensions, "GL_ARB_invalidate_subdata", loadProcAddress("glInvalidateTexSubImage"), &invalidateTexSubImage);
+ AssignGLExtensionEntryPoint(extensions, "GL_ARB_invalidate_subdata", loadProcAddress("glInvalidateTexImage"), &invalidateTexImage);
+ AssignGLExtensionEntryPoint(extensions, "GL_ARB_invalidate_subdata", loadProcAddress("glInvalidateBufferSubData"), &invalidateBufferSubData);
+ AssignGLExtensionEntryPoint(extensions, "GL_ARB_invalidate_subdata", loadProcAddress("glInvalidateBufferData"), &invalidateBufferData);
+ AssignGLExtensionEntryPoint(extensions, "GL_ARB_invalidate_subdata", loadProcAddress("glInvalidateFramebuffer"), &invalidateFramebuffer);
+ AssignGLExtensionEntryPoint(extensions, "GL_ARB_invalidate_subdata", loadProcAddress("glInvalidateSubFramebuffer"), &invalidateSubFramebuffer);
+
// 1.0
if (isAtLeastGL(gl::Version(1, 0)))
{
@@ -1897,6 +1906,9 @@
// GL_KHR_robustness
AssignGLExtensionEntryPoint(extensions, "GL_KHR_robustness", loadProcAddress("glGetGraphicsResetStatusKHR"), &getGraphicsResetStatus);
+ // GL_EXT_discard_framebuffer
+ AssignGLExtensionEntryPoint(extensions, "GL_EXT_discard_framebuffer", loadProcAddress("glDiscardFramebufferEXT"), &discardFramebuffer);
+
// 2.0
if (isAtLeastGLES(gl::Version(2, 0)))
{