History log of /frameworks/native/opengl/libs/EGL/eglApi.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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.
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
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
4864e85430d16cff00b6624d9de6c958d319c876 17-Jan-2014 Dan Stoza <stoza@google.com> Make libEGL build cleanly under 64-bit

Change-Id: I255dfb70b166b7469d59352b1acfc7aececa07de
c3289c41e794117817895653300bd2cf7daa0a01 17-Jan-2014 Dan Stoza <stoza@google.com> Make libEGL build cleanly under 64-bit

Change-Id: I255dfb70b166b7469d59352b1acfc7aececa07de
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
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
a2ba428a22125558a129c6ba4001dfc2169de2fe 15-Sep-2013 Jesse Hall <jessehall@google.com> Disable the egl_khr_gl_colorspace extension

Bug: 10777398
Change-Id: Ib50ea8b9d5d960537701b85929d6312304993a0f
63108c34ec181e923b68ee840bb7960f205466a7 06-Sep-2013 Mathias Agopian <mathias@google.com> fix a possible null dereference when eglMakeCurrent() fails

Bug: 10648797
Change-Id: Iee0be47f2646feb25de4ea199bbb9b707452916e
f4486c6ea4bcb728ee0f38df7a8ec75c389d9d2e 29-Aug-2013 Mathias Agopian <mathias@google.com> try to keep omap4 alive

Bug: 10527646
Change-Id: Iec572a910e932115cf4f2e1215142b10cd91bd6f
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

Bug: 10194508
Change-Id: If423cd29601b7a3ace8670f4c73004132cfc4b31
bc2a90b024db82e3a277e5b366da17e00b21d98b 16-Aug-2013 Jesse Hall <jessehall@google.com> Replace sRGB_888 with sRGB_X_8888

Bug: 10357459
Change-Id: I3a1d92cce2c9d3e930408129fb20887276fffddc
c2e41222bf02a6579763974f82d65875cfa43481 08-Aug-2013 Jesse Hall <jessehall@google.com> Add support for EGL_KHR_gl_colorspace

Change-Id: I684d0b8556cd6c84ee4b4d67e1bb95c3b96fccfb
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
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
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
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
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
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
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
f6d1c3930eeba6b089ba12fb82ecad1c6622e550 26-Apr-2013 Jamie Gennis <jgennis@google.com> EGL: expose the EGL_KHR_create_context extension

Bug: 8616866
Change-Id: Ic60f9f21397a1760c552b6f141d5177d1cbaf1f8
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
39c24a20bbc697630d2b92c251b70c04d6f9d00c 05-Apr-2013 Mathias Agopian <mathias@google.com> fix local include paths

Change-Id: Icb921fa796ec08612dbb2feb7e7161bcb0cf4a99
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

Change-Id: I9c4b49d9ff1151faf902cc93bd53ea5f205aaabf
2bb716871cf8bfadfff1193ed798da3bffc1f8ec 28-Mar-2013 Mathias Agopian <mathias@google.com> replace eglWaitSyncANDROID by eglWaitSyncKHR

Change-Id: I22f1b3588011c88389e249f738f1e6915cc97e72
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:

- add public extensions strings and entry-points

- add missing entry-points for EGL_KHR_reusable_sync

Change-Id: Ifd98966b549e8efd8ef5385eba0efde8c4cbc77b
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
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
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
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
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
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
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
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
0673e1e2d77c673c2e9bc57616a02c3188b55ad1 21-Jun-2012 Michael Chock <mchock@nvidia.com> Additional parameter validation for EGL functions

Change-Id: I841d005647559799edbc2c4824c61ea5791cf893
010dd4fb892aecf71e4631c22148fe57ef5b3958 10-Sep-2012 Jamie Gennis <jgennis@google.com> EGL: Add the EGL_ANDROID_wait_sync extension

Change-Id: Ie9a78e07fcaf27c5c13797141ad3c692217607fb
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
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
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
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
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
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
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
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
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
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
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
e8696a40e09b24b634214684d18526187b316a2f 16-Jan-2012 Jamie Gennis <jgennis@google.com> hack up frame latency measurement

Change-Id: I6d9a466a23285304f0e229a5649815636ab5d6af
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
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
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
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
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
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
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
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
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
0e8bbee5775d81c7bbc479b995496cac9238559f 06-Oct-2011 Mathias Agopian <mathias@google.com> don't log EGL errors due to unimplemented proprietary extensions

Change-Id: Icfc33d4f55d1e7fb49390ce0921ba37a438c9fc2
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>
5fecea776a5f093c21ac1a0ad3552b847d4be23e 26-Aug-2011 Mathias Agopian <mathias@google.com> fix logging of eglMakeCurrent() errors

Change-Id: Ie22cabff822a8fb3186f082491234b9503b431c3
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
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
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

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
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
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.