History log of /frameworks/native/opengl/libs/EGL/eglApi.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
000d88f02680607f45f600dde4e53ebe5b3895ab 01-Jul-2015 Season Li <seasonl@nvidia.com> Implement a number of KHR EGL extensions

Add following KHR EGL extensions:

EGL_KHR_gl_texture_3D_image
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

Change-Id: Ie7a35b5e3761e343cb71cf446cba77f67f604bdf
/frameworks/native/opengl/libs/EGL/eglApi.cpp
4f21a4cc22a94eeb65742fcbb0a8516624474fe5 01-Jul-2015 Amith Dsouza <amithds@google.com> Revert "Revert "Modify EGL to disconnect the window when the surface gets destroyed.""

This reverts commit 6e1a2fea67006b58e83ebbcc72f7b12f18c49d15.

Driver level issues fixed by an updated graphics driver.

Bug: 21266976
Change-Id: I93339fb6c6bab988f3550adb49ef8e70cda6473e
/frameworks/native/opengl/libs/EGL/eglApi.cpp
6e1a2fea67006b58e83ebbcc72f7b12f18c49d15 29-May-2015 Michael Lentine <mlentine@google.com> Revert "Modify EGL to disconnect the window when the surface gets destroyed."

This reverts commit 00699fa64197cc72a160d69e1f0003cdd43dc136.
/frameworks/native/opengl/libs/EGL/eglApi.cpp
51c8c502f63624af8090fe42477b95791faec2c9 14-May-2015 Michael Lentine <mlentine@google.com> Merge "Modify EGL to disconnect the window when the surface gets destroyed." into mnc-dev
00699fa64197cc72a160d69e1f0003cdd43dc136 23-Jul-2014 Michael Lentine <mlentine@google.com> Modify EGL to disconnect the window when the surface gets destroyed.

Bug: 14445579

Change-Id: I1d263ff6cffcb6e448761fca7ca4b06466ad65aa
/frameworks/native/opengl/libs/EGL/eglApi.cpp
408e59f63aaaba30fb6db1477e985025dda085cd 24-Apr-2015 Jesse Hall <jessehall@google.com> libEGL: whitelist the EGL_KHR_create_context_no_error extension

Allow EGL implementations to expose the
EGL_KHR_create_context_no_error extension if they wish.

https://www.khronos.org/registry/egl/extensions/KHR/EGL_KHR_create_context_no_error.txt

Change-Id: I3290ccc2a69a1fa0b00ec3f1aa4f876906c64bfb
/frameworks/native/opengl/libs/EGL/eglApi.cpp
a894d082cfee8d12ee5913163a34ec5dc521d005 20-Feb-2015 Dan Stoza <stoza@google.com> libEGL: Add wrappers for partial update functions

This adds EGL wrapper functions for the following EGL extensions:
EGL_EXT_buffer_age
EGL_KHR_partial_update
EGL_KHR_swap_buffers_with_damage

Change-Id: I407acda1e0310f7f01a5efe9c915721a941138a4
/frameworks/native/opengl/libs/EGL/eglApi.cpp
82c6bcc9705eabcaf5b9e45bc81867b0e2d61a02 20-Feb-2015 Eino-Ville Talvala <etalvala@google.com> DO NOT MERGE Add dataSpace to buffer queues; remove old format enums.

- Wire up new dataSpace parameter through buffer queue stack
- Update tests to include the parameter
- Switch eglApi to using dataSpace to indicate sRGB gamma/linear
difference
- Remove RAW_SENSOR in favor of RAW16
- Remove use of sRGB format enums
- Add default dataspace to buffer queue core
- Add query for default dataspace

Cherry pick of I070bd2e7c56506055c419004c29e2e3feac725df

Change-Id: I461952389c18051176c6b75e664f20ad369f5760
/frameworks/native/opengl/libs/EGL/eglApi.cpp
733a80754786d39cdc0fee09509b194472c320bc 12-Feb-2015 Alistair Strachan <alistair.strachan@imgtec.com> egl: Remove old tuna BGRA vs RGBA workaround.

Some time before kitkat, a workaround was put in place to keep tuna
working with obsolete PowerVR GPU drivers. The tuna product was dropped
in AOSP for kitkat, but the workaround remained.

There are still a number of devices shipping with OMAP4 processors, and
this workaround continues to be applied on those products even when it
is not required. The effect is that virtual display CTS will fail on
those devices.
/frameworks/native/opengl/libs/EGL/eglApi.cpp
45e2fc22261cb8ecac4901b4425bcb7352c71174 08-Aug-2014 Michael Lentine <mlentine@google.com> Revert "Modify EGL to disconnect the window when the surface gets destroyed."

This reverts commit 843cbb241da60ada234918a30cfe9a01a1e04187.
/frameworks/native/opengl/libs/EGL/eglApi.cpp
843cbb241da60ada234918a30cfe9a01a1e04187 23-Jul-2014 Michael Lentine <mlentine@google.com> Modify EGL to disconnect the window when the surface gets destroyed.

Bug: 14445579

Change-Id: I1d263ff6cffcb6e448761fca7ca4b06466ad65aa
/frameworks/native/opengl/libs/EGL/eglApi.cpp
1034cfc778e33e089422ae0212b1d116ec855a5a 21-Apr-2014 Jesse Hall <jessehall@google.com> am 43b3e600: am 3f0d5669: Merge "Expose core EGL entry points to eglGetProcAddress"

* commit '43b3e600c1a477697408b1cac4cbd40b0ad97d56':
Expose core EGL entry points to eglGetProcAddress
c0ec5e2333b6350480851b8b48f000c78ea3f88a 27-Jan-2014 Michael Chock <mchock@nvidia.com> Expose core EGL entry points to eglGetProcAddress

Required behavior for EGL_KHR_get_all_proc_addresses.

Change-Id: I1e6209ef3cb9f2fa6f22808b077c35139d4cb814
/frameworks/native/opengl/libs/EGL/eglApi.cpp
4864e85430d16cff00b6624d9de6c958d319c876 17-Jan-2014 Dan Stoza <stoza@google.com> Make libEGL build cleanly under 64-bit

Change-Id: I255dfb70b166b7469d59352b1acfc7aececa07de
/frameworks/native/opengl/libs/EGL/eglApi.cpp
c3289c41e794117817895653300bd2cf7daa0a01 17-Jan-2014 Dan Stoza <stoza@google.com> Make libEGL build cleanly under 64-bit

Change-Id: I255dfb70b166b7469d59352b1acfc7aececa07de
/frameworks/native/opengl/libs/EGL/eglApi.cpp
d566ce3a26ce781ecdbc479aaba0e172b7c807a9 08-Jan-2014 Andy McFadden <fadden@android.com> Improve error message

The previous message indicated that the fault was due to an already-
connected window, which was misleading at times.

Bug 12439318

Change-Id: I1e0a042673dd245d1b0d237af963c52946803eb6
/frameworks/native/opengl/libs/EGL/eglApi.cpp
dbe9245e2e362b12e184cd33b9a27b0901f81244 24-Sep-2013 Jamie Gennis <jgennis@google.com> GLConsumer: start using EGL_ANDROID_image_crop

This change makes GLConsumer use the EGL_ANDROID_image_crop extension when
available on a device. The crop rectangle is passed to the EGL driver when
creating EGLImages, allowing the crop to be performed by the driver rather than
using the texture transform matrix.

Bug: 10897141
Change-Id: I63e9a5d5c85067376abc420e3639154468346311
/frameworks/native/opengl/libs/EGL/eglApi.cpp
a2ba428a22125558a129c6ba4001dfc2169de2fe 15-Sep-2013 Jesse Hall <jessehall@google.com> Disable the egl_khr_gl_colorspace extension

Bug: 10777398
Change-Id: Ib50ea8b9d5d960537701b85929d6312304993a0f
/frameworks/native/opengl/libs/EGL/eglApi.cpp
63108c34ec181e923b68ee840bb7960f205466a7 06-Sep-2013 Mathias Agopian <mathias@google.com> fix a possible null dereference when eglMakeCurrent() fails

Bug: 10648797
Change-Id: Iee0be47f2646feb25de4ea199bbb9b707452916e
/frameworks/native/opengl/libs/EGL/eglApi.cpp
f4486c6ea4bcb728ee0f38df7a8ec75c389d9d2e 29-Aug-2013 Mathias Agopian <mathias@google.com> try to keep omap4 alive

Bug: 10527646
Change-Id: Iec572a910e932115cf4f2e1215142b10cd91bd6f
/frameworks/native/opengl/libs/EGL/eglApi.cpp
0f288fcc9c1b2d23b1cff2f5c59689aef76b77ae 22-Aug-2013 Mathias Agopian <mathias@google.com> only use format compatible with CPU consumers

EGL now picks the buffer format out of a small set
of formats compatible with CPU consumers instead of
using the EGL_NATIVE_VISUAL_ID.

Bug: 10194508
Change-Id: If423cd29601b7a3ace8670f4c73004132cfc4b31
/frameworks/native/opengl/libs/EGL/eglApi.cpp
bc2a90b024db82e3a277e5b366da17e00b21d98b 16-Aug-2013 Jesse Hall <jessehall@google.com> Replace sRGB_888 with sRGB_X_8888

Bug: 10357459
Change-Id: I3a1d92cce2c9d3e930408129fb20887276fffddc
/frameworks/native/opengl/libs/EGL/eglApi.cpp
c2e41222bf02a6579763974f82d65875cfa43481 08-Aug-2013 Jesse Hall <jessehall@google.com> Add support for EGL_KHR_gl_colorspace

Change-Id: I684d0b8556cd6c84ee4b4d67e1bb95c3b96fccfb
/frameworks/native/opengl/libs/EGL/eglApi.cpp
ea4fdd4beb83ab7019753a144d9afac6728dd3ee 13-Aug-2013 Jesse Hall <jessehall@google.com> Don't swallow eglCreateContext errors

If the implementation eglCreateContext failed, we called
eglGetError(), so we could check that it set the EGL error properly.
But since we'd already called this, when the app called eglGetError()
it would get EGL_SUCCESS!

Bug: 10181333
Change-Id: Ic45d3a8fcb8c4421e04844c6d2f52761790b5948
/frameworks/native/opengl/libs/EGL/eglApi.cpp
21558daf691dbcdff4a41e659fd013273db4d0b7 07-Aug-2013 Jesse Hall <jessehall@google.com> Add EGL_KHR_get_all_proc_addresses to extension string

We've had the extended behavior since Android 4.3, but the extension
hadn't been ratified by Khronos yet so we couldn't add it to the
extension string.

Bug: 9681677
Change-Id: I78842316a3ab7a3f66a0ac1a4742d837de664c4c
/frameworks/native/opengl/libs/EGL/eglApi.cpp
14fab7dd794cd6bf29e6425340683c6221062b3c 01-Aug-2013 Andy McFadden <fadden@android.com> Drop frames based on presentation timestamp

If there are two or more buffers pending that are ready for
immediate presentation, drop all but the last one.

Any code that didn't explicitly specify timestamps for buffers
was using the default value (auto-generated "now"). As a result,
surfaceflinger would drop frames whenever more than one buffer
was queued. We now use zero as the auto-generated timestamp,
and we don't set the timestamp in eglBeginFrame().

Change-Id: I187f42d33de227cd3411ff0dcd3b9ce1961457eb
/frameworks/native/opengl/libs/EGL/eglApi.cpp
ba3ed90b095dfd397aa252fb0234647d7cc5c8f9 17-Jul-2013 Jesse Hall <jessehall@google.com> am 082fc1ca: am ae961022: Merge "EGL: Fix error for eglCreateWindowSurface"

* commit '082fc1cae6a0c283de3ad0d848e0757de3154d0b':
EGL: Fix error for eglCreateWindowSurface
082fc1cae6a0c283de3ad0d848e0757de3154d0b 17-Jul-2013 Jesse Hall <jessehall@google.com> am ae961022: Merge "EGL: Fix error for eglCreateWindowSurface"

* commit 'ae9610220b5f509687b840532f95f3638ee0146b':
EGL: Fix error for eglCreateWindowSurface
77a9b4a6bd21188e2744ae9dcd8092c6837bff7c 17-Jul-2013 Jonathan Hamilton <jonathan.hamilton@imgtec.com> EGL: Fix error for eglCreateWindowSurface

The EGL 1.4 spec section 3.5.1 states that EGL_BAD_ALLOC should be set
if the supplied window already has an associated EGLSurface, not
EGL_BAD_NATIVE_WINDOW as is currently set.

Change-Id: If1598617f4e31904f2045560ae1cdf49d8a697dc
/frameworks/native/opengl/libs/EGL/eglApi.cpp
94cdba97ce1de140623d84c14fb15f12f7da89dd 11-Jul-2013 Jesse Hall <jessehall@google.com> resolved conflicts for merge of 5477d0e4 to master

Change-Id: I7ca75a44018a68bf3a7ac1de17a3ef568a48d2ac
5477d0e4e858df1ea9cb1b6965a160fb5fe23b57 09-Jul-2013 Jesse Hall <jessehall@google.com> am c07b5206: Find non-extension GLES wrappers in eglGetProcAddress

* commit 'c07b52060acd627c8510c1a9151e0753fce76330':
Find non-extension GLES wrappers in eglGetProcAddress
c07b52060acd627c8510c1a9151e0753fce76330 04-Jul-2013 Jesse Hall <jessehall@google.com> Find non-extension GLES wrappers in eglGetProcAddress

This allows apps to find OpenGL ES 3.0 functions using
eglGetProcAddress() instead of dlopen/dlsym.

Bug: 9681677
Change-Id: I7ce6e1636bc47d6b0bf20a4e46bd67235714d129
/frameworks/native/opengl/libs/EGL/eglApi.cpp
e0ea89ceef3b0fc5f3efc5d709a8156f0628c6c8 15-Jun-2013 Mathias Agopian <mathias@google.com> improve GLES jumptables

in the common case this saves one instructions per jump
(which will help with the i-cache).

this change also gets rid of the "use slow tls" option,
which was useless. So at least now architectures that don't have
assembly bindings will perform much better.

Change-Id: I31be6c06ad2136b50ef3a1ac14682d7812ad40d2
/frameworks/native/opengl/libs/EGL/eglApi.cpp
da22e6bf36a2a83efef83bd723714ea6af30f540 26-Jun-2013 Jean-Baptiste Queru <jbq@google.com> am db8c267e: am 3c0425cd: am 0ecf0b8d: Merge "Additional parameter validation for EGL functions"

* commit 'db8c267ec26997771eb718c29d3dacd4e738051b':
Additional parameter validation for EGL functions
3c0425cd95a7918d1dbfecf32aef3b238bf236a5 26-Jun-2013 Jean-Baptiste Queru <jbq@google.com> am 0ecf0b8d: Merge "Additional parameter validation for EGL functions"

* commit '0ecf0b8db74682222bf095a235e28edefff871a5':
Additional parameter validation for EGL functions
0ecf0b8db74682222bf095a235e28edefff871a5 26-Jun-2013 Jean-Baptiste Queru <jbq@google.com> Merge "Additional parameter validation for EGL functions"
4e620ddce344e946ced992f61a69c367ff92fe24 31-May-2013 Mathias Agopian <mathias@google.com> free EGL resources associated to a thread when it terminates

destroyed but current-to-a-thread resources are only destroyed
when they're made not-current; however, we were not destroying
those when the thread itself terminated, causing these resources
to be leaked forever.

we now install a tls-key destructor that takes care of this
by calling eglReleaseThread upon thread termination.

Bug: 9209776
Change-Id: I88298a34e3a27488eb81eab76717715569c7d57c
/frameworks/native/opengl/libs/EGL/eglApi.cpp
f6d1c3930eeba6b089ba12fb82ecad1c6622e550 26-Apr-2013 Jamie Gennis <jgennis@google.com> EGL: expose the EGL_KHR_create_context extension

Bug: 8616866
Change-Id: Ic60f9f21397a1760c552b6f141d5177d1cbaf1f8
/frameworks/native/opengl/libs/EGL/eglApi.cpp
ed6d08b70d775852f4827471814c83eba3606aaa 17-Apr-2013 Mathias Agopian <mathias@google.com> fix "traceGpuCompletion" debug feature

eglCreateSyncKHR requires a call to glFlush which we were not doing.
fixed by moving the code above eglSwapBuffers(), which both
fixes the problem and gives us a slightly better idea of when
the GPU is done drawing.

Change-Id: Ic826ef1fe25a6247742c3d49d0cb69f4031e3593
/frameworks/native/opengl/libs/EGL/eglApi.cpp
39c24a20bbc697630d2b92c251b70c04d6f9d00c 05-Apr-2013 Mathias Agopian <mathias@google.com> fix local include paths

Change-Id: Icb921fa796ec08612dbb2feb7e7161bcb0cf4a99
/frameworks/native/opengl/libs/EGL/eglApi.cpp
ca08833d5ea99130797e10ad68a651b50e99da74 29-Mar-2013 Mathias Agopian <mathias@google.com> don't use compile-time configuration of libgui as much as possible

We now detect at runtime which sync features to use, which
allows us to remove a lot of the compile-time configuration
options. There is still one option though, to disable
KHR_fence_sync on some devices (which are more efficient
without it).

- added a backdoor to get the vendor's EGL strings

the new logic is:
- use always ANDROID_native_fence_sync if available
- fallback to KHR_fence_sync if available and not disabled
by the compile-time option
- use KHR_wait_sync if available and either of the above is
enabled

Change-Id: I9c4b49d9ff1151faf902cc93bd53ea5f205aaabf
/frameworks/native/opengl/libs/EGL/eglApi.cpp
2bb716871cf8bfadfff1193ed798da3bffc1f8ec 28-Mar-2013 Mathias Agopian <mathias@google.com> replace eglWaitSyncANDROID by eglWaitSyncKHR

Change-Id: I22f1b3588011c88389e249f738f1e6915cc97e72
/frameworks/native/opengl/libs/EGL/eglApi.cpp
e9b3dfb7d5cc233747407381a51a081c335dc076 27-Mar-2013 Mathias Agopian <mathias@google.com> cleanup EGL extensions strings and entry-points

- move all the code related to EGL extensions in one place

- add missing extension strings:
EGL_KHR_lock_surface
EGL_KHR_reusable_sync

- add public extensions strings and entry-points
EGL_ANDROID_wait_sync
EGL_ANDROID_presentation_time

- add missing entry-points for EGL_KHR_reusable_sync

Change-Id: Ifd98966b549e8efd8ef5385eba0efde8c4cbc77b
/frameworks/native/opengl/libs/EGL/eglApi.cpp
7284145d564fa8a422a8e564a38c730fb4a2962b 02-Mar-2013 Andy McFadden <fadden@android.com> Add eglPresentationTimeANDROID

Added EGL extension to set a timestamp on a surface.

Also, fix JNI encoding of "long" in glgen.

Bug 8191230

Change-Id: I38b7334bade3f8ff02bffe600bb74469ef22c164
/frameworks/native/opengl/libs/EGL/eglApi.cpp
4774338bd0ad1ebe42c311fd0c72f13786b5c800 08-Feb-2013 Jesse Hall <jessehall@google.com> Add ES3 support to libGLESv2 and tracing tools

Since ES3 is backwards compatible with ES2, a new wrapper isn't
necessary, and the Khronos implementation guidelines recommend
supporting both versions with the same library.

Change-Id: If9bb02be60ce01cc5fe25d1f40c4e7f37244ebf6
/frameworks/native/opengl/libs/EGL/eglApi.cpp
519191670e37bdfa7f686fb3d3ee84fafe9ad0cb 01-Feb-2013 Jesse Hall <jessehall@google.com> am 873ab60e: am 75b83e4d: Merge "Gfx-3d: fix GetProcAddress in egl extention"

# By luliuhui
# Via Android Git Automerger (1) and others
* commit '873ab60e94811488caea1906eb98133329a3e28f':
Gfx-3d: fix GetProcAddress in egl extention
69d100762c7c26d8328f4bb61cfef026d3a69bbf 30-Aug-2012 luliuhui <liuhui.lu@intel.com> Gfx-3d: fix GetProcAddress in egl extention

This patch can fix issue when Proc address return NULL.
Glbench10, egl-ext and conformance test need this patch to run pass.

Change-Id: I275c7cb6f77cb334c3ee7fa23cd696bba1c5a458
Author: Liuhui Lu <liuhui.lu@intel.com>
Signed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 52622
/frameworks/native/opengl/libs/EGL/eglApi.cpp
a73a97728befb5ba5ad647ab3b60058c4d536ba4 18-Dec-2012 Siva Velusamy <vsiva@google.com> gltrace: Add support for tracing running applications.

Currently, to activate OpenGL tracing, an application has to be
start with --opengl-trace option (or have a debug prop set).

This CL adds support for tracing an application which may already
be running. This is implemented as follows:
- DDMS initiates a JDWP message to the VM indicating that
opengl traces be enabled.
- When that message is received, a flag is set that indicates
that tracing should be enabled.
- The trace flag is checked during every eglSwap() operation,
and if it finds that tracing should be active and it isn't,
then it starts the tracing component.

Change-Id: I3347fe89fc06c7404d7aa9360f4b21e5bf36ebcb
/frameworks/native/opengl/libs/EGL/eglApi.cpp
23bcd8d298597659622919027c9ea921d5eed513 16-Oct-2012 Romain Guy <romainguy@google.com> am 825a9a2d: Merge "Update comments to reflect what the code actually does" into jb-mr1-dev

* commit '825a9a2dcd1b3e139dd0677ff46f966fb23f963c':
Update comments to reflect what the code actually does
49fe8addbfe52bf9a3e69e6250e462a70332235c 16-Oct-2012 Romain Guy <romainguy@google.com> am b96fe085: Merge "Add new debug option to force 4x MSAA in OpenGL ES 2.0 apps" into jb-mr1-dev

* commit 'b96fe08540dcf7e90be56919ea9863f687da779c':
Add new debug option to force 4x MSAA in OpenGL ES 2.0 apps
be3c3e4ecad501eecfe1f7a424a792f0f7f3f307 16-Oct-2012 Romain Guy <romainguy@google.com> Update comments to reflect what the code actually does

Change-Id: I2613aa32c29eddc52a00090656c1bd11f9f5732b
/frameworks/native/opengl/libs/EGL/eglApi.cpp
1cffc80f978c55f09203d9d9a905775b951ba59a 16-Oct-2012 Romain Guy <romainguy@google.com> Add new debug option to force 4x MSAA in OpenGL ES 2.0 apps

Change-Id: I53ac91a9ce07b5dd5f2ee0e3cc5b65b6402f9229
/frameworks/native/opengl/libs/EGL/eglApi.cpp
0d45d711976bdca1165536b8948680680d38eb6a 25-Sep-2012 Mathias Agopian <mathias@google.com> am 500407a2: log an error when eglCreateContext() fails in an inconsistant way

* commit '500407a2c07ced40c36e7356574a47bcec9c2fd9':
log an error when eglCreateContext() fails in an inconsistant way
500407a2c07ced40c36e7356574a47bcec9c2fd9 25-Sep-2012 Mathias Agopian <mathias@google.com> log an error when eglCreateContext() fails in an inconsistant way

this will help debugging bug: 7216919

Change-Id: I54ac65f20c5ed55cc93a5cbc5350fadfb0fcb804
/frameworks/native/opengl/libs/EGL/eglApi.cpp
81b316aa5395b6318ad4a10e1ed27d0b9b0df07f 25-Sep-2012 Mathias Agopian <pixelflinger@gmail.com> am 98838aa0: am 77af25b6: Merge "Return back-end result from eglDestroyImageKHR"

* commit '98838aa0836518b7397cbfe763f34305e3387a5f':
Return back-end result from eglDestroyImageKHR
646a5c593f9819dc5da6a1ec859bc70cb7ba096f 05-Jun-2012 Steven Holte <sholte@nvidia.com> Return back-end result from eglDestroyImageKHR

Change-Id: I0e972b778f9802c28f52092bb9af087285833e0b
/frameworks/native/opengl/libs/EGL/eglApi.cpp
0673e1e2d77c673c2e9bc57616a02c3188b55ad1 21-Jun-2012 Michael Chock <mchock@nvidia.com> Additional parameter validation for EGL functions

Change-Id: I841d005647559799edbc2c4824c61ea5791cf893
/frameworks/native/opengl/libs/EGL/eglApi.cpp
010dd4fb892aecf71e4631c22148fe57ef5b3958 10-Sep-2012 Jamie Gennis <jgennis@google.com> EGL: Add the EGL_ANDROID_wait_sync extension

Change-Id: Ie9a78e07fcaf27c5c13797141ad3c692217607fb
/frameworks/native/opengl/libs/EGL/eglApi.cpp
331841b96b92646c93c87627c03f77b892f711cd 06-Sep-2012 Jamie Gennis <jgennis@google.com> EGL: add the native_fence_sync extension

This change adds support for the EGL_ANDROID_native_fence_sync extension to the
Android EGL layer. It also fixes a couple minor issues with the extension spec.

Change-Id: Ic8829d21f37b701f33aa9c72c3d25e88e03fa3cd
/frameworks/native/opengl/libs/EGL/eglApi.cpp
258385978c517a47626161b1e644c48bcee28de1 06-Apr-2012 Jesse Hall <jessehall@google.com> Hibernate the EGL implementation when idle

If the EGL implementation supports the EGL_IMG_hibernate_process
extension, use it to hibernate (and hopefully release memory or other
resources) when the process isn't actively using EGL or OpenGL ES. The
idleness heuristic used in this change is:

(a) Wake up when entering any EGL API call, and remain awake for the
duration of the call.
(b) Do not hibernate when any window surface exists; this means the
application is very likely in the foreground.
(c) Do not hibernate while any context is made current to a thread.
The app may be using a client API without the EGL layer knowing,
so it is not safe to hibernate.
(d) Only check these conditions and attempt to hibernate after a
window surface is destroyed or a thread's context is detached. By
not attempting to hibernate at the end of every EGL call, we avoid
some transient wakeups/hibernate cycles when the app is mostly idle,
or is starting to become active but hasn't created its window
surface yet.

On a Galaxy Nexus, hibernating frees 1567 VM pages from the process.
Both hibernating and waking can take anywhere from 30ms to over 100ms
-- measurements have been very inconsistent.

Change-Id: Ib555f5d9d069aefccca06e8173a89625b5f32d7e
/frameworks/native/opengl/libs/EGL/eglApi.cpp
b29e5e8c2682ae145e8c56d9afb061f8da7f854c 05-Apr-2012 Jesse Hall <jessehall@google.com> Increment/decrement a counter around EGL calls

This is in preparation for a change that will hibernate the underlying
EGL when idle. Instead of a bare egl_display_t*, get_display() now
returns a egl_display_ptr, which acts like a smart pointer. The
"wakecount" counter managed by the smart pointer isn't used for
anything in this change. It will be used to make sure we don't
hibernate when any thread is in an EGL call, without having to hold a
mutex for the duration of the call.

Change-Id: Iee52f3549a51162efc3800e1195d3f76bba2f2ce
/frameworks/native/opengl/libs/EGL/eglApi.cpp
28ef8d7911dbfd1bf8256fb43acba894d87fc07a 06-Apr-2012 Jamie Gennis <jgennis@google.com> EGL: add GPU frame completion tracing

This change adds a debug option to EGL to use an EGLSyncKHR each frame to
determine when the GPU finishes rendering the frame.

Change-Id: I09ce071db904b44f07ca814c586c291c8b59385a
/frameworks/native/opengl/libs/EGL/eglApi.cpp
7db993a98b9239bd4e384cc4aa128262fe3cf52c 25-Mar-2012 Mathias Agopian <mathias@google.com> debug.egl.finish can be used to force a glFinish() when eglSwapBuffers() is called

this debug property is evaludated at eglInitialize() time.

Change-Id: Ie439e4aac87f7fdc6ab2add86183d6d042f3ee8b
/frameworks/native/opengl/libs/EGL/eglApi.cpp
1c8e95cf86f2182986385bc1ee85f13f425f3a3a 24-Feb-2012 Jamie Gennis <jgennis@google.com> Add tracing to various graphics components.

This change adds ATRACE call tracing to BufferQueue,
SurfaceTextureClient, SurfaceTexture, SurfaceFlinger, Layer, and EGL.

Change-Id: I9d75ed26f5a3f0d1af635da38289520134cfbbb7
/frameworks/native/opengl/libs/EGL/eglApi.cpp
7c0441ac271f4e00a2d63eb3048c037ebffa90b9 15-Feb-2012 Mathias Agopian <mathias@google.com> Don't wrap EGLImageKHR and EGLSyncKHR anymore

this simplify our EGL wrapper implementation a lot.
This wrapping is no longer needed now that we can only
support a single underlaying EGL implementation.

Change-Id: I8213df7ac69daac447f1fe6e37044b78aac4e9a9
/frameworks/native/opengl/libs/EGL/eglApi.cpp
7773c435bc5da8217433e1b242d3a6712a17b5f7 14-Feb-2012 Mathias Agopian <mathias@google.com> EGLConfig is now not remaped to an internal EGLConfig

this is possible now that we support only a single
EGL implementation. this allows a large code simplification.

Change-Id: I7a6b9db4c5d60f4407c6061e7a68729af63d5242
/frameworks/native/opengl/libs/EGL/eglApi.cpp
ada798b7ca7cabc255aa159964b64975e7fdb2df 14-Feb-2012 Mathias Agopian <mathias@google.com> remove multiplexing of multiple EGL implementation

from now on, the system can only have one EGL
implementation. this means the software and h/w renderer
cannot be used at the same time on a device. Of course, the
h/w renderer is always prefered; in its absence we
default to the software renderer.

Change-Id: Ib579f58055dd0ce4c4a99144131efa11c16ca3d3
/frameworks/native/opengl/libs/EGL/eglApi.cpp
fb87e54a9af8bc5063ca4deebe81d90126992480 31-Jan-2012 Mathias Agopian <mathias@google.com> fix a race condition in eglMakeCurrent()

it would happen when a context was made non-current, in this
case we would call the implementation's eglMakeCurrent() which
would succeed, if we're rescheduled at that point, another
eglMakeCurrent() could make that context current to another thread,
however, when we came back to the original call we would
overwrite egl_context_t internal state.

this is fixed by moving the critical section under
egl_display_t's lock.

Change-Id: I743c85696e13263d3a9570824940263df0caacdc
/frameworks/native/opengl/libs/EGL/eglApi.cpp
48d438d05f14c2f4bd83ae89f520368cd49122df 29-Jan-2012 Mathias Agopian <mathias@google.com> add support for GL_EXT_debug_marker

This extension is always added to the GL_EXTENSIONS
extension string for the current GL context, regardless
of if it's supported by the h/w driver.

The extension itself will be handled by GLES_trace (eventually),
when GLES_trace is not enabled, it'll result to a no-op.

If the h/w implementation has this extension, we'll call that version
instead of our dummy version.

Change-Id: Ie5dd3387c4d45cd5ed5f03b73bda6045620a96bc
/frameworks/native/opengl/libs/EGL/eglApi.cpp
e8696a40e09b24b634214684d18526187b316a2f 16-Jan-2012 Jamie Gennis <jgennis@google.com> hack up frame latency measurement

Change-Id: I6d9a466a23285304f0e229a5649815636ab5d6af
/frameworks/native/opengl/libs/EGL/eglApi.cpp
e6f43ddce78d6846af12550ff9193c5c6fe5844b 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
/frameworks/native/opengl/libs/EGL/eglApi.cpp
93a826f78f6313db791e6fc880439189897651b3 14-Dec-2011 Siva Velusamy <vsiva@google.com> gltrace: transport buffering and context management

This patch adds two improvements:
1. Protobuf messages are buffered and sent in chunks.
2. Multiple EGL contexts are handled properly: Corresponding
to each EGLContext, a GLTraceContext with a unique ID is created.
On eglMakeCurrent, the appropriate GLTraceContext is set and is
used while tracing subsequent GL Calls in that thread.

Change-Id: I34076376d3e5af205c87c7396ea47659844abd6e
/frameworks/native/opengl/libs/EGL/eglApi.cpp
73d2b3c7e5537a6645f20f022b2e60cb9f342cbe 03-Dec-2011 Siva Velusamy <vsiva@google.com> Merge "glestrace: Framework for GLES tracing library"
0469dd6d55fa331bfd7de9431da98b6340d82271 01-Dec-2011 Siva Velusamy <vsiva@google.com> glestrace: Framework for GLES tracing library

This patch provides a framework for tracing GLES 1.0 and 2.0
functions. It is missing a lot of features, but here are the
things it accomplishes:

- Stop building the glesv2dbg library, and build the
glestrace library instead.
- Replace the hooks for glesv2dbg with the ones for glestrace.
- Add the basics for the trace library. Currently, this
traces all GL functions, but not all required data is
sent for all the functions. As a result, it will not
be possible to reconstruct the entire GL state on the
host side.

The files gltrace.pb.* and gltrace_api.* are both generated
using the tools/genapi.py script.

Change-Id: Id60a468f7278657f008bc6ea1df01f9bdfecfdd3
/frameworks/native/opengl/libs/EGL/eglApi.cpp
bc2d79ed7ada6243f3690f94ab512c0ddcdbed12 30-Nov-2011 Mathias Agopian <mathias@google.com> add a way to access the version string of the h/w implementation of EGL

we use a hidden egl extension. the version string is printed
in SF's dumpsys log.

Change-Id: I123eb4bde6de462bb2404c67b74d6d6219a48d6a
/frameworks/native/opengl/libs/EGL/eglApi.cpp
59769469e4b9b2d8b12c020eb44b030b3927a50b 20-Nov-2011 Jamie Gennis <jgennis@google.com> EGL: default to swap interval 1

This change explicitly sets swap interval 1 on the window when an
EGLSurface is created to render to it.

Change-Id: I91eb29dbee3ae4a55076b921f084d503fbe94e03
/frameworks/native/opengl/libs/EGL/eglApi.cpp
4b9511c16195a646242eff833b0af212933b6eca 14-Nov-2011 Mathias Agopian <mathias@google.com> rework a bit how we manage EGL extensions

- don't advertise extensions that are not supported
by any implementation

- remove EGL_ANDROID_swap_rectangle which is not
implemented by anybody and confuses people

- add some comments about mandatory extensions

Bug: 5428001
Change-Id: Id8dc48116ac1d1eb79ec9ef55d03e29d4257c1f3
/frameworks/native/opengl/libs/EGL/eglApi.cpp
f0480de37492597a5c5cf1e6f8346f1467e3a552 14-Nov-2011 Mathias Agopian <mathias@google.com> fix crash when validating an invalid EGL objects

the code that validated EGL objects dereferenced the object
to access its EGLDisplay -- needed for validation (!).
This was wrong for two reasons, first we dereferenced the object
before validating it (potentially leading to a crash), secondly
we didn't validate that the object existed in the right EGLDisplay.

We now use the EGLDisplay passed by the user API.

Change-Id: I66f9e851d4f8507892a6b1fee3065f124c4e7138
/frameworks/native/opengl/libs/EGL/eglApi.cpp
c42fcf05ce253d5342993b28c412be16e61efffb 10-Nov-2011 Jamie Gennis <jgennis@google.com> EGL: add the ANDROID suffix to the blob cache ext

This change adds the ANDROID suffix to the all the types and functions
defined by the EGL_ANDROID_blob_cache extension.

Change-Id: I087875b96d9a7053efb9c8d5614f9f765eed799d
/frameworks/native/opengl/libs/EGL/eglApi.cpp
aca51c06f38155f1435fbc6944d7fc0a9bf1e4e9 04-Nov-2011 Jamie Gennis <jgennis@google.com> EGL: Add stubs for EGL_ANDROID_blob_cache

This change adds a stub cache implementation that gets passed to the
underlying EGL implementation at initialization time.

Change-Id: I14437c5b6f91b7a34a19bb02ad802e6e54f88d2a
/frameworks/native/opengl/libs/EGL/eglApi.cpp
0e8bbee5775d81c7bbc479b995496cac9238559f 06-Oct-2011 Mathias Agopian <mathias@google.com> don't log EGL errors due to unimplemented proprietary extensions

Change-Id: Icfc33d4f55d1e7fb49390ce0921ba37a438c9fc2
/frameworks/native/opengl/libs/EGL/eglApi.cpp
1c3d72a2291827fb15e2ef311a571c860e0dba41 26-Aug-2011 Jonas Yang <joyang@nvidia.com> Add (support for) EGL_NV_system_time extension.

Change-Id: I62bf0fcb5ccdc77c042b425a42054fb3122575b6
Signed-off-by: Mathias Agopian <mathias@google.com>
/frameworks/native/opengl/libs/EGL/eglApi.cpp
5fecea776a5f093c21ac1a0ad3552b847d4be23e 26-Aug-2011 Mathias Agopian <mathias@google.com> fix logging of eglMakeCurrent() errors

Change-Id: Ie22cabff822a8fb3186f082491234b9503b431c3
/frameworks/native/opengl/libs/EGL/eglApi.cpp
9f24fd020e387d57cb05d58f26985baa44571b85 24-Aug-2011 Jamie Gennis <jgennis@google.com> EGL: move disconnect to surface dtor

This change moves the call to native_window_api_disconnect from
eglDestroySurface to the egl_surface_t destructor. The egl_surface_t
can outlive the external EGLSurface if eglDestroySurface is called while
the surface is made current on a thread.

Change-Id: I0df6117a5633c2a19935fe356579abdd76fc471f
/frameworks/native/opengl/libs/EGL/eglApi.cpp
81a63350527cafce6929309533c58586878f10b5 30-Jul-2011 Mathias Agopian <mathias@google.com> connect/disconnect is now called from our EGL wrapper

the original connect/disconnect hooks are deprecated
and replace by api_connect/api_disconnect. the original
hooks are no no-ops.
api_connect/api_disconnect is now only called from the
android framework.

Bug: 5057915
Change-Id: I8ca64cd1acd6cabf915bf54689ec2e5f6dfa495a
/frameworks/native/opengl/libs/EGL/eglApi.cpp
bee205fd58a27c10a0895de5339e76025d429d2b 01-Jul-2011 Jamie Gennis <jgennis@google.com> EGL: fix the ANativeWindow size/fmt override

This change fixes how the Android EGL layer overrides the size and
format of an ANativeWindow in eglCreateWindowSurface. The new behavior
is to leave the size untouched when overriding the format. The previous
behavior was to reset the ANativeWindow to use the default size set by
the ANativeWindow implementation.

It also adds two new 'perform' methods to the ANativeWindow interface:
set_buffers_dimensions and set_buffers_format, and redefines the
behavior of set_buffers_geometry to be the combination of these two new
methods.

Additionally, this change adds an error check for the return value of
the new native_window_set_buffers_format call, which required adding a
(stub) handler for to FramebufferNativeWindow.

Change-Id: I805c7ccd8d4730dfb132d10d8bc3fb058a0b9df1
/frameworks/native/opengl/libs/EGL/eglApi.cpp
5b287a6ea8dfac7ab3e03ae1e98f9e2214cbae09 17-May-2011 Mathias Agopian <mathias@google.com> eglTerminate() now actually frees up all active egl objects

as specified by the EGL specification, terminated objects's
handles become invalid, the objects themselves are destroyed
when they're not current to some thread.

Change-Id: Id3a4a5736a5bbc3926a9ae8385d43772edb88eeb
/frameworks/native/opengl/libs/EGL/eglApi.cpp
518ec112f468eb67bf681b3eec896d7bfb4ff98d 14-May-2011 Mathias Agopian <mathias@google.com> refactor EGL source code

no changes is functionality. split various objects into their own files.
make egl_display objec's lock internal.
/frameworks/native/opengl/libs/EGL/eglApi.cpp