From aaf421c465794c02f86ee2929f330a8b7206199b Mon Sep 17 00:00:00 2001 From: Jamie Gennis Date: Thu, 20 Sep 2012 13:55:24 -0700 Subject: [PATCH] Add a spec for EGL_ANDROID_framebuffer_target. This change adds a new extension for EGL implementations to indicate the EGLConfigs that support use as a HWComposer framebuffer target layer. Change-Id: Ia7c8fbe8da09d57b4ec8bf1d9ddb67ca21aa2885 --- .../specs/EGL_ANDROID_framebuffer_target.txt | 102 ++++++++++++++++++ opengl/specs/README | 11 +- 2 files changed, 108 insertions(+), 5 deletions(-) create mode 100644 opengl/specs/EGL_ANDROID_framebuffer_target.txt diff --git a/opengl/specs/EGL_ANDROID_framebuffer_target.txt b/opengl/specs/EGL_ANDROID_framebuffer_target.txt new file mode 100644 index 000000000..273414c5e --- /dev/null +++ b/opengl/specs/EGL_ANDROID_framebuffer_target.txt @@ -0,0 +1,102 @@ +Name + + ANDROID_framebuffer_target + +Name Strings + + EGL_ANDROID_framebuffer_target + +Contributors + + Jamie Gennis + +Contact + + Jamie Gennis, Google Inc. (jgennis 'at' google.com) + +Status + + Draft. + +Version + + Version 1, September 20, 2012 + +Number + + EGL Extension #XXX + +Dependencies + + Requires EGL 1.0 + + This extension is written against the wording of the EGL 1.4 Specification + +Overview + + Android supports a number of different ANativeWindow implementations that + can be used to create an EGLSurface. One implementation, which is used to + send the result of performing window composition to a display, may have + some device-specific restrictions. Because of this, some EGLConfigs may + be incompatible with these ANativeWindows. This extension introduces a + new boolean EGLConfig attribute that indicates whether the EGLConfig + supports rendering to an ANativeWindow for which the buffers are passed to + the HWComposer HAL as a framebuffer target layer. + +New Types + + None. + +New Procedures and Functions + + None. + +New Tokens + + Accepted by the parameter of eglGetConfigAttrib and + the parameter of eglChooseConfig: + + EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147 + +Changes to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors) + + Section 3.4, Configuration Management, add a row to Table 3.1. + + Attribute Type Notes + ------------------------------ ------- --------------------------- + EGL_FRAMEBUFFER_TARGET_ANDROID boolean whether use as a HWComposer + framebuffer target layer is + supported + + Section 3.4, Configuration Management, add a row to Table 3.4. + + Attribute Default Selection Sort Sort + Criteria Order Priority + ------------------------------ ------------- --------- ----- -------- + EGL_FRAMEBUFFER_TARGET_ANDROID EGL_DONT_CARE Exact None + + Section 3.4, Configuration Management, add a paragraph at the end of the + subsection titled Other EGLConfig Attribute Descriptions. + + EGL_FRAMEBUFFER_TARGET_ANDROID is a boolean indicating whether the + config may be used to create an EGLSurface from an ANativeWindow for + which the buffers are to be passed to HWComposer as a framebuffer + target layer. + + Section 3.4.1, Querying Configurations, change the last paragraph as follow + + EGLConfigs are not sorted with respect to the parameters + EGL_BIND_TO_TEXTURE_RGB, EGL_BIND_TO_TEXTURE_RGBA, EGL_CONFORMANT, + EGL_LEVEL, EGL_NATIVE_RENDERABLE, EGL_MAX_SWAP_INTERVAL, + EGL_MIN_SWAP_INTERVAL, EGL_RENDERABLE_TYPE, EGL_SURFACE_TYPE, + EGL_TRANSPARENT_TYPE, EGL_TRANSPARENT_RED_VALUE, + EGL_TRANSPARENT_GREEN_VALUE, EGL_TRANSPARENT_BLUE_VALUE, and + EGL_RECORDABLE_ANDROID. + +Issues + + +Revision History + +#1 (Jamie Gennis, September 20, 2012) + - Initial draft. diff --git a/opengl/specs/README b/opengl/specs/README index af3f1657f..eb8686926 100644 --- a/opengl/specs/README +++ b/opengl/specs/README @@ -8,9 +8,10 @@ for use by Android extensions. ---------------- ---------------------------------- 0x3140 EGL_ANDROID_image_native_buffer 0x3141 (unused) -0x3142 EGL_ANDROID_recordable +0x3142 EGL_RECORDABLE_ANDROID (EGL_ANDROID_recordable) 0x3143 EGL_VERSION_HW_ANDROID (internal use) -0x3144 EGL_SYNC_ANDROID_FENCE_ANDROID -0x3145 EGL_SYNC_FENCE_FD_ANDROID -0x3146 EGL_SYNC_ANDROID_FENCE_SIGNALED_ANDROID -0x3147 - 0x314F (unused) +0x3144 EGL_SYNC_NATIVE_FENCE_ANDROID (EGL_ANDROID_native_fence_sync) +0x3145 EGL_SYNC_NATIVE_FENCE_FD_ANDROID (EGL_ANDROID_native_fence_sync) +0x3146 EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID (EGL_ANDROID_native_fence_sync) +0x3147 EGL_FRAMEBUFFER_TARGET_ANDROID (EGL_ANDROID_framebuffer_target) +0x3148 - 0x314F (unused)