diff options
author | 2020-08-12 15:03:23 -0700 | |
---|---|---|
committer | 2020-08-12 15:56:42 -0700 | |
commit | 0378f4d89772b6cb7824c0abb2fc6600d7a27325 (patch) | |
tree | 482923fa9e6127dfc19d87b5217021a193a1cd8e | |
parent | 249afbf18dbb611b3e02f81db1b0ec0a5bf6e92d (diff) |
Expose EGL_ANDROID_native_fence_sync to the applications
This change also sorts the global extension lists in alphabetical order.
Bug: 157518032
Test: build, compile, boot
Test: EGL_ANDROID_native_fence_sync in RenderEngine dump
Change-Id: I6614b9532daf7747fcadbe38744d5293cf8198b4
-rw-r--r-- | libs/gui/SyncFeatures.cpp | 6 | ||||
-rw-r--r-- | libs/renderengine/gl/GLESRenderEngine.cpp | 10 | ||||
-rw-r--r-- | opengl/libs/EGL/egl_platform_entries.cpp | 67 |
3 files changed, 40 insertions, 43 deletions
diff --git a/libs/gui/SyncFeatures.cpp b/libs/gui/SyncFeatures.cpp index fcae05c8ad..8df6e81596 100644 --- a/libs/gui/SyncFeatures.cpp +++ b/libs/gui/SyncFeatures.cpp @@ -27,8 +27,6 @@ #include <private/gui/SyncFeatures.h> -extern "C" EGLAPI const char* eglQueryStringImplementationANDROID(EGLDisplay dpy, EGLint name); - namespace android { ANDROID_SINGLETON_STATIC_INSTANCE(SyncFeatures); @@ -40,8 +38,8 @@ SyncFeatures::SyncFeatures() : Singleton<SyncFeatures>(), EGLDisplay dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY); // This can only be called after EGL has been initialized; otherwise the // check below will abort. - const char* exts = eglQueryStringImplementationANDROID(dpy, EGL_EXTENSIONS); - LOG_ALWAYS_FATAL_IF(exts == nullptr, "eglQueryStringImplementationANDROID failed"); + const char* exts = eglQueryString(dpy, EGL_EXTENSIONS); + LOG_ALWAYS_FATAL_IF(exts == nullptr, "eglQueryString failed"); if (strstr(exts, "EGL_ANDROID_native_fence_sync")) { // This makes GLConsumer use the EGL_ANDROID_native_fence_sync // extension to create Android native fences to signal when all diff --git a/libs/renderengine/gl/GLESRenderEngine.cpp b/libs/renderengine/gl/GLESRenderEngine.cpp index 6b1884874a..79c3654ebd 100644 --- a/libs/renderengine/gl/GLESRenderEngine.cpp +++ b/libs/renderengine/gl/GLESRenderEngine.cpp @@ -51,8 +51,6 @@ #include "ProgramCache.h" #include "filters/BlurFilter.h" -extern "C" EGLAPI const char* eglQueryStringImplementationANDROID(EGLDisplay dpy, EGLint name); - bool checkGlError(const char* op, int lineNumber) { bool errorFound = false; GLint error = glGetError(); @@ -208,16 +206,16 @@ std::unique_ptr<GLESRenderEngine> GLESRenderEngine::create(const RenderEngineCre LOG_ALWAYS_FATAL("failed to initialize EGL"); } - const auto eglVersion = eglQueryStringImplementationANDROID(display, EGL_VERSION); + const auto eglVersion = eglQueryString(display, EGL_VERSION); if (!eglVersion) { checkGlError(__FUNCTION__, __LINE__); - LOG_ALWAYS_FATAL("eglQueryStringImplementationANDROID(EGL_VERSION) failed"); + LOG_ALWAYS_FATAL("eglQueryString(EGL_VERSION) failed"); } - const auto eglExtensions = eglQueryStringImplementationANDROID(display, EGL_EXTENSIONS); + const auto eglExtensions = eglQueryString(display, EGL_EXTENSIONS); if (!eglExtensions) { checkGlError(__FUNCTION__, __LINE__); - LOG_ALWAYS_FATAL("eglQueryStringImplementationANDROID(EGL_EXTENSIONS) failed"); + LOG_ALWAYS_FATAL("eglQueryString(EGL_EXTENSIONS) failed"); } GLExtensions& extensions = GLExtensions::getInstance(); diff --git a/opengl/libs/EGL/egl_platform_entries.cpp b/opengl/libs/EGL/egl_platform_entries.cpp index 1119e4abdc..12b9e67545 100644 --- a/opengl/libs/EGL/egl_platform_entries.cpp +++ b/opengl/libs/EGL/egl_platform_entries.cpp @@ -82,66 +82,67 @@ extern char const * const gExtensionString; // clang-format off // Extensions implemented by the EGL wrapper. char const * const gBuiltinExtensionString = - "EGL_KHR_get_all_proc_addresses " - "EGL_ANDROID_presentation_time " - "EGL_KHR_swap_buffers_with_damage " - "EGL_ANDROID_get_native_client_buffer " "EGL_ANDROID_front_buffer_auto_refresh " "EGL_ANDROID_get_frame_timestamps " - "EGL_EXT_surface_SMPTE2086_metadata " + "EGL_ANDROID_get_native_client_buffer " + "EGL_ANDROID_presentation_time " "EGL_EXT_surface_CTA861_3_metadata " + "EGL_EXT_surface_SMPTE2086_metadata " + "EGL_KHR_get_all_proc_addresses " + "EGL_KHR_swap_buffers_with_damage " ; // Allowed list of extensions exposed to applications if implemented in the vendor driver. char const * const gExtensionString = - "EGL_KHR_image " // mandatory - "EGL_KHR_image_base " // mandatory + "EGL_ANDROID_image_native_buffer " // mandatory + "EGL_ANDROID_native_fence_sync " // strongly recommended + "EGL_ANDROID_recordable " // mandatory + "EGL_EXT_buffer_age " // strongly recommended with partial_update + "EGL_EXT_create_context_robustness " "EGL_EXT_image_gl_colorspace " - "EGL_KHR_image_pixmap " - "EGL_KHR_lock_surface " + "EGL_EXT_pixel_format_float " + "EGL_EXT_protected_content " + "EGL_EXT_yuv_surface " + "EGL_IMG_context_priority " + "EGL_KHR_config_attribs " + "EGL_KHR_create_context " + "EGL_KHR_create_context_no_error " + "EGL_KHR_fence_sync " "EGL_KHR_gl_colorspace " + "EGL_KHR_gl_renderbuffer_image " "EGL_KHR_gl_texture_2D_image " "EGL_KHR_gl_texture_3D_image " "EGL_KHR_gl_texture_cubemap_image " - "EGL_KHR_gl_renderbuffer_image " + "EGL_KHR_image " // mandatory + "EGL_KHR_image_base " // mandatory + "EGL_KHR_image_pixmap " + "EGL_KHR_lock_surface " + "EGL_KHR_mutable_render_buffer " + "EGL_KHR_no_config_context " + "EGL_KHR_partial_update " // strongly recommended "EGL_KHR_reusable_sync " - "EGL_KHR_fence_sync " - "EGL_KHR_create_context " - "EGL_KHR_config_attribs " - "EGL_KHR_surfaceless_context " "EGL_KHR_stream " - "EGL_KHR_stream_fifo " - "EGL_KHR_stream_producer_eglsurface " "EGL_KHR_stream_consumer_gltexture " "EGL_KHR_stream_cross_process_fd " - "EGL_EXT_create_context_robustness " - "EGL_NV_system_time " - "EGL_ANDROID_image_native_buffer " // mandatory + "EGL_KHR_stream_fifo " + "EGL_KHR_stream_producer_eglsurface " + "EGL_KHR_surfaceless_context " "EGL_KHR_wait_sync " // strongly recommended - "EGL_ANDROID_recordable " // mandatory - "EGL_KHR_partial_update " // strongly recommended - "EGL_EXT_pixel_format_float " - "EGL_EXT_buffer_age " // strongly recommended with partial_update - "EGL_KHR_create_context_no_error " - "EGL_KHR_mutable_render_buffer " - "EGL_EXT_yuv_surface " - "EGL_EXT_protected_content " - "EGL_IMG_context_priority " - "EGL_KHR_no_config_context " + "EGL_NV_system_time " ; char const * const gClientExtensionString = + "EGL_ANDROID_GLES_layers " + "EGL_ANGLE_platform_angle " "EGL_EXT_client_extensions " "EGL_KHR_platform_android " - "EGL_ANGLE_platform_angle " - "EGL_ANDROID_GLES_layers"; + ; // clang-format on // extensions not exposed to applications but used by the ANDROID system // "EGL_ANDROID_blob_cache " // strongly recommended -// "EGL_IMG_hibernate_process " // optional -// "EGL_ANDROID_native_fence_sync " // strongly recommended // "EGL_ANDROID_framebuffer_target " // mandatory for HWC 1.1 +// "EGL_IMG_hibernate_process " // optional /* * EGL Extensions entry-points exposed to 3rd party applications |