• Home
  • History
  • Annotate
  • only in /frameworks/native/opengl/libs/EGL/
History log of /frameworks/native/opengl/libs/EGL/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
54466bc4412acf33a59af59d9eadde54c22b2ebe 27-Jan-2015 Michael Lentine <mlentine@google.com> Remove lock around ref count check in terminate.

Replace the global lock in terminate for the ref count check with atomics and a
local lock.

Bug: 19072064

Change-Id: I0cfd6564e227a75b8387a8788b16381d5bc2cc88
gl_display.cpp
gl_display.h
12c4bdad7b2372ab64dcd2abbdbe47e709fb8b90 11-Sep-2014 Michael Lentine <mlentine@google.com> Add rate-limited logging for unimplemented es functions.

Bug: 17322013

Change-Id: I7aa5ab2f76cf344cfb75802edbfd44e8e7526ff1
gl.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.
glApi.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
glApi.cpp
0d7271527fa48c26b657d689faffbc94c93e5b3c 07-Jun-2014 Jesse Hall <jessehall@google.com> am 17cbadf0: am 6fa169fa: Merge "Add aarch64 EGL/GLES trampolines"

* commit '17cbadf0f598b0d02179262ad5b6b270850ccb94':
Add aarch64 EGL/GLES trampolines
30a41aa1ccc47de41642308a243fa5df2bfeec06 31-May-2014 Jesse Hall <jessehall@google.com> Add aarch64 EGL/GLES trampolines

Change-Id: Ia90e18d26ff3bdb7e643aff8d77cbaddd2ac2a03
etProcAddress.cpp
c2774f9b7341980c626c52a70e4fdf64d1b426e8 28-May-2014 Jesse Hall <jessehall@google.com> am 92374318: am 618c78c0: am dc273621: Merge "EGL: add x86/64 assembly code for EGL/GLES wrappers"

* commit '92374318b82945f3d03461f3d0c659adb8409fc5':
EGL: add x86/64 assembly code for EGL/GLES wrappers
c80aafa61d619087a879dc1095ddf1ca2a5e69fb 26-May-2014 mwajdecz <michal.wajdeczko@intel.com> EGL: add x86/64 assembly code for EGL/GLES wrappers

There was no explicit support for x86/64 architecture in EGL/GLES wrappers.
This resulted either in failures or sub-optimal implementation of the wrapper functions.

Change-Id: I20d99d7372fbf642ee4b94a05c8cb971cba29988
Signed-off-by: Wajdeczko, Michal <michal.wajdeczko@intel.com>
etProcAddress.cpp
38cd5c5b610bf96d741a408041aee4cb976f0fc5 15-May-2014 Jesse Hall <jessehall@google.com> Remove vestigial remnants of GLES2_dbg

These are left over from an early (not finished?) GL debugging
facility that morphed into GLES_trace. Most of the rest of it has
already been removed, these few pieces were still hanging aroung.

Bug: 15028495
Change-Id: Ib7c03eb8d0db30112e1b83e5262bba03006770de
race.cpp
6ec9862df1a0dffd334bc37ba9cd15340f10d6c1 25-Apr-2014 John Reck <jreck@google.com> Merge "Revert "Temporarily turn on callstack logging""
1f246d73d809f1502eb816b86b5d3c3f4de728dc 25-Apr-2014 John Reck <jreck@google.com> Revert "Temporarily turn on callstack logging"

Bug: 13927881

'twas useful and perhaps should be always enabled (please?)
but not like this, so reverting.

This reverts commit db4488565a791fc769b0b0b6ca4a0689eb3d5f4e.

Change-Id: I9a78c6d6e48342ef6ca1f2f7b5303ca47ccc6086
gl.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
db4488565a791fc769b0b0b6ca4a0689eb3d5f4e 09-Apr-2014 John Reck <jreck@google.com> Temporarily turn on callstack logging

Bug: 13745587
Temporarily turn on callstack logging for gl_no_context() to
try and track down font cache corruption

Change-Id: I657ee85e811746441c5ce0ffe5adbfb3fb011d4c
gl.cpp
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
oader.cpp
glApi.cpp
gldefs.h
993146092f8205d9747f082ccd63c09b536caa4e 14-Mar-2014 Mark Salyzyn <salyzyn@google.com> am d4dabf87: am cdbf28b3: Merge "native frameworks: 64-bit compile issues"

* commit 'd4dabf872ac0a12e12aebae9032f7d62762c2aeb':
native frameworks: 64-bit compile issues
92dc3fc52cf097bd105460cf377779bdcf146d62 12-Mar-2014 Mark Salyzyn <salyzyn@google.com> native frameworks: 64-bit compile issues

- Fix format (print/scanf)
- Suppress unused argument warning messages (bonus)

Change-Id: I05c7724d2aba6da1e82a86000e11f3a8fef4e728
gl_display.cpp
505350b150d448c2e5fca35ab4a0f829abdbdbb7 18-Feb-2014 Colin Cross <ccross@android.com> am 8a9a2e24: am d5fe844b: Merge "Use /(vendor|system)/lib64/egl for 64-bit EGL libraries"

* commit '8a9a2e24db868fba404049d700ae704b0982e5f3':
Use /(vendor|system)/lib64/egl for 64-bit EGL libraries
8edb8f5f2d016e4e31530ad7a0c44a4a7a853f64 16-Feb-2014 Dan Willemsen <dwillemsen@nvidia.com> Use /(vendor|system)/lib64/egl for 64-bit EGL libraries

Change-Id: Ie64806bfe4ba60a3167b84685cf983d4ada1042d
oader.cpp
4864e85430d16cff00b6624d9de6c958d319c876 17-Jan-2014 Dan Stoza <stoza@google.com> Make libEGL build cleanly under 64-bit

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

Change-Id: I255dfb70b166b7469d59352b1acfc7aececa07de
gl.cpp
glApi.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
glApi.cpp
1f8363329cd6b00c4f8e6f1f97bb3e76071d124a 26-Oct-2013 Igor Murashkin <iam@google.com> EGL: rename CallStack::dump into CallStack::log

Bug: 11324229
Change-Id: Ibac1be182c336e7aa5ac098f08d18b3c188964b4
race.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
glApi.cpp
a2ba428a22125558a129c6ba4001dfc2169de2fe 15-Sep-2013 Jesse Hall <jessehall@google.com> Disable the egl_khr_gl_colorspace extension

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

Bug: 10648797
Change-Id: Iee0be47f2646feb25de4ea199bbb9b707452916e
glApi.cpp
672ddf2b58b6c6ddef4fc4f296e5fa53910d8e3b 29-Aug-2013 Mathias Agopian <mathias@google.com> remove adreno 130 workaround support

Change-Id: I8ea5ee65d405114b30cfaa44e1a0c971d1ef2a61
gl_display.cpp
f4486c6ea4bcb728ee0f38df7a8ec75c389d9d2e 29-Aug-2013 Mathias Agopian <mathias@google.com> try to keep omap4 alive

Bug: 10527646
Change-Id: Iec572a910e932115cf4f2e1215142b10cd91bd6f
oader.cpp
glApi.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
glApi.cpp
bc2a90b024db82e3a277e5b366da17e00b21d98b 16-Aug-2013 Jesse Hall <jessehall@google.com> Replace sRGB_888 with sRGB_X_8888

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

Change-Id: I684d0b8556cd6c84ee4b4d67e1bb95c3b96fccfb
glApi.cpp
gl_display.cpp
gl_display.h
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
glApi.cpp
a6bb107434ad36739c21e1f72ac8d0107808a7b9 08-Aug-2013 Mathias Agopian <mathias@google.com> make sure we have a context when creating the 1st surface

also add an option to dump the stack trace when
calling a GL function without a context.

Change-Id: I57b72bb8c322ac4253c3077bf150621bd9863b69
gl.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
glApi.cpp
gl_display.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
glApi.cpp
e142428a9c8b9d2380032cd4d7b55ee440fe8770 30-Jul-2013 Mathias Agopian <mathias@google.com> Make Flattenable not virtual

Fallout from the Flattenable change, update all its uses.

Additionnaly, fix/tighten size checks when (un)flatten()ing
things.

Removed the assumption by some flattenables (e.g.: Fence)
that the size passed to them would be exact (it can
and will be larger in some cases)

The code in Parcel is a bit complicated so that we don't
have to expose the full implementation (and also to
keep the code smallish).

Change-Id: I0bf1c8aca2a3128491b4f45510bc46667e566dde
gl_cache.cpp
5539e219de5ffa93e9f22b30dacf7c28e7f7a0be 31-Jul-2013 Jamie Gennis <jgennis@google.com> EGL: fix eglTerminate blob cache behavior

Bug: 9610573
Change-Id: I258e7e0d82ab76fbacf0b9c25d4f92fca6df04ac
gl_cache.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
glApi.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
oader.cpp
glApi.cpp
gldefs.h
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
gl.cpp
glApi.cpp
etProcAddress.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
glApi.cpp
gl_tls.cpp
gl_tls.h
f03e51dd2fa4e9af855a8025b609c79a24186405 03-May-2013 Mathias Agopian <mathias@google.com> Merge "change how the userspace GLES drivers are named"
565bce248b0a21f9cf42329d5b5d0aa6dd425959 29-Apr-2013 Jamie Gennis <jgennis@google.com> am 8369c473: am f6d1c393: EGL: expose the EGL_KHR_create_context extension

* commit '8369c4739a58367e9636c84facc272cf8ddcb070':
EGL: expose the EGL_KHR_create_context extension
993814255fc248454368ed9fe34b4703a05eaf99 23-Apr-2013 Mathias Agopian <mathias@google.com> change how the userspace GLES drivers are named

for single library:
/vendor/lib/egl/GLES.so

for multiple libraries:
/vendor/lib/egl/EGL.so
/vendor/lib/egl/GLESv1_CM.so
/vendor/lib/egl/GLESv2.so

EGL_BOARD_CONFIG as well as egl.cfg are not needed anymore.

To facilitate the transition, the loader will also look
for the older naming scheme.

Bug: 8631636
Change-Id: Id4b113468df29bae72b323f76598229914e1c7a1
oader.cpp
oader.h
f6d1c3930eeba6b089ba12fb82ecad1c6622e550 26-Apr-2013 Jamie Gennis <jgennis@google.com> EGL: expose the EGL_KHR_create_context extension

Bug: 8616866
Change-Id: Ic60f9f21397a1760c552b6f141d5177d1cbaf1f8
glApi.cpp
b4ba50dd833d8b94043635663f2ee1ad0cb54b35 23-Apr-2013 Mathias Agopian <mathias@google.com> fix a typo in EGL loader

the code intended to filter out the software-renderer, but the
test as written was essentially a no-op.

the problem didn't happen most of the time because we had
updated egl.cfg to not even list the software renderer.

the test as written didn't generate a compile-time error
because String8 has a const char* cast operator; but the
end result was to compare pointers instead of the string
itself.

http://code.google.com/p/android/issues/detail?id=54606

Change-Id: I739dd1c838fbc24c5643a631fae19713a8ef1717
oader.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
glApi.cpp
39c24a20bbc697630d2b92c251b70c04d6f9d00c 05-Apr-2013 Mathias Agopian <mathias@google.com> fix local include paths

Change-Id: Icb921fa796ec08612dbb2feb7e7161bcb0cf4a99
oader.cpp
gl.cpp
glApi.cpp
gl_cache.cpp
gl_display.cpp
gl_display.h
gl_tls.h
gldefs.h
etProcAddress.cpp
441f69463ec595ad42fdaad1bbfbb0f7a932437c 31-Mar-2013 Jesse Hall <jessehall@google.com> Fix MIPS assembly variable names to not conflict with GL API parameter names

Change-Id: I8e93fb55018de53a596cb176d48dbfdf1fd396e4
etProcAddress.cpp
86e392e9b3b92e3a58d2fb65eef1552108941a76 30-Mar-2013 Mathias Agopian <mathias@google.com> Merge "don't use compile-time configuration of libgui as much as possible" into jb-mr2-dev
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
glApi.cpp
ea116f1acb911963751d72515714803aeae95d59 29-Mar-2013 Keun-young Park <keunyoung@google.com> am 111d920b: am d3b2c029: Merge "[MIPS] Add MIPS architecture support to opengl framework"

* commit '111d920bb588669006bdd8699e786d6305f14c36':
[MIPS] Add MIPS architecture support to opengl framework
2bb716871cf8bfadfff1193ed798da3bffc1f8ec 28-Mar-2013 Mathias Agopian <mathias@google.com> replace eglWaitSyncANDROID by eglWaitSyncKHR

Change-Id: I22f1b3588011c88389e249f738f1e6915cc97e72
glApi.cpp
gl_entries.in
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
glApi.cpp
gl_display.cpp
gl_entries.in
46b4253b760916ea8f64c8c32a51ae85ec3b050e 27-Mar-2013 Duane Sand <duane.sand@imgtec.com> [MIPS] Add MIPS architecture support to opengl framework

Change-Id: Id7704d35bed14d96a85dc1f29db0566cd03872b5
etProcAddress.cpp
cab25d680e644d962041d05a319e485b96136a5d 22-Mar-2013 Mathias Agopian <mathias@google.com> improved CallStack a bit

- added a ctor that updates and dumps the stack immediately
- added a "logtag" parameter to dump()

Change-Id: Ie51c256071d282591752243bdb4f68cf9ff8829d
gl.cpp
gl_tls.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
glApi.cpp
f5c7cb316cc8c8e2d6ae93a659ac771420cbfa2b 24-Feb-2013 Jesse Hall <jessehall@google.com> Merge changes Ic344ef63,If9bb02be,Ic8f94634

* changes:
Symlink /system/lib/libGLESv3.so -> libGLESv2.so
Add ES3 support to libGLESv2 and tracing tools
Import OpenGL ES 3.0 headers from Khronos SVN
bbb7322c363d1ff98b09ec4ad95338cc82eb86b0 14-Feb-2013 Elliott Hughes <enh@google.com> am 45b0e435: Merge "Simplify OpenGL TLS access on ARM."

# Via Elliott Hughes (1) and Gerrit Code Review (1)
* commit '45b0e4350d3404bd194edc569e36ecca017c3d76':
Simplify OpenGL TLS access on ARM.
288870ebc3da8121b7a237a53280bd8b931b7a2f 14-Feb-2013 Elliott Hughes <enh@google.com> Simplify OpenGL TLS access on ARM.

bionic now assumes the TLS register is available, so OpenGL can too.

Change-Id: If2b56a4c08de9f887759b78f70022026a181dc47
etProcAddress.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
gl.cpp
glApi.cpp
gl_display.h
gl_object.cpp
gl_object.h
race.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
873ab60e94811488caea1906eb98133329a3e28f 01-Feb-2013 Jesse Hall <jessehall@google.com> am 75b83e4d: Merge "Gfx-3d: fix GetProcAddress in egl extention"

# By luliuhui
# Via Gerrit Code Review (1) and Shuo Gao (1)
* commit '75b83e4dc7d8055a70e590f868f7307fdaf656a7':
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
glApi.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
gl.cpp
glApi.cpp
0e34af6284c258c1dc56670a573ef11a76dda9fe 21-Nov-2012 Siva Velusamy <vsiva@google.com> am c859084c: am a9a4cd48: gltrace: Make sure device is debuggable.

* commit 'c859084ca303ca1ab69bdc78f864d39c9c81ab0b':
gltrace: Make sure device is debuggable.
a9a4cd4806ea5b2cf525c8ab4c6604d78c6e3f8f 20-Nov-2012 Siva Velusamy <vsiva@google.com> gltrace: Make sure device is debuggable.

(cherry picked from commit 6482fa4db0a7ac99cd3503d6bf170f80b26fb695)

Change-Id: I205aabcab1932025c12e7ba3d1b3cf94684f6758
gl.cpp
6482fa4db0a7ac99cd3503d6bf170f80b26fb695 20-Nov-2012 Siva Velusamy <vsiva@google.com> gltrace: Make sure device is debuggable.

Change-Id: Icc22ff823a2f56733b232b927dd1fa494e9e1e81
gl.cpp
d991b40739fad782dbb319e9de50f3a8b70e4bc6 19-Oct-2012 Romain Guy <romainguy@google.com> am f58475b5: am 60393d45: Merge "Add runtime debugging capabilities to OpenGL" into jb-mr1-dev

* commit 'f58475b5ae4ccb3a31c05c79da8b2914c62a3510':
Add runtime debugging capabilities to OpenGL
f58475b5ae4ccb3a31c05c79da8b2914c62a3510 19-Oct-2012 Romain Guy <romainguy@google.com> am 60393d45: Merge "Add runtime debugging capabilities to OpenGL" into jb-mr1-dev

* commit '60393d45207b6548e1f61ca104fa59aecee87d30':
Add runtime debugging capabilities to OpenGL
16928bfeca8858a0acae6942fc68c14a040b92ff 19-Oct-2012 Romain Guy <romainguy@google.com> Add runtime debugging capabilities to OpenGL

The shell property debug.egl.trace can now be set to:

0
disables tracing
1
logs all GL calls
error
checks glGetError after every GL call, logs a stack trace on error
systrace
logs each GL call to systrace

Change-Id: I34a2a2d4e19c373fd9eaa1b0cd93e67c87378996
gl.cpp
race.cpp
4d0aec67c4423404a3d82793e5771230426521cc 16-Oct-2012 Romain Guy <romainguy@google.com> am 23bcd8d2: am 825a9a2d: Merge "Update comments to reflect what the code actually does" into jb-mr1-dev

* commit '23bcd8d298597659622919027c9ea921d5eed513':
Update comments to reflect what the code actually does
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
1ba2f61d75c70b5a0275c93a9908aa7280f43bc6 16-Oct-2012 Romain Guy <romainguy@google.com> am 49fe8add: am b96fe085: Merge "Add new debug option to force 4x MSAA in OpenGL ES 2.0 apps" into jb-mr1-dev

* commit '49fe8addbfe52bf9a3e69e6250e462a70332235c':
Add new debug option to force 4x MSAA in OpenGL ES 2.0 apps
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
glApi.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
glApi.cpp
2e080904aba15f585fcf36df9b12ff8d00829523 10-Oct-2012 Siva Velusamy <vsiva@google.com> gltrace: Do not start gltrace from early_egl_init.

The debugging and tracing levels are initialized both during
early_egl_init and egl_display_t::initialize(). For apps this has
no effect since early_egl_init is called in the context of zygote.
This CL removes the unnecessary call from early_egl_init.

Change-Id: Ibc55c26228cd197f2e2623fbfb2d1a63d0722401
gl.cpp
2ac4194854a70c6e319b1b3b647344e595082b38 27-Sep-2012 Mathias Agopian <mathias@google.com> am 1e83690c: Merge "assert -eng builds when calling a GL function without a context" into jb-mr1-dev

* commit '1e83690c6030b33c7776fa65cb57132d5e2d0b40':
assert -eng builds when calling a GL function without a context
455e3601498096d1daa0cf0ec7c23abb28b39af3 27-Sep-2012 Mathias Agopian <mathias@google.com> assert -eng builds when calling a GL function without a context

Bug: 7241626

Change-Id: I0f1f9361e75e9186af8cff8d98a7d2224b266765
gl.cpp
483ab74243870e6af4b8a947873556ff86d076c0 25-Sep-2012 Jamie Gennis <jgennis@google.com> am 2f45d746: Merge "EGL: add the EGL_ANDROID_framebuffer_target enum" into jb-mr1-dev

* commit '2f45d7464a55d7a91da6fcd6f8cf1b11e395d029':
EGL: add the EGL_ANDROID_framebuffer_target enum
ca5f79c2bb6c2e3995d9e2427f2600d1b03a84c4 25-Sep-2012 Jamie Gennis <jgennis@google.com> am 363847d4: Merge "EGL: expose the EXT_create_context_robustness ext" into jb-mr1-dev

* commit '363847d498bffe0e2d8e7b8aba693bb402513413':
EGL: expose the EXT_create_context_robustness ext
2f45d7464a55d7a91da6fcd6f8cf1b11e395d029 25-Sep-2012 Jamie Gennis <jgennis@google.com> Merge "EGL: add the EGL_ANDROID_framebuffer_target enum" into jb-mr1-dev
363847d498bffe0e2d8e7b8aba693bb402513413 25-Sep-2012 Jamie Gennis <jgennis@google.com> Merge "EGL: expose the EXT_create_context_robustness ext" into jb-mr1-dev
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
glApi.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
3ff48e5e69955b37292446c0f2ac98e8238bdaca 24-Sep-2012 Jamie Gennis <jgennis@google.com> EGL: add the EGL_ANDROID_framebuffer_target enum

Change-Id: Id8b1b114e2a7a88956b857c63a0429e9b33fdb5c
gl_display.cpp
09b11432b64d368dee7be69480ab54256058376a 21-Sep-2012 Jamie Gennis <jgennis@google.com> EGL: expose the EXT_create_context_robustness ext

Change-Id: I1db43e96aa5e9e91a6176a4a3e5aa9d1f3ee4a7e
gl_display.cpp
a08cf6e3a4ee045608bc8991a779dedb4f281a3f 16-Sep-2012 Jamie Gennis <jgennis@google.com> EGL: fix an extension string bug

This change fixes a bug where initializing EGL multiple times (eglTerminate
followed by eglInitialize) would cause extensions to show up in the extension
string multiple times.

Change-Id: I707a3da62ed30ef13835087167f84a08bc6addd7
gl_display.cpp
646a5c593f9819dc5da6a1ec859bc70cb7ba096f 05-Jun-2012 Steven Holte <sholte@nvidia.com> Return back-end result from eglDestroyImageKHR

Change-Id: I0e972b778f9802c28f52092bb9af087285833e0b
glApi.cpp
0673e1e2d77c673c2e9bc57616a02c3188b55ad1 21-Jun-2012 Michael Chock <mchock@nvidia.com> Additional parameter validation for EGL functions

Change-Id: I841d005647559799edbc2c4824c61ea5791cf893
glApi.cpp
f478e6d18cb9eba1ded1f124ce16a899d271689e 12-Sep-2012 Jamie Gennis <jgennis@google.com> EGL: make max cache key size BoardConfig-able

This change makes the maximum EGL blob cache key size configurable via a
BoardConfig.

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

Change-Id: Ie9a78e07fcaf27c5c13797141ad3c692217607fb
glApi.cpp
gl_entries.in
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
glApi.cpp
gl_display.cpp
gl_entries.in
0adc8f260023ec25c31ff4ceadde047528cb64ab 20-Aug-2012 Jean-Baptiste Queru <jbq@google.com> am 6e820eec: am 6f89ebde: Merge "EGL: do not use sparse files for shader"

* commit '6e820eec21917f8e25c40dbc8b972468535af0e8':
EGL: do not use sparse files for shader
a30cc7db8dba9f028333a8e1865006bf6d4f410d 28-Jun-2012 vijay gupta <vijayg@nvidia.com> EGL: do not use sparse files for shader

- Process is killed by system with SIGBUS signal if it writes
data to mapped sparse file on full filesystem.
- Allocate space using write() function instead of ftruncate()
to avoid creation of sparse files on full filesystem.
Catch write() errors to handle out-of-space case during allocation.

Bug: http://code.google.com/p/android/issues/detail?id=35376
Change-Id: Ifc366454f34e71a43a0973eda4f591a920ea3a14
Signed-off-by: Kirill Artamonov <kartamonov@nvidia.com>
gl_cache.cpp
fe6102f07cc3fa8cfa2283e2c51e6d19f056ee7c 14-Jun-2012 Mathias Agopian <mathias@google.com> Merge "don't error out when eglTerminate()ing an already terminated display"
fe98127eaaf82686ba750001e2b771abece44e97 14-Jun-2012 Mathias Agopian <mathias@google.com> don't error out when eglTerminate()ing an already terminated display

so says the EGL specification, section 3.2

Change-Id: Ice60530f8f6e47b4e14e06d2ab8eba799a7688a6
gl_display.cpp
d75f84d6410da934d1b1760fdc0d05d4ba1e8f35 06-Jun-2012 Mathias Agopian <mathias@google.com> reduce PB size from 2MB to 512KB

this allows us to enable h/w acceleration on low-end
devices while keeping memory usage down.

Bug: 6557760
Change-Id: I8af2de3038dc2579360b8b73aa452cb7a0e506a9
oader.cpp
cc2b1560e87369676a2d13f17bd1ff4021a91819 21-May-2012 Mathias Agopian <mathias@google.com> fix EGL_CLIENT_STRING

it should read OpenGL_ES (with an underscore)

Bug: 6529643

Change-Id: I7caf07793bffe5a8dcceaff496a222077486fc87
gl_display.cpp
201f3b2da572eb27b9d4b3131e6d8c3c92a13de8 04-May-2012 Jesse Hall <jessehall@google.com> Disable EGL hibernation due to jank

Hibernating EGL takes a long time (>100 ms) and blocks all other
rendering. During window animations, the outgoing activity begins
hibernation before the animation stops, causing visible stutter.
Hibernation is still available by setting 'BOARD_ALLOW_EGL_HIBERNATION
:= true' in the devices BoardConfig.mk

Change-Id: Iab4e00723a1adcd97481e81b2efdc821b3e9712f
gl_display.cpp
gl_display.h
a0fef1c8bb22443402fb3aeda7ce70f7d5775b0a 17-Apr-2012 Jesse Hall <jessehall@google.com> Fix deadlock when cleaning objects in eglTerminate

When eglTerminate() is called with a window surface still exists, a
deadlock would occur since egl_display_t::terminate() holds a lock
while destroying the window surface, which calls
onWindowSurfaceDestroyed() which attempts to take the same lock.

This change refactors the hibernation code and data into a separate
object with its own lock, separate from the egl_display_t lock. This
avoids the deadlock and better encapsulates the hibernation logic.

The change also fixes a bug discovered incidentally while debugging:
hibernating after calling eglTerminate() succeeds, but will cause
awakens from subsequent eglInitialize() to fail. We will no longer
hibernate a terminated display.

Change-Id: If55e5bb603d4f8953babc439ffc8d8a60af103d9
gl_display.cpp
gl_display.h
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
glApi.cpp
gl_display.cpp
gl_display.h
gl_entries.in
gl_object.cpp
gl_object.h
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
gl.cpp
glApi.cpp
gl_display.cpp
gl_display.h
gl_object.cpp
gl_object.h
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
glApi.cpp
gl_display.cpp
gl_display.h
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
glApi.cpp
gl_display.cpp
gl_display.h
b13c78f8520ef5a96effdee977bbacb881236c66 09-Mar-2012 Siva Velusamy <vsiva@google.com> gltrace: Expose a function to set OpenGL trace level.

This patch adds a function setGlDebugLevel() to libEGL to enable
GL tracing. This will be used by the Java layer to add an option
to "am start" that can enable tracing for a particular application.

Change-Id: Ie1dbdd550f502df8633553595cb33ee9d9ae44e1
gl.cpp
gl_display.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
glApi.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
gl.cpp
glApi.cpp
gl_object.h
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
oader.cpp
gl.cpp
glApi.cpp
gl_display.cpp
gl_display.h
gldefs.h
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
oader.cpp
oader.h
gl.cpp
glApi.cpp
gl_cache.cpp
gl_display.cpp
gl_display.h
gl_object.cpp
gl_object.h
gldefs.h
a4b2c041828d1074dca3b999407e7dd85568c5aa 04-Feb-2012 Mathias Agopian <mathias@google.com> fix a dead-lock in eglMakeCurrent

this was introduced in a recent change. eglMakeCurrent can
end up calling eglDestroyImageKHR via ANativewWindow::disconnect
when the consumer is in the same process.

we make sure we don't hold the lock while this is happening.

Change-Id: Id17fe4fd76eecf5f962cefb9aa32be41fc1b042d
gl_display.cpp
gl_display.h
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
glApi.cpp
gl_display.cpp
gl_display.h
0d6aa287d1832da5e817bd778731f2f2e7902f90 31-Jan-2012 Mathias Agopian <mathias@google.com> Merge "add all needed GL extension wrappers"
a6d86e5ea748a7bcde4ff30b0b1f882dca36a8f3 31-Jan-2012 Mathias Agopian <mathias@google.com> add all needed GL extension wrappers

when increasing MAX_NUMBER_OF_GL_EXTENSIONS to 256
we also needed to create all the corresponding wrappers.

Change-Id: I90edaaf0885ccdfab48e7a1396bcf88e039cfb25
etProcAddress.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
oader.cpp
gl.cpp
glApi.cpp
gl_object.cpp
gl_object.h
gldefs.h
e8696a40e09b24b634214684d18526187b316a2f 16-Jan-2012 Jamie Gennis <jgennis@google.com> hack up frame latency measurement

Change-Id: I6d9a466a23285304f0e229a5649815636ab5d6af
glApi.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
oader.cpp
gl.cpp
glApi.cpp
gl_cache.cpp
gl_object.cpp
gl_object.h
gl_tls.cpp
32397c1cd3327905173b36baa6fd1c579bc328ff 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
gl_cache.cpp
gl_display.cpp
gl_object.h
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
gl.cpp
glApi.cpp
9d4536835248525f32f1504a3d28d5bbfa0a2910 20-Dec-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156016

Bug: 5449033
Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
oader.cpp
gl.cpp
gl_display.cpp
race.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
oader.cpp
gl.cpp
glApi.cpp
gl_tls.cpp
gl_tls.h
race.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
glApi.cpp
e011aa2b0f8c13bb821505b49c70b7e9a5e2f29d 22-Nov-2011 Jamie Gennis <jgennis@google.com> Merge "EGL: Use cache sizes defined in the BoardConfig" into ics-mr1
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
glApi.cpp
89c1d61c16c786ecfd258a43fed24bcf8f8456ed 20-Nov-2011 Jamie Gennis <jgennis@google.com> EGL: Use cache sizes defined in the BoardConfig

This change introduces two new BoardConfig variables to control the size
limits of the EGL blob cache. MAX_EGL_CACHE_ENTRY_SIZE is the size
limit for values inserted into the cache, and MAX_EGL_CACHE_SIZE is the
size limit for all entries in the entire cache (including both keys and
values). If either of these BoardConfig variables are not defined then
a default size limit is used instead.

Change-Id: I6703d93f966b6389c6499f23d841e42339f9c9d7
gl_cache.cpp
0f83b2f976b5974546182b1b8483c9956aee8496 18-Nov-2011 Jamie Gennis <jgennis@google.com> Merge "EGL: fix blob cache extension detection" into ics-mr1
9f43009177520c89ca03789993634a3689f41d10 17-Nov-2011 Jamie Gennis <jgennis@google.com> EGL: fix blob cache extension detection

Bug: 5474671
Change-Id: I6359063ccf23f076fc84c80b8a2f6731a65eef18
gl_cache.cpp
f3ae82d8134e7f5a2f0432ef809569bfa418883b 17-Nov-2011 Mathias Agopian <mathias@google.com> be a bit more defensive when parsing extension strings

hopefully this will fix a crash in the emulator.

Bug: 5624674
Change-Id: I96586e29ea20efd73c4ad50870df5b7368bf3c3b
gl_display.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
glApi.cpp
gl_display.cpp
gl_display.h
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
gl.cpp
glApi.cpp
gl_display.cpp
gl_display.h
gl_object.cpp
gl_object.h
7cd230c508aa0935068020726685c66498be0e64 15-Nov-2011 Jamie Gennis <jgennis@google.com> Merge "EGL: add the ANDROID suffix to the blob cache ext" into ics-mr1
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
glApi.cpp
gl_cache.cpp
gl_cache.h
c58b9999e1ccfee50b8248a2f0bc9a8ed39ed902 11-Nov-2011 Romain Guy <romainguy@google.com> Merge "Terminate EGL when an app goes in the background" into ics-mr1
4725e2ca8050250813afcdcac1330244c6e0f5ae 10-Nov-2011 Romain Guy <romainguy@google.com> Terminate EGL when an app goes in the background

This does not happen on high end gfx devices. This happens
only if only one EGL context is initialized in the current
process.

Change-Id: Ibd1737efdf84eef8a84108b05795440d1ae9964e
gl_display.h
99c3d700d2d0886fe27fa961c89dae7c6c3b8195 09-Nov-2011 Jamie Gennis <jgennis@google.com> EGL: add deferred saving of the cache

This change causes any insertions into the EGL cache to trigger an
attempt to save the cache contents to disk. The save operation is
deferred to allow multiple cache insertions to be batched up.

Change-Id: I6cfec9c0dbbef94d3f8880860e2a365dccc296c7
gl_cache.cpp
gl_cache.h
98c6383580f94bb7ff9cc9a7cc24d8b8519e484a 08-Nov-2011 Jamie Gennis <jgennis@google.com> EGL: implement loading and saving the cache

This change adds support for saving and loading the contents of the EGL
cache. It also adds some simple tests for the EGL cache.

Change-Id: I18e5e789e0897a0783d29d1c1e64d26de2dd44c4
gl_cache.cpp
gl_cache.h
gl_display.h
766010858ea7696d64f1b559413670bdd8627595 06-Nov-2011 Jamie Gennis <jgennis@google.com> EGL: use an in-memory the blob cache

This change makes the makes the stub EGL_ANDROID_blob_cache callbacks
actually use a BlobCache object.

Bug: 5474671
Change-Id: I5cbaae2dea3aad2fe306c9f57029c3f215a0863a
gl_cache.cpp
gl_cache.h
gl_display.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
glApi.cpp
gl_cache.cpp
gl_cache.h
gl_display.cpp
0e8bbee5775d81c7bbc479b995496cac9238559f 06-Oct-2011 Mathias Agopian <mathias@google.com> don't log EGL errors due to unimplemented proprietary extensions

Change-Id: Icfc33d4f55d1e7fb49390ce0921ba37a438c9fc2
glApi.cpp
gl_tls.cpp
gl_tls.h
06649fece4d97a89c6b197a570b6012e9ad9d228 16-Sep-2011 Mathias Agopian <mathias@google.com> cleanup: fix typos in logs

Change-Id: Ib5744564a873ea2b84100174673dc4d3ae109fcf
gl_object.h
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>
glApi.cpp
gl_entries.in
ecfe091af3e3e5d7165fe64a5f9c84c4576a6c06 07-Sep-2011 Mathias Agopian <mathias@google.com> add an option to EGL to dump stack traces on errors

enable by setting debug.egl.callstack to 1

Change-Id: I7fad9ce71b4c4c5ece97d4f9d139348eab742a3c
gl.cpp
gl_tls.cpp
80b30c24ffc0f67b87d7a6b29f616d1c521d40ae 26-Aug-2011 David 'Digit' Turner <digit@android.com> opengl: EGL: special case for GLES emulation

This patch modifies the library loaded in libEGL.so to
handle the case of GLES emulation as follows:

- if we detect that we run inside the emulator, check the
GPU emulation status through ro.kernel.qemu.gles, which
will be set to 1 if supported, or 0 otherwise.

When trying to run on an older version of the emulator,
the kernel parameter will not be defined at all.

- if GPU emulation is supported, use egl.cfg as usual.
It will contain a line like "0 0 emulation" that will
load libEGL_android.so appropriately.

- nothing is changed if we don't run inside the emulator.

NOTE: Ideally, we would modify libEGL_emulation.so to
redirect all calls to libEGL_android.so in this case.

However, this turns out to be extremely tedious to implement
(too many functions with different signatures).

As such, it is much simpler to make the check before
loading the library.

Change-Id: I9930bc168d9013cc8700feedc57b979384467c37
oader.cpp
ccfa5c3364a88b0acdbe555b210bd2bc9feb6285 01-Sep-2011 Mathias Agopian <mathias@google.com> this should fix the GL debugger

we were checking against to the wrong variable

Change-Id: Iff3f5ab2d6ba5ac0d3d8161011b38e673ee7e67b
gl.cpp
5fecea776a5f093c21ac1a0ad3552b847d4be23e 26-Aug-2011 Mathias Agopian <mathias@google.com> fix logging of eglMakeCurrent() errors

Change-Id: Ie22cabff822a8fb3186f082491234b9503b431c3
glApi.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
glApi.cpp
gl_object.h
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
glApi.cpp
0d0c5a6d6b434d3d7890f4bd9eca90084ba4e780 12-Jul-2011 Jamie Gennis <jgennis@google.com> Merge "EGL: fix the ANativeWindow size/fmt override"
e03de9379410fd9947189f0f14e3ec457df2ebfe 12-Jul-2011 Romain Guy <romainguy@google.com> Always make GL calls with a valid EGL context.
Bug #5010760

Change-Id: If7500ef69683948e727df1406f458f18b11259d1
gl.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
glApi.cpp
1cadb25da1ed875bdd078270e642966724a0c39a 24-May-2011 Mathias Agopian <mathias@google.com> fix x86 build

Change-Id: I03cfbfeaeb8b13842248856b14b4a23711036e10
oader.cpp
gl.cpp
gl_display.h
gl_tls.h
gldefs.h
etProcAddress.cpp
ooks.cpp
race.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
gl.cpp
glApi.cpp
gl_display.cpp
gl_display.h
gl_object.cpp
gl_object.h
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.
gl.cpp
glApi.cpp
gl_display.cpp
gl_display.h
gl_object.cpp
gl_object.h
gl_tls.cpp
gl_tls.h
0ad71a97c6061e3b12d2308bd43e02dfeeb63db4 12-May-2011 Mathias Agopian <mathias@google.com> fix (Again) adding OES postfix when looking for gl functions

Change-Id: Ib14723ed5355fdc423226ec20a32e26fe7dd68fe
oader.cpp
e647f3c76c5d401d5b1cc0d8a08b314bf467113d 28-Jan-2011 Jeff Boody <jboody@quicinc.com> add OES postfix without truncating function

Change-Id: Id47304cf38914190cec58d703801f456ab916f63
oader.cpp
1b528fb9d818044973abf656c9d2d3c1192bcfdc 26-Apr-2011 Jamie Gennis <jgennis@google.com> EGL: Allow creating a SurfaceTexture EGLSurface.

This change removes the check that disallowed the creation of an
EGLSurface that would send frames to a SurfaceTexture.

Change-Id: I44c6d5df503cc676a88144d72d39b414692ce4c9
gl.cpp
499c6f02e696622a532a504be9706896aea5a304 09-Apr-2011 David Li <davidxli@google.com> GLES2Dbg: use dump.gles2dbg file when fails to create socket

setprop debug.egl.debug_forceUseFile 1: always use file
setprop debug.egl.debug_maxFileSize <int MB>: exit when reached
setprop debug.egl.debug_filePath <path>: may need to make the file
writable first.
setprop debug.egl.debug_port <unsigned short>
setprop debug.egl.debug_proc <proc cmdline>: to match debuggee process

Change-Id: I34ca1f3092f3abf17e2ded9d1689d0cdef6e07e8
Signed-off-by: David Li <davidxli@google.com>
gl.cpp
864f839e969ba3417d82ab3ff7906b2f69afa900 28-Mar-2011 David Li <davidxli@google.com> GLES2Dbg: change GLES2_dbg to shared library

Change-Id: I493e9bff431bd939f4e80e1e9c614dd557307fa2
Signed-off-by: David Li <davidxli@google.com>
gl.cpp
7fecf8c1ff04b85de0656d823224702ec5175344 01-Apr-2011 Eric Hassold <hassold@google.com> Initialize reference counter for egl_display_t

Add missing member initialization for reference counter, used to determine
if a context is ready.

Change-Id: I45f81177ac2851129681f827afe015b60b3cd73c
gl.cpp
11c01568c31157bb2486e73efd3249a26dcaecb5 25-Mar-2011 Eric Hassold <hassold@google.com> Make objects collection a member of egl_display object

Move EGL objects (contexts, surfaces, ...) collection from global
static into EGL display object. Since EGL implementation currently
supports only one display, this doesn't change current logic. This
aims at preparing for next coming changes in eglTerminate() to
support per-display cleanup.

Bug: 4152714
Change-Id: I5e424781b89c3c275f9922f943463d5f6b1f6bc6
gl.cpp
3ede7c133af1fc9713d7f2aedd785ce6bad780e8 23-Mar-2011 Eric Hassold <hassold@google.com> Check for initialized EGLDisplay when required by specification

Check for initialized display, and set EGL error to EGL_NOT_INITIALIZED
whenever it isn't, for all EGL functions taking an EGLDisplay as argument
and requiring it to have been initialized.

Bug: 3366011
Change-Id: Ib1d8a3a207257995518f4430fe97f8c406c7fc13
gl.cpp
5a0d29009c5e66dde652eb5c7fd1812bcf97547e 17-Mar-2011 David Li <davidxli@google.com> Merge "GLES2Debugger: Make command exchange async to improve performance."
7d7723d330f544d1e3882b2a360a6e8b6b70e02a 17-Mar-2011 Mathias Agopian <mathias@google.com> am 9405d987: am a05a8ac5: am af831a7b: Merge "fix [4107131] nvidia driver call takes a very long time" into honeycomb-mr1

* commit '9405d98705db1c8102b77ef960f344ac416d165c':
fix [4107131] nvidia driver call takes a very long time
36bdf14a75a7c5e50f62d8f9e1c1be0c8e8a41be 16-Mar-2011 Mathias Agopian <mathias@google.com> fix [4107131] nvidia driver call takes a very long time

We were leaking all EGLSyncKHR objects, over time the list
would grow and become very slow to operate on.

Bug: 4107131
Change-Id: I6c82daf49fe3189d04550781d64d57c30c95f552
gl.cpp
9db01a7c1c64d2ce00fdbeb0730278998b97183f 15-Mar-2011 Jamie Gennis <jgennis@google.com> am 0ea44ac0: am 00f47af8: Merge "SurfaceTexture: disallow unsupported uses." into honeycomb-mr1

* commit '0ea44ac0deb5cc95d60dd512c3a8f6a1bb69f5d1':
SurfaceTexture: disallow unsupported uses.
5c0c93a8c49b4053744efb8953b915fa7f0923a5 14-Mar-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: disallow unsupported uses.

This change makes the ANativeWindow_lock NDK function error out if it is
passed an ANativeWindow with a concrete type that is not Surface. It
also makes eglCreateWindowSurface fail if it is passed a
SurfaceTextureClient as its 'window' argument.

Bug: 4087277
Change-Id: Ie68c50c52d88f72d8a387f6c094908044c83a88c
gl.cpp
85f33a7168c5563aa7765b91d5d045fe62bcfcd8 11-Mar-2011 David Li <davidxli@google.com> GLES2Debugger: Make command exchange async to improve performance.

In message loop, use select to check for available commands from client,
rather than always expecting commands in eglSwapBuffers.

Change-Id: Ifc34dd77c2528c8b9c71f594e3eda4f93400cd2b
Signed-off-by: David Li <davidxli@google.com>
gl.cpp
65948aa0466e3e833c5a4e4feec78c787d8769a7 11-Mar-2011 David Li <davidxli@google.com> GLES2Debugger: Added DbgContext and vertex data capturing.

Send VBO related commands to client, which tracks the state.
Maintain index buffer content and vertex attrib pointer/buffer state on server.
During glDrawArrays/Elements, send user memory data to client.

Change-Id: Ia920e90479329b301ae4b5735e833eeb20293c94
Signed-off-by: David Li <davidxli@google.com>
oader.cpp
gl.cpp
race.cpp
b33d5cff62c912fb0312daca083002558fb4a26b 05-Mar-2011 David Li <davidxli@google.com> Added screenshot after glDraw* option to GLES2 Debugger

Also added timing mode option using utils/Timers.h.
Factored out common code to reduce size.
Improved Protobuf message.
Uploads data from glBufferData and glBufferSubData.

Change-Id: Iaae5e706235d942df81c7eada7223fb0b0583911
Signed-off-by: David Li <davidxli@google.com>
gl.cpp
2f5a6557ef6a7b9fd33077cfd8a037904d41e3bd 02-Mar-2011 David Li <davidxli@google.com> Initial commit of GLESv2 debugger server

Use debug.egl.debug_proc property to match process cmdline.
Binds to TCP:5039 and waits for client connection.
Sends function call parameters, textures and shaders using Protobuf.
Java Eclipse client plug-in is next.

Change-Id: I183b755263663f87e86dde1ad12f527d0445fd57
Signed-off-by: David Li <davidxli@google.com>
oader.cpp
gl.cpp
race.cpp
af1cf07134dccc884c654da0e713c9213d7be3f4 16-Feb-2011 Kenny Root <kroot@google.com> Clean up use of HAVE_ANDROID_OS

HAVE_ANDROID_OS was defined as "1" for targets, but never defined as "0"
for non-targets. Changing them to #ifdef should be safe and matches
all the other uses of HAVE_ANDROID_OS throughout the system.

Change-Id: I82257325a8ae5e4e4371ddfc4dbf51cea8ea0abb
gl.cpp
f1cde8e0ed019791641bd07c5c1f965b0f8cf7c5 31-Jan-2011 Jamie Gennis <jgennis@google.com> Clear all EGL errors when entering EGL funcs.

This changes the clearError function in the EGL wrapper layer to simply
call eglGetError(). That should clear any pending errors from all the
underlying EGL implementations, which is needed to correctly report the
error for the most recently called EGL function.

Change-Id: Iad19c69f0c5305e873f3c2f96d353280d31f7b61
gl.cpp
4aea6bff1409590559341fe41b68360b8da64e26 22-Jan-2011 Michael I. Gold <gold@nvidia.com> egl: clear error on function entry

Clear the current thread error state on entry to API functions as
mandated by the EGL 1.4 specification, section 3.1. glGetError
returns additional information about the "most recent EGL function".

Change-Id: Ic24c64b39294ffc1a4e43fa72663e076b9d7decf
gl.cpp
609bb4dbf04d78c9f7b4cc5988aafda020c38a61 04-Jan-2011 Michael I. Gold <gold@nvidia.com> egl: fix GetProcAddress for EGLimage extensions

Return wrappers from GetProcAddress for glEGLImageTargetTexture2DOES
and glEGLImageTargetRenderbufferStorageOES which unwrap the EGLimage
handle before calling through to the implementation.

Change-Id: I2f5b180ab3ccdb28a4f510a2bd8c2eee941a84df
gl.cpp
ca41e362662a50383679b18d9832f6120dc721d9 13-Jan-2011 Michael I. Gold <gold@nvidia.com> egl: expose EGLimage extensions

Add EGL_KHR_gl_texture_cubemap_image and EGL_KHR_gl_renderbuffer_image
to the static EGL extension string since these require no new APIs
beyond what is already required.

Change-Id: I2d1fde86b19bb9eee46b3b977f51784a17cfcc3c
gl.cpp
0c3ce2a3650e5a8a005179162c87af639eef60cf 23-Dec-2010 Michael I. Gold <gold@nvidia.com> egl: fixes for object refcounts

eglMakeCurrent() would only deref the previous surfaces if the old and
new contexts were the same. eglTerminate() should not touch TLS.
eglReleaseThread() needs to unbind the current context.

Change-Id: I213b8be77b1a23b5a8a6afaac60643662c8aa010
gl.cpp
2fa3af5b43ed6c4288fcc25ac05efbad17ef8bf2 09-Dec-2010 Mathias Agopian <mathias@google.com> am 054ae782: am e1752f41: Merge "fix [3258603] \'Quadrant\' benchmark crashes inside eglQueryContext on GB/Crespo" into gingerbread

* commit '054ae78245fe9b4c14bbc372ae77cd0a977ded73':
fix [3258603] 'Quadrant' benchmark crashes inside eglQueryContext on GB/Crespo
c3ce8809728cad1724458006a38892d2fa0d0e4d 09-Dec-2010 Mathias Agopian <mathias@google.com> fix [3258603] 'Quadrant' benchmark crashes inside eglQueryContext on GB/Crespo

eglQueryContext(..., EGL_CONFIG_ID, ...) is dereferencing an uninitialized pointer
due to a typo.

Change-Id: I100addf3150f19cb6dfbce9987fb5239dd240878
gl.cpp
b0c48b89934ec6fdef36ca438ab7ffffb5b2e014 07-Dec-2010 Mathias Agopian <mathias@google.com> am 0484a673: am daef0a04: Merge "[3229973, 3247470, ...] set EGLNativeWindowSurface\'s format in EGL" into gingerbread

* commit '0484a673c5839d2be9e615e52c6a45febdf1127b':
[3229973, 3247470, ...] set EGLNativeWindowSurface's format in EGL
644bb2a29e5c725a92f8744b6065a5ca7d7dc31f 25-Nov-2010 Mathias Agopian <mathias@google.com> [3229973, 3247470, ...] set EGLNativeWindowSurface's format in EGL

(there are multiple bugs this should fix)

we now use the EGL_NATIVE_VISUAL_ID of a config to set
the ANativeWindow's format from eglCreateWindowSurface(),
this guarantees that the surface's format will match
whatever EGLConfig the user chose.

this should fix all current and future config/surface format
mismatch and allow users to easily select 32-bits surfaces.

Change-Id: I3835d0eb70c75eeecded3c3509a0a8207554c98b
gl.cpp
744026fed6be5a95927de2db1a9c76a60473bd12 09-Nov-2010 Mathias Agopian <mathias@google.com> DO NOT MERGE. workaround [3177481] eglGetProcAddress() returns the wrong pointer for some GL extensions

We just make sure eglGetProcAddress() will return NULL for
glEGLImageTargetTexture2DOES
glEGLImageTargetRenderbufferStorageOES

which is better than returning the address of the wrong implementation.

the correct fix is more involved.

Change-Id: I585a1f40e564f862e5dd382224609ccd069cd3b5
gl.cpp
6132b3703da76389e81d26b0023846a78b008603 28-Oct-2010 Jack Palevich <jackpal@google.com> Trace glUniformXXv and glUniformMatrixXfv calls.

Change-Id: I653021d2174fa1a7343d10b0fd2c29b3e5147be6
race.cpp
a2dd6cf59962e3a21a47df29b2f243e904839ba7 27-Oct-2010 Jack Palevich <jackpal@google.com> OpenGL tracing.

Enable with:

adb shell setprop debug.egl.trace 1

Change-Id: Icfbc795f5260141510975228e72234e9aab56a85
gl.cpp
race.cpp
30faafb7d3544ab013958fbc920c1bc4d3f05472 24-Sep-2010 Mathias Agopian <mathias@google.com> am 4eb1ad5e: am 524a6d8e: Merge "better fix for [3028370] GL get error should return a valid error if no context is bound." into gingerbread

Merge commit '4eb1ad5e98c7b36f7ac4ec8c3270f9763afd107e'

* commit '4eb1ad5e98c7b36f7ac4ec8c3270f9763afd107e':
better fix for [3028370] GL get error should return a valid error if no context is bound.
6f0871222f04dfeb479d37fe9753d491e3150e42 24-Sep-2010 Mathias Agopian <mathias@google.com> better fix for [3028370] GL get error should return a valid error if no context is bound.

it turns out that we cannot return INVALID_OPERATION from glGetError() because the
GL spec says that it must be called in a loop until it returns GL_NO_ERROR.

now, we always return 0 from GL functions called from a thread with no
context bound. This means that glGetError() will return NO_ERROR in this case,
which is better than returning a random value (which could trap the app in a loop).

if this happens in the main thread of a process, we LOG an error message once.

Change-Id: Id59620e675a890286ef62a257c02b06e0fdcaf69
gl.cpp
aa22d205549f5c9604f5d66b5368c53b484c3638 23-Sep-2010 Mathias Agopian <mathias@google.com> am 9c4d7d67: am 5c6c5c7a: fix [3028370] GL get error should return a valid error if no context is bound.

Merge commit '9c4d7d677097981a349c718902e29050dad3d59f'

* commit '9c4d7d677097981a349c718902e29050dad3d59f':
fix [3028370] GL get error should return a valid error if no context is bound.
05c53113e0c73c7cab61edf53524c61c20a547c2 23-Sep-2010 Mathias Agopian <mathias@google.com> fix [3028370] GL get error should return a valid error if no context is bound.

glGetError() will now always return GL_INVALID_OPERATION if called from a thread
with no GL context bound.

Change-Id: I28ba458871db051bb4f5a26668a1fa123526869c
gl.cpp
cd2c51cf451bb4ff8cde6724b10e420b42ca4d90 22-Sep-2010 Mathias Agopian <mathias@google.com> am d01ce192: am 9d5fac51: Merge "fix small bug in EGL error management" into gingerbread

Merge commit 'd01ce1924a51539c4d47ef1f55913bdf1a018124'

* commit 'd01ce1924a51539c4d47ef1f55913bdf1a018124':
fix small bug in EGL error management
f3c24f87036fb269cef18940e0fa17b590f10aa1 22-Sep-2010 Mathias Agopian <mathias@google.com> Merge "fix typo EGL_NO_IMAGE_KHR -> EGL_NO_SYNC_KHR"
a93b957e8e3170b0cc7b7fb5d847f6e98fb1e87b 22-Sep-2010 Mathias Agopian <mathias@google.com> fix typo EGL_NO_IMAGE_KHR -> EGL_NO_SYNC_KHR

Change-Id: I38c87803e32030918f2deb06381eabce0faa870c
gl.cpp
02dafb5068be31cc45af897a8bd1cae8f4724401 22-Sep-2010 Mathias Agopian <mathias@google.com> fix small bug in EGL error management

make sure to clear our EGL implementation's error when returning
an error from an underlying implementation

Change-Id: Ibce4726cef1f900e4c7f16002345d7a07f8cdf41
gl.cpp
04b9ff8e2682f057c3f6a655bbc60db19585ede6 21-Sep-2010 Brian Swetland <swetland@google.com> am 5c746522: am 181e5ea8: Merge "support loading EGL libraries from /vendor/lib/egl as well as /system/lib/egl" into gingerbread

Merge commit '5c7465220d52c64c87fe4566fe109c649ec5c4f7'

* commit '5c7465220d52c64c87fe4566fe109c649ec5c4f7':
support loading EGL libraries from /vendor/lib/egl as well as /system/lib/egl
2b9e4f6a2490864ead44e88a68da78be5cb3da22 20-Sep-2010 Brian Swetland <swetland@google.com> support loading EGL libraries from /vendor/lib/egl as well as /system/lib/egl

Change-Id: Idd9ca85ce3ba6c92234375071b53e5365e689062
oader.cpp
oader.h
c291f585855f0e2569bde9dd47b62e46c06c45f3 28-Aug-2010 Mathias Agopian <mathias@google.com> Add support for KHR_fence_sync

Change-Id: Ie2771b5869c9c8dcf5ecf9318e2ee6d4d1cd5cc9
gl.cpp
gl_entries.in
acd8fd04934c3d5fb9853fd250b6a7f2ab347276 09-Sep-2010 Mathias Agopian <mathias@google.com> am a9ff29b5: am 6808e6a8: Merge "Fix a few typos in EGL wrapper" into gingerbread

Merge commit 'a9ff29b59cf33e552285a0bff3caf7a44f93f1c0'

* commit 'a9ff29b59cf33e552285a0bff3caf7a44f93f1c0':
Fix a few typos in EGL wrapper
77fbf8ddd9ecdde8272de845db29c34a6f1ff55e 09-Sep-2010 Mathias Agopian <mathias@google.com> Fix a few typos in EGL wrapper

Change-Id: I3b815ca6ec334ca12088f9721eece33df42b2e46
gl.cpp
8e4b5a3e6af0dcb636b6f7baa9e908681776fa36 28-Aug-2010 Mathias Agopian <mathias@google.com> Add KHR_gl_texture_2D_image extension string.
gl.cpp
27e2fac3370d2de56c05b9ec838ceff9a10b137c 27-Aug-2010 Mathias Agopian <mathias@google.com> cleanup EGL a bit. remove unused extension.

Change-Id: I7758bc7d6dc2e70fc3590fe939ebf71fbcde7059
gl.cpp
10cab190ba3bdad058cbb674f956e7b251bf74da 27-Aug-2010 Mathias Agopian <mathias@google.com> cleanup EGL a bit. remove unused extension.

Change-Id: Ia87120b076ab1bf7b28f06087878d8161fb46c88
gl.cpp
4a88b522359c080d4da5ac3f016b3272021655c9 13-Aug-2010 Mathias Agopian <mathias@google.com> fix [2912927] Can't get NV_draw_path extension to work

there was a problem with eglGetProcAddress() which would only work with
GLES 1.x contexts.

Change-Id: I4747671cbf7ed469bb471a377f1d6f36550d24df
gl.cpp
7f781d155221c4067c93f85b4153c204423f49f2 10-Aug-2010 Mathias Agopian <mathias@google.com> improve a bit the implementation of eglGetProcAddress

Change-Id: Ie07f33ae2162830df1e4f3d3b5e00fcfb8c350d6
etProcAddress.cpp
24035338ed6329e4d85fb00cf99a91e2cdd55ba5 03-Aug-2010 Mathias Agopian <mathias@google.com> fix [2421247] implement eglGetProcAddress(), needed in the ndk

Change-Id: I5027a27b43c0dd449a404024087853ca05bb8e4e
gl.cpp
etProcAddress.cpp
cee79391c8c4e4111dd2f5074fa84d47b2a8f153 27-Jul-2010 Mathias Agopian <mathias@google.com> fix [2870926] Issue 9802: EGL wrapper has not been implemented correctly for eglQuerySurface().

rework how our EGL wrapper manages EGLConfig:

- we now store the EGLConfig with the EGLSurface and EGLContext
so that we can have easy access to it from eglQueryContext
and eglQuerySurface.

- EGLConfig now are an index into a sorted table of egl_config_t,
we use a binary search to retrieve our EGLConfig (the index) from
the implementation's EGLConfig.

- egl_config_t keeps track of the implementation's index,
EGLConfig and CONFIG_ID as well as our CONFIG_ID.

In many ways, this implementation is simpler and more robust, as it doesn't
assume anything about the number of implementations nor what EGLConfig is
made of (the previous code assumed EGLConfig didn't usem more than 24-bits).

Change-Id: Id5abe923aacb6e1fd2b63bd8c15d7b04ae824922
gl.cpp
4c39f8f9e2df75a5b53b3ccae712a8946195a8a3 02-Jul-2010 Jamie Gennis <jgennis@google.com> Fix a bug that prevented the creation of EGL shared contexts.

Change-Id: I6b0ec5ef86abdd4e9083067ba297107cfb094df3
gl.cpp
04aed2149d95f04602127eef4d5b6d7d48684359 17-May-2010 Mathias Agopian <mathias@google.com> fix a crasher in our EGL wrapper when attrib_list is NULL in eglChooseConfig

the EGL specification states that this should be treated as though it was
an empty list terminated with EGL_NONE.

Change-Id: I294104370a86b5e5c34c7bcf15c5459eab464631
gl.cpp
bf41b11ef889b69a5ef75a2e223c95c5cfc5731c 09-Apr-2010 Mathias Agopian <mathias@google.com> small cleanup. gEGLImpl should have been static

also added a ctor to initialized it in case we use it ont he stack
one day.

Change-Id: I2736b9bce3d8ba3b74fd029de4c18cca2cdbbf60
gl.cpp
81cd08448586d73e1ea602f4c83a2203483ae735 16-Mar-2010 Jack Palevich <jackpal@google.com> Implement eglInitialize / eglTerminate reference counting

Previously we imlpemented the standard semantics for
eglInitialize / eglTerminate, which are that
eglInitialize may be called any number of times,
but the first call to eglTerminate will terminate
the display.

Now we follow reference-countins semantics, which
means that eglTerminate will only terminate the
display when the reference count returns to zero.

This change allows EGL to be used by multiple
independently written modules in the same process.

(Otherwise there is no way for the independent
modules to coordinate their use of the display.)
gl.cpp
75bc27803efd96d15f48ef36429b27ab31182b67 06-Feb-2010 Mathias Agopian <mathias@google.com> fix [2189862] Race condition in eglIntialize and eglDestroy

there is now a lock protext a perticular display. it's held during
initialization and destruction.
gl.cpp
8063c3ab04c922ef7c9bc3984a75503598001fd9 25-Jan-2010 Mathias Agopian <mathias@google.com> fix [2303866] eglMakeCurrent doesn't return all error messages described in the spec
gl.cpp
863e5fdde858d732ac76320369b6304599f23b4c 30-Oct-2009 Mathias Agopian <mathias@google.com> fix[2222341] Soft reset while going back from camcorder settings

add a way to convert a mapped "pushbuffer" buffer to a gralloc handle
which then can be safely used by surfaceflinger, without including
gralloc_priv.h
gl.cpp
df2d92940550bc68c3c237937bce7ac16d9fa91b 29-Oct-2009 Mathias Agopian <mathias@google.com> return proper error code from eglCreateImageKHR
gl.cpp
618fa10949c42eb83fa5fe105fe542bcff833dda 14-Oct-2009 Mathias Agopian <mathias@google.com> fix [2187212] add support for GLESv2 dispatch based on TLS

Instead of using a different function pointer table for ES 1.x and ES 2.x,
we use a single one that is the union (sort|uniq) of both tables. Two
instances of this table are initialized with pointers to GL ES 1.x and GL ES 2.x
entry-points.
When a context is created, we store its version number and when it is bound to a
thread we set the approruiate table based on the stored version.

This introduce no penalty while dispatching gl calls to the right API version.

[Pending Dr No approval for MR1]
oader.cpp
oader.h
gl.cpp
ooks.cpp
8c17384a5edd027376926b857af1fb170dbe9b43 21-Sep-2009 Mathias Agopian <mathias@google.com> log an error when loading an existing GL driver fails
oader.cpp
a69e0ed4a38ded9778d37da453899d527c4396b9 25-Aug-2009 Mathias Agopian <mathias@google.com> fix a bug recently introduced where EGL couldn't be initialized again after it had been terminated once
gl.cpp
9429e9c8ad8ae41104c693235a9376b3086da2e9 21-Aug-2009 Mathias Agopian <mathias@google.com> first step for fixing [2066786] EGL object lifetime management doesn't respect the EGL spec

this change fixes the lifetime mgt of EGLSurface, EGLContext and EGLImageKHR in the EGL wrapper.
EGLDisplay is still somewhat bogus and libagl's EGL is still incorrect.

The idea of the change is that EGL objects are put in a list when created and removed when destroyed.
Before each use, we first verify if the object is in the list and if so a reference is taken and kept
for the scope of the whole EGL API being called, if not, an error is returned.

Upon object destruction, the object is simply marked as "terminated" (this is not protected by a lock
because it doesn't really matter). This flag is only used to deny access to the object by other APIs
while it's still valid (for instance current or being used by another function in another thread).
A reference is also removed and the object can then actually be destroyed when going out of scope.
gl.cpp
baca89c06a40c6c19ae2294fb4263d893126320c 21-Aug-2009 Mathias Agopian <mathias@google.com> fix a bug in ComponentSizeChooser where it could pick a software EGLConfig instead of a better h/w one.

We now just try to honor the stencil / depth buffer "at least", while doing a "shortest distance" on the colors.
oader.cpp
923c661a86c9e0737b3f16ceffd77e71e023ca54 18-Aug-2009 Mathias Agopian <mathias@google.com> fix bug [2021677] egl driver unloaded after eglTerminate() is called

refactored the code so that:
- EGL APIs that can be called before or after eglInitialize() will work by loading the drivers first
- make eglGetDisplay() a lot more efficient
- make sure that EGL drivers are loaded in a thread-safe way
- don't unload the drivers upon calling eglTerminate(), they're now never unloaded, since there is no safe way to do it (some thread could be running)
- updated our EGL version to 1.4
- return better error codes if errors happen during initialization
gl.cpp
24e5f5290195e1c02c18730d0639efda65d64914 13-Aug-2009 Mathias Agopian <mathias@google.com> Better error handling in EGL extensions
gl.cpp
d274eae545ded690846416d6bfe987d8405eeaba 01-Aug-2009 Mathias Agopian <mathias@google.com> log opengl-call-with-no-context only once per thread, instead of for each function call
gl.cpp
574c16f9f89ab18c7b54e9b262ef3d5359a2a709 29-Jul-2009 Mathias Agopian <mathias@google.com> GLESv2 couldn't be loaded due to wrong path specification
oader.cpp
2521f47c4d45a4d02c3a9f608c73de744c8b44f6 10-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am 46e28db8: Merge change 6713 into donut

Merge commit '46e28db8818332e3cda4cc410cc89a1ed7ce4db6'

* commit '46e28db8818332e3cda4cc410cc89a1ed7ce4db6':
fix for [1969185] valgrind errors in new gl stuff
dacd7a33c458240355c4b22dcc82809241447ab8 10-Jul-2009 Mathias Agopian <mathias@google.com> fix for [1969185] valgrind errors in new gl stuff
gl.cpp
fc865658b455de3bfbac609de391aaa44bea0748 08-Jul-2009 Marco Nelissen <marcone@google.com> Make opengl loader use an absolute path.
oader.cpp
8d2e83b9f44c7f2207a312fcfda8eb3a4c26745f 25-Jun-2009 Mathias Agopian <mathias@google.com> Add eglGetRenderBufferANDROID() extension, which returns the current render buffer as an android_native_buffer_t*
gl.cpp
gl_entries.in
af74213546acc887b2b9e93459124cefd7f5e335 25-Jun-2009 Mathias Agopian <mathias@google.com> fix [1942438] eglGetCurrentSurface() returns bogus value
gl.cpp
f51f9c8af3a9974fa71be73a905aec70672aa0cb 25-Jun-2009 Mathias Agopian <mathias@google.com> fix [1942438] eglGetCurrentSurface() returns bogus value
gl.cpp
f909cb6c69aa3ac8ffb6a2b9cd565b4b1e8b99c0 04-Jun-2009 Mathias Agopian <mathias@google.com> remove some spurious debuging LOGD
oader.cpp
acdebe352dc7dadc1122a87d45137fd2441b329a 04-Jun-2009 Mathias Agopian <mathias@google.com> fix/clean these Android.mk following dbort and joeo's comments
oader.cpp
de58697644a52a614ad9498aa087e95d4a223673 29-May-2009 Mathias Agopian <mathias@google.com> implement a real loader for EGL drivers

we now look for a config file in /system/lib/egl/egl.cfg that describes the association of a display to a driver.
these drivers are named: /system/lib/egl/lib{[EGL|GLESv1_CM|GLESv2] | GLES}_$TAG.so
oader.cpp
oader.h
gl.cpp
ooks.cpp
b1a39d67be99fe6c4545b25e10ac82a5dd1df634 28-May-2009 Mathias Agopian <mathias@google.com> Added most of the support needed for GLES 2.x
gl.cpp
gl_entries.in
5c846bd6cfa2d8fd71c19f15f07c495cd397290b 21-May-2009 Mathias Agopian <mathias@google.com> make sure to fail to software when the h/w renderer cannot be initialized
pu.cpp
d8fb7b586f3cfac42694208547b58438d7f3b3ed 18-May-2009 Mathias Agopian <mathias@google.com> remove libEGL and libGLESv1_CM dependencies on libutils and libui
gl.cpp
pu.cpp
d717598616910b5454b56429dec3bfad2757bd52 15-May-2009 Mathias Agopian <mathias@google.com> Merge commit 'goog/master' into merge_master

Conflicts:
opengl/libagl/Android.mk
opengl/libs/Android.mk
opengl/libs/egl_impl.h
eccc8cfb2fc83e7f924016ef31e3a4a12e347e99 13-May-2009 Mathias Agopian <mathias@google.com> should help fix the Simulator build.
gl.cpp
94aa09680a530353448bc9052cec9c6b205db8b4 09-May-2009 Mathias Agopian <mathias@google.com> should fix the build.
pu.cpp
e6bf8b32b616450f80b64d226ea673f4a2e0bf8d 07-May-2009 Mathias Agopian <mathias@google.com> fix EGL extension string names
gl.cpp
df3ca30bf663cb8eed88ee3f16fb5e9a65dc00fc 05-May-2009 Mathias Agopian <mathias@google.com> created an new EGL extension called ANDROID_swap_rectangle

ANDROID_swap_rectangle allows to specify the rectangle affected by eglSwapBuffers(), anything outside of this rectangle is unchanged. in particular EGL_BUFFER_DESTROYED only applies to that rectangle. This extension as well as EGL_BUFFER_PRESERVED allow major optimizations on surfaceflinger, which can redraw only the dirty area during compositing.

However, ANDROID_swap_rectangle allows further optimizations in EGL by reducing the amount of copy-back needed. ANDROID_swap_rectangle is particularily important for software implementations.
gl.cpp
7be3e5d2d8101a8f5e12bbdf650431a734f88eba 30-Apr-2009 Mathias Agopian <mathias@google.com> Merge commit 'goog/master' into merge_master

Conflicts:
libs/surfaceflinger/Layer.cpp
libs/surfaceflinger/SurfaceFlinger.cpp
opengl/libagl/egl.cpp
opengl/libs/EGL/egl.cpp
opengl/libs/GLES_CM/gl.cpp
opengl/libs/GLES_CM/gl_api.in
opengl/libs/gl_entries.in
opengl/libs/tools/glapigen
3d8817935b47ef67d86a872f64b1ba0e31ae6d0a 25-Apr-2009 Mathias Agopian <mathias@google.com> oops forgot to remove a LOGD when loading an opengl driver
gl.cpp
1c2be6af86800875d57bb493fd6ce6b18d742dfe 24-Apr-2009 Mathias Agopian <mathias@google.com> Make sure to map undefined OES functions to their non-OES counterpart if it exists.
gl.cpp
b519abb606c819c446a408f422530268b21a100b 24-Apr-2009 Mathias Agopian <mathias@google.com> use gl.h to generate the *.in files. we are now supporting the full gl.h and glext.h apis.
gl.cpp
53238bddeab7b4633bfdb59fac67b0af1211955a 23-Apr-2009 Mathias Agopian <mathias@google.com> integrate some OpenGL ES changes back from master_gl in preparation of opening GLES to the NDK.
gl.cpp
076b1cc3a9b90aa5b381a1ed268ca0b548444c9b 10-Apr-2009 Mathias Agopian <mathias@google.com> Integrate from //sandbox/mathias/donut/...@145728

SurfaceFlinger rework for new EGL driver model support.
gl.cpp
749c63dbff0ab66223f30af1bad4ca56bd26d5d2 25-Mar-2009 Jack Palevich <> Automated import from //branches/master/...@142578,142578
gl.cpp
87d80228cc6b8904da036d51d41252f8301e41d2 25-Mar-2009 Jack Palevich <> Automated import from //branches/donutburger/...@142484,142484
gl.cpp
edbf3b6af777b721cd2a1ef461947e51e88241e1 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
gl.cpp
pu.cpp
d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
gl.cpp
pu.cpp
43aa2b1cbf7a03e248e10f4d0fec0463257cd52d 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
gl.cpp
0bb03408de8886e8d17013219967d42fb9c8cf8c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
gl.cpp
d2bd26d32612a1c7d5629202e3f41741b7936c60 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
gl.cpp
a6938bab1f6fa76ae98ebbe44f4e534e05fa0993 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
gl.cpp
pu.cpp