Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(214)

Unified Diff: ui/gl/gl_bindings_autogen_egl.cc

Issue 2109803003: Add support for EXT_image_flush_external extension (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add support for EXT_image_flush_external extension Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/gl/gl_bindings_autogen_egl.h ('k') | ui/gl/gl_image.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gl/gl_bindings_autogen_egl.cc
diff --git a/ui/gl/gl_bindings_autogen_egl.cc b/ui/gl/gl_bindings_autogen_egl.cc
index bc748883080a55a85449e568ecad7ae25c981dd1..ed91c834ab88dd19d4a78345d726c5c017ff34c5 100644
--- a/ui/gl/gl_bindings_autogen_egl.cc
+++ b/ui/gl/gl_bindings_autogen_egl.cc
@@ -78,6 +78,7 @@ void DriverEGL::InitializeStaticBindings() {
fn.eglGetSyncAttribKHRFn = reinterpret_cast<eglGetSyncAttribKHRProc>(
GetGLProcAddress("eglGetSyncAttribKHR"));
fn.eglGetSyncValuesCHROMIUMFn = 0;
+ fn.eglImageFlushExternalEXTFn = 0;
fn.eglInitializeFn =
reinterpret_cast<eglInitializeProc>(GetGLProcAddress("eglInitialize"));
fn.eglMakeCurrentFn =
@@ -152,6 +153,8 @@ void DriverEGL::InitializeExtensionBindings() {
std::string::npos;
ext.b_EGL_CHROMIUM_sync_control =
extensions.find("EGL_CHROMIUM_sync_control ") != std::string::npos;
+ ext.b_EGL_EXT_image_flush_external =
+ extensions.find("EGL_EXT_image_flush_external ") != std::string::npos;
ext.b_EGL_KHR_fence_sync =
extensions.find("EGL_KHR_fence_sync ") != std::string::npos;
ext.b_EGL_KHR_gl_texture_2D_image =
@@ -216,6 +219,13 @@ void DriverEGL::InitializeExtensionBindings() {
GetGLProcAddress("eglGetSyncValuesCHROMIUM"));
}
+ debug_fn.eglImageFlushExternalEXTFn = 0;
+ if (ext.b_EGL_EXT_image_flush_external) {
+ fn.eglImageFlushExternalEXTFn =
+ reinterpret_cast<eglImageFlushExternalEXTProc>(
+ GetGLProcAddress("eglImageFlushExternalEXT"));
+ }
+
debug_fn.eglPostSubBufferNVFn = 0;
if (ext.b_EGL_NV_post_sub_buffer) {
fn.eglPostSubBufferNVFn = reinterpret_cast<eglPostSubBufferNVProc>(
@@ -681,6 +691,20 @@ Debug_eglGetSyncValuesCHROMIUM(EGLDisplay dpy,
return result;
}
+static EGLBoolean GL_BINDING_CALL
+Debug_eglImageFlushExternalEXT(EGLDisplay dpy,
+ EGLImageKHR image,
+ const EGLAttrib* attrib_list) {
+ GL_SERVICE_LOG("eglImageFlushExternalEXT"
+ << "(" << dpy << ", " << image << ", "
+ << static_cast<const void*>(attrib_list) << ")");
+ DCHECK(g_driver_egl.debug_fn.eglImageFlushExternalEXTFn != nullptr);
+ EGLBoolean result =
+ g_driver_egl.debug_fn.eglImageFlushExternalEXTFn(dpy, image, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
static EGLBoolean GL_BINDING_CALL Debug_eglInitialize(EGLDisplay dpy,
EGLint* major,
EGLint* minor) {
@@ -1128,6 +1152,10 @@ void DriverEGL::InitializeDebugBindings() {
debug_fn.eglGetSyncValuesCHROMIUMFn = fn.eglGetSyncValuesCHROMIUMFn;
fn.eglGetSyncValuesCHROMIUMFn = Debug_eglGetSyncValuesCHROMIUM;
}
+ if (!debug_fn.eglImageFlushExternalEXTFn) {
+ debug_fn.eglImageFlushExternalEXTFn = fn.eglImageFlushExternalEXTFn;
+ fn.eglImageFlushExternalEXTFn = Debug_eglImageFlushExternalEXT;
+ }
if (!debug_fn.eglInitializeFn) {
debug_fn.eglInitializeFn = fn.eglInitializeFn;
fn.eglInitializeFn = Debug_eglInitialize;
@@ -1424,6 +1452,13 @@ EGLBoolean EGLApiBase::eglGetSyncValuesCHROMIUMFn(EGLDisplay dpy,
return driver_->fn.eglGetSyncValuesCHROMIUMFn(dpy, surface, ust, msc, sbc);
}
+EGLBoolean EGLApiBase::eglImageFlushExternalEXTFn(
+ EGLDisplay dpy,
+ EGLImageKHR image,
+ const EGLAttrib* attrib_list) {
+ return driver_->fn.eglImageFlushExternalEXTFn(dpy, image, attrib_list);
+}
+
EGLBoolean EGLApiBase::eglInitializeFn(EGLDisplay dpy,
EGLint* major,
EGLint* minor) {
@@ -1789,6 +1824,14 @@ EGLBoolean TraceEGLApi::eglGetSyncValuesCHROMIUMFn(EGLDisplay dpy,
return egl_api_->eglGetSyncValuesCHROMIUMFn(dpy, surface, ust, msc, sbc);
}
+EGLBoolean TraceEGLApi::eglImageFlushExternalEXTFn(
+ EGLDisplay dpy,
+ EGLImageKHR image,
+ const EGLAttrib* attrib_list) {
+ TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::eglImageFlushExternalEXT")
+ return egl_api_->eglImageFlushExternalEXTFn(dpy, image, attrib_list);
+}
+
EGLBoolean TraceEGLApi::eglInitializeFn(EGLDisplay dpy,
EGLint* major,
EGLint* minor) {
« no previous file with comments | « ui/gl/gl_bindings_autogen_egl.h ('k') | ui/gl/gl_image.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698