• Home
  • History
  • Annotate
  • only in /frameworks/native/opengl/libs/
History log of /frameworks/native/opengl/libs/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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/egl.cpp
GL/trace.cpp
LES2/gl2.cpp
be3c3e4ecad501eecfe1f7a424a792f0f7f3f307 16-Oct-2012 Romain Guy <romainguy@google.com> Update comments to reflect what the code actually does

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

Change-Id: I53ac91a9ce07b5dd5f2ee0e3cc5b65b6402f9229
GL/eglApi.cpp
8d5d2019805df1f27cbec07eeca47dd5ab453dad 08-Oct-2012 Chet Haase <chet@google.com> Revert "Add GL Error logs (temporary)"

This reverts commit 2da2c15068327a4fdad411f638905abcb2209d8a.
ndroid.mk
LES2/gl2.cpp
2da2c15068327a4fdad411f638905abcb2209d8a 05-Oct-2012 Chet Haase <chet@google.com> Add GL Error logs (temporary)

Adding logs to tell which specific methods throw OpenGL errors.

Change-Id: I1d73c7566ed1ea6610392020411762c6255a0ede
ndroid.mk
LES2/gl2.cpp
e8b0fac720b249639fa1cf2f3a06f7d88d207b76 28-Sep-2012 Chet Haase <chet@google.com> Re-enable FAST_TLS in gl2 code

Temporarily changed USE_FAST_TLS_KEY ifdef during debugging. Changing it
back now.

Change-Id: I7c2fcf7265b3d545e31ff7683bd7614100fad3e5
LES2/gl2.cpp
f12fe43e8c280923fde743f22cea238e48c929f1 28-Sep-2012 Romain Guy <romainguy@google.com> New compile-time flags to make debugging easier for us poor souls
Bug #7195815

Change-Id: I23e7ac991891b9586cb8ed20b1305c8b1b3e2b43
LES2/gl2.cpp
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/egl.cpp
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
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
GL/eglApi.cpp
3ff48e5e69955b37292446c0f2ac98e8238bdaca 24-Sep-2012 Jamie Gennis <jgennis@google.com> EGL: add the EGL_ANDROID_framebuffer_target enum

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

Change-Id: I1db43e96aa5e9e91a6176a4a3e5aa9d1f3ee4a7e
GL/egl_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/egl_display.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
ndroid.mk
GL/egl_cache.cpp
010dd4fb892aecf71e4631c22148fe57ef5b3958 10-Sep-2012 Jamie Gennis <jgennis@google.com> EGL: Add the EGL_ANDROID_wait_sync extension

Change-Id: Ie9a78e07fcaf27c5c13797141ad3c692217607fb
GL/eglApi.cpp
GL/egl_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
GL/eglApi.cpp
GL/egl_display.cpp
GL/egl_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
ad9693f4f0586d18a82fdbb70c6a89e43d662ff1 16-Aug-2012 Siva Velusamy <vsiva@google.com> gltrace: flush trace buffer on createContext & makeCurrent

Certain apps (e.g. chrome) seem to create contexts which are unused
for long periods of time. If tracing is stopped before those contexts
are used, then the debugger never gets to know that these contexts
were created. Flushing the trace after these calls ensures that
the debugger knows about all created/used contexts.

Change-Id: I01baa11aa56ac89eddce3c2851e4bf01076984d1
LES_trace/src/gltrace_context.cpp
7e5099a9ece6a3ed7edb1b5bf60a43422428326c 02-Aug-2012 Jesse Hall <jessehall@google.com> Add compile-time option to systrace GL-ES calls

Change-Id: Ibec103bbf159626ad9745d0e071192ad424bc0e9
ndroid.mk
LES2/gl2.cpp
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/egl_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/egl_display.cpp
4b3e4ae04577d4fcce0aac40bfba4043c34047f6 12-Jun-2012 Mathias Agopian <mathias@google.com> am 1d2eb663: am 2d15fcab: Merge "reduce PB size from 2MB to 512KB" into jb-dev

* commit '1d2eb663ef5cf69aa852045c8a1c1807dfa7039e':
reduce PB size from 2MB to 512KB
3ef9e9671c224af82d2efec1a1e9a275fb9acf44 11-Jun-2012 Siva Velusamy <vsiva@google.com> gltrace: Fixup vertex attrib pointers only for GLES2

Change-Id: Ibf280c2a4372ce6e598e164eef0d72b7c0a6d1c2
LES_trace/src/gltrace_context.cpp
LES_trace/src/gltrace_context.h
LES_trace/src/gltrace_fixup.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
ndroid.mk
GL/Loader.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/egl_display.cpp
2fdcc81ddfdbdfbbde63bd64e9ac9272b5417553 16-May-2012 Siva Velusamy <vsiva@google.com> gltrace: Allow receiving commands of length > 4

Currently, gltrace offers very few trace collection options. As a
result, these options are encoded in a single integer. The trace
control task simply receives integers and interprets them as
commands.

This patch changes the control protocol to first receive the
command length followed by the actual command itself. This allows
for future flexibility to provide enable other commands.

Change-Id: Id5f56c80a025bbbe7613ab4457e092732e7d9dc9
LES_trace/src/gltrace_eglapi.cpp
LES_trace/src/gltrace_transport.cpp
LES_trace/src/gltrace_transport.h
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
ndroid.mk
GL/egl_display.cpp
GL/egl_display.h
c7d767ad57a25eeefbbfe2610396d800f04178ed 26-Apr-2012 Siva Velusamy <vsiva@google.com> gldebugger: Allow connections from root user

Change-Id: I26ce670ae93c43bd36843576e824a9d7acea644d
LES_trace/src/gltrace_transport.cpp
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/egl_display.cpp
GL/egl_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
GL/eglApi.cpp
GL/egl_display.cpp
GL/egl_display.h
GL/egl_entries.in
GL/egl_object.cpp
GL/egl_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/egl.cpp
GL/eglApi.cpp
GL/egl_display.cpp
GL/egl_display.h
GL/egl_object.cpp
GL/egl_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
GL/eglApi.cpp
GL/egl_display.cpp
GL/egl_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
GL/eglApi.cpp
GL/egl_display.cpp
GL/egl_display.h
8e2f3858d5a06dae5a543d9428278f59120f7f8c 16-Mar-2012 Siva Velusamy <vsiva@google.com> gltrace: Only accept connections from the shell.

Only accept incoming connections from the shell user.

Change-Id: Ibef1a796d794d45f73db59949b39cb1ce68542b4
LES_trace/src/gltrace_transport.cpp
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/egl.cpp
GL/egl_display.cpp
50129e4ae2777dfbe0738f0f69b17f4d8f9400e2 29-Feb-2012 Siva Velusamy <vsiva@google.com> gltrace: Send vertex attribute data after glDraw() call.

This patch enables tracing of vertex attribute data that
is specified using glVertexAttribPointer().

At the time the glVertexAttribPointer() call is made, we
only receive a pointer in client space, without any indication
of the size (# of attributes). This size is known only at
the time of the glDraw() call.

This patch generates a new message glVertexAttribPointerData()
when a draw call is issued that contains the vertex attribute
data.

A glDrawArrays() call directly gives the size of data to copy.
A glDrawElements() call gives the indices to copy. In such a
case, all data between the min & max indices drawn are copied
and sent to the host. To support glDrawElements() with an
element array buffer, this patch also adds state that maintains
a copy of all element array buffers.

Change-Id: I434da794a0aa9ada8e7474e219ffb1d79b183ecf
LES_trace/dev.make
LES_trace/gltrace.proto
LES_trace/src/gltrace.pb.cpp
LES_trace/src/gltrace.pb.h
LES_trace/src/gltrace_context.cpp
LES_trace/src/gltrace_context.h
LES_trace/src/gltrace_fixup.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
GL/eglApi.cpp
9801142afbe3d906259b634ef3bc8bebdafe0083 27-Feb-2012 Siva Velusamy <vsiva@google.com> gltrace: Make code 64-bit safe.

Currently, the trace API passes the pointers that need to be
patched up via 32 bit integers. Such code will not be 64 bit safe.
This patch sends all pointers in a separate array of pointers
for the fixup calls to read from.

Change-Id: If975333f11a6f6f9a74fba57de328affaed452a5
LES_trace/src/gltrace_api.cpp
LES_trace/src/gltrace_fixup.cpp
LES_trace/src/gltrace_fixup.h
LES_trace/tools/genapi.py
9291da97cbb5f8d3ae5eb9e8d5415ef85916d982 23-Feb-2012 Siva Velusamy <vsiva@google.com> gltrace: attach buffer data sent with glBufferData

Attach the buffer that is passed with glBufferData
and glBufferSubData to the proto buf.

Change-Id: I1b4c1172d405736b06cb0a356a6e241e1d60c4d5
LES_trace/src/gltrace_fixup.cpp
05df4504e57657994a89e424b6881ee26d0f313c 17-Feb-2012 Siva Velusamy <vsiva@google.com> gltrace: Trace thread time and wall clock time.

For each gl function, trace both the thread and wall clock
times.

Change-Id: I32b6caa67fa50bf915dab89b3c5021ee82e28d55
LES_trace/TODO.txt
LES_trace/gltrace.proto
LES_trace/src/gltrace.pb.cpp
LES_trace/src/gltrace.pb.h
LES_trace/src/gltrace_api.cpp
LES_trace/src/gltrace_fixup.cpp
LES_trace/src/gltrace_fixup.h
LES_trace/tools/genapi.py
3ac9473cb94b575427e1587911adb7d4b4ba6151 15-Feb-2012 Mathias Agopian <mathias@google.com> Merge "Don't wrap EGLImageKHR and EGLSyncKHR anymore"
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/egl.cpp
GL/eglApi.cpp
GL/egl_object.h
LES2/gl2.cpp
LES2/gl2ext_api.in
LES_CM/gl.cpp
LES_CM/glext_api.in
gl_impl.h
ools/glapigen
fefddbc181c2b674868c6cfbf64a9b02df7175c2 15-Feb-2012 Siva Velusamy <vsiva@google.com> Merge "gltrace: Patch up all glUniform*() calls."
88e8e5a3f16f0003bd2b43142241b8e1a9a46abe 15-Feb-2012 Siva Velusamy <vsiva@google.com> gltrace: Patch up all glUniform*() calls.

This patch updates the trace information for all glUniform*() calls
to have the right data (the actual uniforms that are passed).

In addition, as soon as a program is linked, information regarding
all the active attributes and uniforms is passed on to the debugger.

Change-Id: Icfbc6722789b42c413a845cf546577fa6de7da2b
LES_trace/src/gltrace_fixup.cpp
7773c435bc5da8217433e1b242d3a6712a17b5f7 14-Feb-2012 Mathias Agopian <mathias@google.com> EGLConfig is now not remaped to an internal EGLConfig

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

Change-Id: I7a6b9db4c5d60f4407c6061e7a68729af63d5242
GL/Loader.cpp
GL/egl.cpp
GL/eglApi.cpp
GL/egl_display.cpp
GL/egl_display.h
GL/egldefs.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
GL/Loader.cpp
GL/Loader.h
GL/egl.cpp
GL/eglApi.cpp
GL/egl_cache.cpp
GL/egl_display.cpp
GL/egl_display.h
GL/egl_object.cpp
GL/egl_object.h
GL/egldefs.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/egl_display.cpp
GL/egl_display.h
a7167f364737c12e621d836f470cf328c6e111cd 01-Feb-2012 Siva Velusamy <vsiva@google.com> gltrace: fixup Push & Insert Marker calls

Change-Id: I58ced7225fac79ec636a65da4883614a5dce6dff
LES_trace/src/gltrace_fixup.cpp
fb87e54a9af8bc5063ca4deebe81d90126992480 31-Jan-2012 Mathias Agopian <mathias@google.com> fix a race condition in eglMakeCurrent()

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

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

Change-Id: I743c85696e13263d3a9570824940263df0caacdc
GL/eglApi.cpp
GL/egl_display.cpp
GL/egl_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
GL/getProcAddress.cpp
9e2464c4b96d8935ee2ac1e00896f75cd7a20e0f 31-Jan-2012 Mathias Agopian <mathias@google.com> Merge "add support for GL_EXT_debug_marker"
b8c39145475391a134c052533292332516083dec 30-Jan-2012 Siva Velusamy <vsiva@google.com> Merge "gltrace: Use Unix Domain Socket rather than INET Socket"
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
GL/Loader.cpp
GL/egl.cpp
GL/eglApi.cpp
GL/egl_object.cpp
GL/egl_object.h
GL/egldefs.h
LES2/gl2.cpp
LES2/gl2_api.in
LES_CM/gl.cpp
LES_CM/gl_api.in
gl_impl.h
ools/glapigen
453851f3a00d198374395581275a9ae7fa7aa4bf 30-Jan-2012 Mathias Agopian <mathias@google.com> Merge "update GLES headers and add support for corresponding new extensions."
31272606149d83437a097800074b21e9e6a205ad 28-Jan-2012 Mathias Agopian <mathias@google.com> update GLES headers and add support for corresponding new extensions.

Change-Id: I554d9659113b4721b748ee5c1a3b1ca82b11d75e
LES2/gl2ext_api.in
LES_CM/glext_api.in
LES_trace/gltrace.proto
LES_trace/src/gltrace.pb.cpp
LES_trace/src/gltrace.pb.h
LES_trace/src/gltrace_api.cpp
LES_trace/src/gltrace_api.h
LES_trace/tools/genapi.py
LES_trace/tools/testgenapi.py
ntries.in
nums.in
ooks.h
race.in
cf701aa9fe3067f18569320d9a70eac25aaf7b20 29-Jan-2012 Mathias Agopian <mathias@google.com> remove unused code

Change-Id: If900fcc50f9ffc424e270cb6063b16a2d7bc04d3
LES2_dbg/generate_api_cpp.py
LES2_dbg/generate_caller_cpp.py
LES2_dbg/generate_debug_in.py
LES2_dbg/generate_debugger_message_proto.py
LES2_dbg/gl2_api_annotated.in
LES2_dbg/src/api.cpp
LES2_dbg/src/api.h
LES2_dbg/src/caller.cpp
LES2_dbg/src/caller.h
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/debugger_message.pb.cpp
LES2_dbg/src/debugger_message.pb.h
LES2_dbg/src/egl.cpp
LES2_dbg/src/header.h
LES2_dbg/src/server.cpp
LES2_dbg/src/vertex.cpp
LES2_dbg/test/Android.mk
LES2_dbg/test/test_main.cpp
LES2_dbg/test/test_server.cpp
LES2_dbg/test/test_socket.cpp
0832fb6407d1c85cba20a8cc0aff828db3c134de 27-Jan-2012 Siva Velusamy <vsiva@google.com> gltrace: Use Unix Domain Socket rather than INET Socket

Export trace information via abstract Unix Domain Socket (UDS).
This allows tracing of applications without INTERNET permission,
and should be faster as well.

Change-Id: Iabb67fcc2bc2484afd8128af07dca723b81c52c6
LES_trace/src/gltrace_eglapi.cpp
LES_trace/src/gltrace_transport.cpp
LES_trace/src/gltrace_transport.h
e8696a40e09b24b634214684d18526187b316a2f 16-Jan-2012 Jamie Gennis <jgennis@google.com> hack up frame latency measurement

Change-Id: I6d9a466a23285304f0e229a5649815636ab5d6af
GL/eglApi.cpp
34c726efb54a941a97a6d7252e7c1442d2eded56 17-Jan-2012 Siva Velusamy <vsiva@google.com> gltrace: fixup data for glTexSubImage2D & glDeleteBuffers

Change-Id: I1c1deb8c6026ecf1fa0ed5287ccf601416eba6dc
LES_trace/src/gltrace_fixup.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
GL/Loader.cpp
GL/egl.cpp
GL/eglApi.cpp
GL/egl_cache.cpp
GL/egl_object.cpp
GL/egl_object.h
GL/egl_tls.cpp
LES2_dbg/src/dbgcontext.cpp
LES_CM/gl.cpp
LES_trace/src/gltrace_eglapi.cpp
LES_trace/src/gltrace_fixup.cpp
LES_trace/src/gltrace_transport.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/egl_cache.cpp
GL/egl_display.cpp
GL/egl_object.h
3f194e6e3a62cbb846e8948eac8e4ce9aa7444a6 03-Jan-2012 Siva Velusamy <vsiva@google.com> gltrace: add user settings to control data captured.

Currently users do not have control over the amount of data
captured during tracing. This patch adds 3 settings that users
can enable/disable at runtime:
- capture framebuffer on eglSwap() calls
- capture framebuffer on glDraw*() calls
- capture texture data passed to glTexImage*() calls
Disabling these options when not needed signficantly decreases
the size of the trace file, and reduces performance overhead for
the running application.

These settings are stored in the per process GLTraceState.
A separate thread listens for commands from the host, and updates
the state based on the user commands.

Change-Id: Ic4518b94e8bcbc5330ac7138153721caa98b365d
LES_trace/src/gltrace_context.cpp
LES_trace/src/gltrace_context.h
LES_trace/src/gltrace_egl.cpp
LES_trace/src/gltrace_eglapi.cpp
LES_trace/src/gltrace_fixup.cpp
56ac6ff9bdc3c117e820c5a361ab45049c8b03f8 16-Dec-2011 Siva Velusamy <vsiva@google.com> gltrace: add start time & duration to each traced call.

Change-Id: Idfec8f715f6000594b6381cbfdee9fdf6d89f484
LES_trace/gltrace.proto
LES_trace/src/gltrace.pb.cpp
LES_trace/src/gltrace.pb.h
LES_trace/src/gltrace_api.cpp
LES_trace/src/gltrace_api.h
LES_trace/src/gltrace_egl.cpp
LES_trace/src/gltrace_fixup.cpp
LES_trace/src/gltrace_fixup.h
LES_trace/tools/genapi.py
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/egl.cpp
GL/eglApi.cpp
LES_trace/src/gltrace_api.cpp
LES_trace/src/gltrace_context.cpp
LES_trace/src/gltrace_context.h
LES_trace/src/gltrace_egl.cpp
LES_trace/src/gltrace_egl.h
LES_trace/src/gltrace_eglapi.cpp
LES_trace/src/gltrace_fixup.cpp
LES_trace/src/gltrace_fixup.h
LES_trace/src/gltrace_transport.cpp
LES_trace/src/gltrace_transport.h
LES_trace/tools/genapi.py
lestrace.h
59511ad1cbdb13509f5c249a5193e0180e0dbf0c 04-Jan-2012 Siva Velusamy <vsiva@google.com> Merge "gltrace: attach contents of the appropriate framebuffer"
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
GL/Loader.cpp
GL/egl.cpp
GL/egl_display.cpp
GL/trace.cpp
LES2/gl2.cpp
LES2_dbg/src/caller.cpp
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/header.h
LES2_dbg/src/server.cpp
LES2_dbg/src/vertex.cpp
LES_trace/src/gltrace_transport.cpp
2b93f0bf448160b002dec10c5bb1c9985a5950e6 09-Dec-2011 Jack Palevich <jackpal@google.com> Fix convert8To4, convert8To5

See b/5680952 "Compilation warnings in etc1.cpp" for discussion.

Fixes b/5680952

Change-Id: I0af6ba5ed5e60f3ed7a6a28eba3b09504fee1a3f
TC1/etc1.cpp
f132ac35d82a2960542619fb3fb91d22ab256dc7 08-Dec-2011 Siva Velusamy <vsiva@google.com> gltrace: attach contents of the appropriate framebuffer

Currently, gltrace always attaches the contents of the currently
bound framebuffer. This patch changes it to attach the contents
of FB0 on eglSwap, and the currently bound framebuffer for the
glDraw* calls.

Change-Id: Ice0520d45d75638fe61cd91149df773074216510
LES_trace/src/gltrace_context.cpp
LES_trace/src/gltrace_context.h
LES_trace/src/gltrace_egl.cpp
LES_trace/src/gltrace_fixup.cpp
LES_trace/src/gltrace_fixup.h
a8cfde8897c840ce6a491a054ade806b41df2a70 05-Dec-2011 Siva Velusamy <vsiva@google.com> gltrace: Make framebuffer contents an optional message.

Currently, the contents of the FrameBuffer are sent by encoding
them as the last argument to the function call. As a result, it is
not possible to know if a message has the framebuffer encoded in it
without looking at the function type.

This patch modifies the protobuf definition to include a separate
optional framebuffer message.

Change-Id: Ief3a6950052d927ca0743e729457435b48c25a92
LES_trace/gltrace.proto
LES_trace/src/gltrace.pb.cpp
LES_trace/src/gltrace.pb.h
LES_trace/src/gltrace_fixup.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
ndroid.mk
GL/Loader.cpp
GL/egl.cpp
GL/eglApi.cpp
GL/egl_tls.cpp
GL/egl_tls.h
GL/trace.cpp
LES2_dbg/Android.mk
LES_trace/.gitignore
LES_trace/Android.mk
LES_trace/DESIGN.txt
LES_trace/TODO.txt
LES_trace/dev.make
LES_trace/gltrace.proto
LES_trace/src/gltrace.pb.cpp
LES_trace/src/gltrace.pb.h
LES_trace/src/gltrace_api.cpp
LES_trace/src/gltrace_api.h
LES_trace/src/gltrace_context.cpp
LES_trace/src/gltrace_context.h
LES_trace/src/gltrace_egl.cpp
LES_trace/src/gltrace_egl.h
LES_trace/src/gltrace_eglapi.cpp
LES_trace/src/gltrace_fixup.cpp
LES_trace/src/gltrace_fixup.h
LES_trace/src/gltrace_hooks.cpp
LES_trace/src/gltrace_hooks.h
LES_trace/src/gltrace_transport.cpp
LES_trace/src/gltrace_transport.h
LES_trace/tools/genapi.py
LES_trace/tools/testgenapi.py
lestrace.h
lesv2dbg.h
lesv2dbg_functions.h
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
GL/eglApi.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
GL/eglApi.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
ndroid.mk
GL/egl_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/egl_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/egl_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
GL/eglApi.cpp
GL/egl_display.cpp
GL/egl_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/egl.cpp
GL/eglApi.cpp
GL/egl_display.cpp
GL/egl_display.h
GL/egl_object.cpp
GL/egl_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
GL/eglApi.cpp
GL/egl_cache.cpp
GL/egl_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/egl_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/egl_cache.cpp
GL/egl_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/egl_cache.cpp
GL/egl_cache.h
GL/egl_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/egl_cache.cpp
GL/egl_cache.h
GL/egl_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
ndroid.mk
GL/eglApi.cpp
GL/egl_cache.cpp
GL/egl_cache.h
GL/egl_display.cpp
0e8bbee5775d81c7bbc479b995496cac9238559f 06-Oct-2011 Mathias Agopian <mathias@google.com> don't log EGL errors due to unimplemented proprietary extensions

Change-Id: Icfc33d4f55d1e7fb49390ce0921ba37a438c9fc2
GL/eglApi.cpp
GL/egl_tls.cpp
GL/egl_tls.h
1ac8b72f4f231d3c786ddeb1e4ca7385d5650d11 14-Sep-2011 Mathias Agopian <mathias@google.com> fix EGL debugger

always use GL_RGBA, GL_UNSIGNED_BYTE for screen capture
and make sure to handle GL_BGRA_EXT used on some gpu.

Change-Id: If9c973677fec8a5c4e72be22e7ef7d4bf5f008f4
LES2_dbg/Android.mk
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/egl.cpp
LES2_dbg/src/header.h
LES2_dbg/src/vertex.cpp
LES2_dbg/test/test_main.cpp
LES2_dbg/test/test_server.cpp
LES2_dbg/test/test_socket.cpp
06649fece4d97a89c6b197a570b6012e9ad9d228 16-Sep-2011 Mathias Agopian <mathias@google.com> cleanup: fix typos in logs

Change-Id: Ib5744564a873ea2b84100174673dc4d3ae109fcf
GL/egl_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>
GL/eglApi.cpp
GL/egl_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/egl.cpp
GL/egl_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
GL/Loader.cpp
a45c5479104c2bf4ecc4b797a1a51134e433f023 02-Sep-2011 Mathias Agopian <mathias@google.com> fix another bug that prevented the gl debugger to work

we didn't set the debug tls properly

Change-Id: Iad9cc5b5d230a8eb7f680c4b70925c5e43e73051
LES2_dbg/src/dbgcontext.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/egl.cpp
5fecea776a5f093c21ac1a0ad3552b847d4be23e 26-Aug-2011 Mathias Agopian <mathias@google.com> fix logging of eglMakeCurrent() errors

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

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

Change-Id: I0df6117a5633c2a19935fe356579abdd76fc471f
GL/eglApi.cpp
GL/egl_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
GL/eglApi.cpp
71753982479b9a68e36d43fbb58de0331ea5797c 12-Jul-2011 Jeff Brown <jeffbrown@google.com> Merge "Remove the simulator target from all makefiles. Bug: 5010576"
baa44b89ec159fd65230cbb8ebab62d63a513b0b 12-Jul-2011 Jeff Brown <jeffbrown@google.com> Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
ndroid.mk
LES2_dbg/Android.mk
LES2_dbg/test/Android.mk
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/egl.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
GL/eglApi.cpp
1cadb25da1ed875bdd078270e642966724a0c39a 24-May-2011 Mathias Agopian <mathias@google.com> fix x86 build

Change-Id: I03cfbfeaeb8b13842248856b14b4a23711036e10
ndroid.mk
GL/Loader.cpp
GL/egl.cpp
GL/egl_display.h
GL/egl_tls.h
GL/egldefs.h
GL/getProcAddress.cpp
GL/hooks.cpp
GL/trace.cpp
gl_impl.h
ooks.h
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/egl.cpp
GL/eglApi.cpp
GL/egl_display.cpp
GL/egl_display.h
GL/egl_object.cpp
GL/egl_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.
ndroid.mk
GL/egl.cpp
GL/eglApi.cpp
GL/egl_display.cpp
GL/egl_display.h
GL/egl_object.cpp
GL/egl_object.h
GL/egl_tls.cpp
GL/egl_tls.h
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/test/test_server.cpp
LES2_dbg/test/test_socket.cpp
gl_impl.h
gl_tls.h
lesv2dbg.h
0ad71a97c6061e3b12d2308bd43e02dfeeb63db4 12-May-2011 Mathias Agopian <mathias@google.com> fix (Again) adding OES postfix when looking for gl functions

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

Change-Id: Id47304cf38914190cec58d703801f456ab916f63
GL/Loader.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/egl.cpp
133cf52ac9872e369c3b48dfeba744b2aa7f954b 21-Apr-2011 David Li <davidxli@google.com> GLES2Dbg: noop - format & comment

Change-Id: Ibb36508181d4322e236b6595b28d253f282c36d7
Signed-off-by: David Li <davidxli@google.com>
LES2_dbg/generate_api_cpp.py
LES2_dbg/generate_debugger_message_proto.py
620676eec75b3bda103ad2400a1217dd6af6338f 16-Apr-2011 David Li <davidxli@google.com> GLES2Dbg: send some GL implementation constants to client

Change-Id: Ic6c51c09b1c3d2e1e1a28c6ed552714c3243827c
Signed-off-by: David Li <davidxli@google.com>
LES2_dbg/generate_debugger_message_proto.py
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/debugger_message.pb.cpp
LES2_dbg/src/debugger_message.pb.h
LES2_dbg/src/server.cpp
LES2_dbg/test/test_server.cpp
LES2_dbg/test/test_socket.cpp
7b271eba888de89c075f5372dd1cd1f48eeecb05 14-Apr-2011 David Li <davidxli@google.com> GLES2Dbg: initial tests

Change-Id: Ibf07eff68d39267fd5c9bec2870f59a5ae2f51e3
LES2_dbg/Android.mk
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/header.h
LES2_dbg/src/server.cpp
LES2_dbg/src/vertex.cpp
LES2_dbg/test/Android.mk
LES2_dbg/test/test_main.cpp
LES2_dbg/test/test_server.cpp
LES2_dbg/test/test_socket.cpp
c2ca836b176bfac63c63482055509e2e73de517e 09-Apr-2011 David Li <davidxli@google.com> GLES2Dbg: added CaptureDraw and CaptureSwap options

CaptureDraw specifies how many glDrawArrays/Elements to glReadPixel
CaptureSwap similarly applies to eglSwapBuffers

Change-Id: Ie7a7e3392b4ecdc0659dcee04f4bab97c35267dc
Signed-off-by: David Li <davidxli@google.com>
LES2_dbg/generate_debugger_message_proto.py
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/debugger_message.pb.cpp
LES2_dbg/src/debugger_message.pb.h
LES2_dbg/src/egl.cpp
LES2_dbg/src/header.h
LES2_dbg/src/server.cpp
LES2_dbg/src/vertex.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/egl.cpp
LES2_dbg/generate_debugger_message_proto.py
LES2_dbg/src/api.h
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/debugger_message.pb.cpp
LES2_dbg/src/debugger_message.pb.h
LES2_dbg/src/server.cpp
lesv2dbg.h
904f18f792fa9205a980a36152db61086a9b8374 09-Apr-2011 David Li <davidxli@google.com> GLES2Dbg: add EXTEND_AFTER_CALL_Debug_* macro and improve protocol

To allow auto generate of Debug_glReadPixels function.
Also added AfterGeneratedCall messag type, and client override
of expectResponse for improving protocol.
Also implemented callers for client to get shader/program iv & infolog

Change-Id: I8426de0be4b7ffcb8b2b4f063ad85d19a9d2d72e
Signed-off-by: David Li <davidxli@google.com>
LES2_dbg/generate_api_cpp.py
LES2_dbg/generate_debugger_message_proto.py
LES2_dbg/src/api.cpp
LES2_dbg/src/api.h
LES2_dbg/src/caller.cpp
LES2_dbg/src/caller.h
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/debugger_message.pb.cpp
LES2_dbg/src/debugger_message.pb.h
LES2_dbg/src/header.h
LES2_dbg/src/server.cpp
LES2_dbg/src/vertex.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>
ndroid.mk
GL/egl.cpp
LES2_dbg/Android.mk
LES2_dbg/generate_api_cpp.py
LES2_dbg/generate_caller_cpp.py
LES2_dbg/src/api.cpp
LES2_dbg/src/caller.cpp
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/header.h
gl_tls.h
lesv2dbg.h
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/egl.cpp
7a52015696011fc129d1ae296b9b30718db7ace8 23-Mar-2011 David Li <davidxli@google.com> GLES2Dbg: use 256KB chunks for lzf compression

Data format is uint32_t totalDecompressedSize, then repeat:
uint32_t chunkDecompressedSize, chunkCompressedSize, chunk data.
If chunkCompressedSize == 0, then chunk is not compressed.

Also start fixing integer sizes on server.
On client, set endianness to match server.

Change-Id: I0d5afa16976ea6019b91c4e21d284605da7e135e
Signed-off-by: David Li <davidxli@google.com>
LES2_dbg/src/api.h
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/header.h
LES2_dbg/src/vertex.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/egl.cpp
922ddd6dadedd1f0b27f8f9e0431f11478076142 25-Mar-2011 David Li <davidxli@google.com> Merge "GLESv2Dbg: ability to create GL calls from client"
fef0451f7fbd05864d8d2426c14a0b596fc47379 25-Mar-2011 David Li <davidxli@google.com> Merge "GLES2Dbg: added SETPROP expectResponse"
3f9c90c1ec7cb9103d5df8262e83a8991ff989a7 25-Mar-2011 David Li <davidxli@google.com> Merge "GLES2Dbg: added reference frame for glReadPixels"
e315b16e8ff21de177fcc837a186705a6e9eaa1d 25-Mar-2011 David Li <davidxli@google.com> Merge "GLES2Dbg: use libLZF for compressing images"
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/egl.cpp
49633ca2edd3a56399a4c2ce0a4e88c0c0a21fe2 22-Mar-2011 David Li <davidxli@google.com> GLESv2Dbg: ability to create GL calls from client

caller.cpp Is generated by generate_caller_cpp.py
Hand written functions are in caller.h

Change-Id: I27ed9792df52569159a2d1b8a78207c7a7518537
Signed-off-by: David Li <davidxli@google.com>
LES2_dbg/Android.mk
LES2_dbg/generate_caller_cpp.py
LES2_dbg/src/caller.cpp
LES2_dbg/src/caller.h
LES2_dbg/src/header.h
LES2_dbg/src/server.cpp
LES2_dbg/src/vertex.cpp
ebcfe2d6329b00d293ddefbc2f4dcf380e27d6f0 22-Mar-2011 David Li <davidxli@google.com> GLES2Dbg: added SETPROP expectResponse

to allow "stepping" in functions.
Also fix bug in reference frame.

Change-Id: Ia33620eaf2c5f4e615f7aad2df277b6afc617060
Signed-off-by: David Li <davidxli@google.com>
LES2_dbg/Android.mk
LES2_dbg/generate_api_cpp.py
LES2_dbg/generate_debugger_message_proto.py
LES2_dbg/src/api.cpp
LES2_dbg/src/api.h
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/debugger_message.pb.cpp
LES2_dbg/src/debugger_message.pb.h
LES2_dbg/src/egl.cpp
LES2_dbg/src/header.h
LES2_dbg/src/server.cpp
LES2_dbg/src/texture.cpp
LES2_dbg/src/vertex.cpp
8b27d3592dd77f9326efb6f0c338c520db9d082f 23-Mar-2011 David Li <davidxli@google.com> GLES2Dbg: added reference frame for glReadPixels

Change-Id: I37398d8d835e54a1764dfabd617fdc2c640864c2
LES2_dbg/generate_debugger_message_proto.py
LES2_dbg/src/api.h
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/debugger_message.pb.cpp
LES2_dbg/src/debugger_message.pb.h
LES2_dbg/src/egl.cpp
LES2_dbg/src/header.h
LES2_dbg/src/server.cpp
LES2_dbg/src/vertex.cpp
c6158166791a6e762c7709f3205d9a5885461c7f 21-Mar-2011 David Li <davidxli@google.com> GLES2Dbg: use libLZF for compressing images

liblzf is in external/liblzf, it's BSD-type licence (optionally GPL2)

Change-Id: Idc7883fe2155f366cda384e64796a1493335ae4f
Signed-off-by: David Li <davidxli@google.com>
ndroid.mk
LES2_dbg/Android.mk
LES2_dbg/src/api.h
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/header.h
LES2_dbg/src/texture.cpp
LES2_dbg/src/vertex.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/egl.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/egl.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/egl.cpp
LES2_dbg/generate_debugger_message_proto.py
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/debugger_message.pb.cpp
LES2_dbg/src/debugger_message.pb.h
LES2_dbg/src/egl.cpp
LES2_dbg/src/header.h
LES2_dbg/src/server.cpp
LES2_dbg/src/vertex.cpp
lesv2dbg.h
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>
GL/Loader.cpp
GL/egl.cpp
GL/trace.cpp
LES2_dbg/Android.mk
LES2_dbg/generate_api_cpp.py
LES2_dbg/generate_debugger_message_proto.py
LES2_dbg/include/glesv2_dbg.h
LES2_dbg/src/DebuggerMessage.pb.cpp
LES2_dbg/src/DebuggerMessage.pb.h
LES2_dbg/src/api.cpp
LES2_dbg/src/api.h
LES2_dbg/src/dbgcontext.cpp
LES2_dbg/src/header.h
LES2_dbg/src/server.cpp
LES2_dbg/src/shader.cpp
LES2_dbg/src/vertex.cpp
lesv2dbg.h
lesv2dbg_functions.h
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>
ndroid.mk
GL/egl.cpp
LES2_dbg/Android.mk
LES2_dbg/generate_DebuggerMessage_proto.py
LES2_dbg/generate_GLEnum_java.py
LES2_dbg/generate_GLFunction_java.py
LES2_dbg/generate_MessageFormatter_java.py
LES2_dbg/generate_api_cpp.py
LES2_dbg/generate_debug_in.py
LES2_dbg/generate_debugger_message_proto.py
LES2_dbg/gl2_api_annotated.in
LES2_dbg/src/api.cpp
LES2_dbg/src/caller.h
LES2_dbg/src/debugger_message.pb.cpp
LES2_dbg/src/debugger_message.pb.h
LES2_dbg/src/egl.cpp
LES2_dbg/src/header.h
LES2_dbg/src/server.cpp
LES2_dbg/src/shader.cpp
LES2_dbg/src/texture.cpp
LES2_dbg/src/vertex.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>
ndroid.mk
GL/Loader.cpp
GL/egl.cpp
GL/trace.cpp
LES2_dbg/Android.mk
LES2_dbg/generate_DebuggerMessage_proto.py
LES2_dbg/generate_GLEnum_java.py
LES2_dbg/generate_GLFunction_java.py
LES2_dbg/generate_MessageFormatter_java.py
LES2_dbg/generate_api_cpp.py
LES2_dbg/generate_debug_in.py
LES2_dbg/gl2_api_annotated.in
LES2_dbg/include/glesv2_dbg.h
LES2_dbg/src/DebuggerMessage.pb.cpp
LES2_dbg/src/DebuggerMessage.pb.h
LES2_dbg/src/api.cpp
LES2_dbg/src/header.h
LES2_dbg/src/server.cpp
LES2_dbg/src/shader.cpp
LES2_dbg/src/texture.cpp
ebug.in
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/egl.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/egl.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/egl.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/egl.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/egl.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/egl.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/egl.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/egl.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/egl.cpp
6132b3703da76389e81d26b0023846a78b008603 28-Oct-2010 Jack Palevich <jackpal@google.com> Trace glUniformXXv and glUniformMatrixXfv calls.

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

Enable with:

adb shell setprop debug.egl.trace 1

Change-Id: Icfbc795f5260141510975228e72234e9aab56a85
ndroid.mk
GL/egl.cpp
GL/trace.cpp
nums.in
ooks.h
ools/genfiles
ools/glenumsgen
ools/gltracegen
race.in
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/egl.cpp
LES2/gl2.cpp
LES_CM/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/egl.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/egl.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/egl.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
GL/Loader.cpp
GL/Loader.h
c291f585855f0e2569bde9dd47b62e46c06c45f3 28-Aug-2010 Mathias Agopian <mathias@google.com> Add support for KHR_fence_sync

Change-Id: Ie2771b5869c9c8dcf5ecf9318e2ee6d4d1cd5cc9
GL/egl.cpp
GL/egl_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/egl.cpp
8e4b5a3e6af0dcb636b6f7baa9e908681776fa36 28-Aug-2010 Mathias Agopian <mathias@google.com> Add KHR_gl_texture_2D_image extension string.
GL/egl.cpp
27e2fac3370d2de56c05b9ec838ceff9a10b137c 27-Aug-2010 Mathias Agopian <mathias@google.com> cleanup EGL a bit. remove unused extension.

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

Change-Id: Ia87120b076ab1bf7b28f06087878d8161fb46c88
GL/egl.cpp
62d59ed785b5a878721a773b7fb4bd1c7672f240 16-Aug-2010 Romain Guy <romainguy@google.com> am a4ed1c67: am 1e4aa48c: Merge "fix [2912927] Can\'t get NV_draw_path extension to work" into gingerbread

Merge commit 'a4ed1c6788ead0324106d76f497233ee42a1f1ac'

* commit 'a4ed1c6788ead0324106d76f497233ee42a1f1ac':
fix [2912927] Can't get NV_draw_path extension to work
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/egl.cpp
5d708a591666b64115e7ee1bf6bc2e3378220c17 10-Aug-2010 Mathias Agopian <mathias@google.com> am 553a333d: am 603a34ee: Merge "improve a bit the implementation of eglGetProcAddress" into gingerbread

Merge commit '553a333d4446bb34330da92f02daa515dc597939'

* commit '553a333d4446bb34330da92f02daa515dc597939':
improve a bit the implementation of eglGetProcAddress
761eaed2ffc5022606de252997630dbcd9e805d9 10-Aug-2010 Romain Guy <romainguy@google.com> Fix tons of bugs and add new text rendering support.

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

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

Change-Id: I5027a27b43c0dd449a404024087853ca05bb8e4e
ndroid.mk
GL/egl.cpp
GL/getProcAddress.cpp
ooks.h
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/egl.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/egl.cpp
11cca925b23a5226d0582e9da52a1627eaa4a9b3 10-Jun-2010 Mathias Agopian <mathias@google.com> update GL ES stub libraries with the new GL ES headers

Change-Id: I83be94049ddfe3fd7f5bee71a21172ade1498dd5
LES2/gl2_api.in
LES2/gl2ext_api.in
LES_CM/gl_api.in
LES_CM/glext_api.in
ntries.in
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/egl.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/egl.cpp
gl_impl.h
8fb47ec10e7f4dad630fcac4ed47d243d4f33375 30-Mar-2010 Mathias Agopian <mathias@google.com> Fix Android's glEGLImageTargetRenderbufferOES() wrapper

glEGLImageTargetRenderbufferOES() pass the wrapped EGLImage
to the implementation, rather than the unwrapped one.

Change-Id: I149f9ed73e6ab9089110600e1db4311ba7a8c83a
LES2/gl2.cpp
LES_CM/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/egl.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/egl.cpp
8063c3ab04c922ef7c9bc3984a75503598001fd9 25-Jan-2010 Mathias Agopian <mathias@google.com> fix [2303866] eglMakeCurrent doesn't return all error messages described in the spec
GL/egl.cpp
9166f7bfa7796489d9b34f49846541cfd9a640d5 29-Sep-2009 Gary King <gking@nvidia.com> Use correct TLS codepath in graphics libraries

Duplicate ARCH_ARM_HAVE_TLS_REGISTER BoardConfig to proprocessor
HAVE_ARM_TLS_REGISTER define from Bionic's libc Android.mk to ensure that
OpenGL libraries (libEGL, libGLESv1_CM, libGLESv2, libGLES_android) use the
correct codepath in bionic_tls.h for accessing the TLS address
ndroid.mk
01cc538b290ecc9ccfdf1907fb714b76cf0f648b 28-Dec-2009 Jack Palevich <jackpal@google.com> A library for encoding and decoding ETC1 textures.

The ETC1 compressed texture format is commonly
supported by OpenGL ES 2.0-capable devices.
ndroid.mk
TC1/etc1.cpp
66089a33ea4efda711a3a5180f0b001bdac48dcf 08-Dec-2009 Jack Palevich <jackpal@google.com> Implement Matrix Palette extension.

Adds support for formerly-unimplemented methods:

glCurrentPaletteMatrixOES
glLoadPaletteFromModelViewMatrixOES
glMatrixIndexPointerOES
glWeightPointerOES

The bulk of the changes are related to implementing the two PointerOES
methods, which are implemented pretty much the same way as the existing
Pointer methods were implemented.

This change also changes the way glPointSizePointerOES is implemented,
making it act like all the other Pointer methods. (Previously it was
not handling non-direct-buffer arguments correctly.)

Fixes bug 2308625 "Support matrix palette skinning
in JSR239 and related APIs"

Also updated GLLogWraper to fix two bugs in GLLogWrapper that were
discovered while testing matrix palette skinning support:

a) Handle trying to print the contents of null-but-enabled buffers.
(It's not legal to draw with null-but-enabled buffers, and
in fact some OpenGL drivers will crash if you try to render in this
state, but there's no reason the GLLogWrapper should crash while trying
to debug this situation.

b) Don't read off the end of a vertex buffer with non-zero position when
printing the entire contents of the vertex buffer. Now we only print from
the current position to the end of the buffer.
LES_CM/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/egl.cpp
df2d92940550bc68c3c237937bce7ac16d9fa91b 29-Oct-2009 Mathias Agopian <mathias@google.com> return proper error code from eglCreateImageKHR
GL/egl.cpp
673d2dbaae647abc58b08de873fd364f0b2fa3f5 14-Oct-2009 Mathias Agopian <mathias@google.com> Use the TLS register if HAVE_ARM_TLS_REGISTER is defined

this will be needed for SMP, but would improve dispatching GL calls a bit
on armv6 and above.
ndroid.mk
LES2/gl2.cpp
LES_CM/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]
GL/Loader.cpp
GL/Loader.h
GL/egl.cpp
GL/hooks.cpp
LES2/gl2.cpp
LES2/gl2_entries.in
LES2/gl2ext_entries.in
LES_CM/gl_entries.in
LES_CM/glext_entries.in
gl_impl.h
ntries.in
ooks.h
ools/genfiles
4445712fd4444e156ce2b84468422bed0f6b78a6 10-Oct-2009 Dima Zavin <dima@android.com> Revert "egl: temporarily also include eglTerminate->eglInitialize hack for 8k"

This reverts commit ed5ecdba36648973be3033a045e2ece8bf039e4a.
ndroid.mk
7d21a745ac7d272400af599c20e2043f22bce28d 09-Oct-2009 Mathias Agopian <mathias@google.com> add a way to easily catch and log GL errors (compile time flag)
LES_CM/gl.cpp
7695a5865ee0f1496ae40ddb2e1845f4579747be 26-Sep-2009 Dima Zavin <dima@android.com> egl: temporarily also include eglTerminate->eglInitialize hack for 8k

Change-Id: Id5c51e54e733b24e5d5d5de0dcca84ac53afd3a9
Signed-off-by: Dima Zavin <dima@android.com>
ndroid.mk
8c17384a5edd027376926b857af1fb170dbe9b43 21-Sep-2009 Mathias Agopian <mathias@google.com> log an error when loading an existing GL driver fails
GL/Loader.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
ndroid.mk
GL/egl.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/egl.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.
GL/Loader.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/egl.cpp
gl_impl.h
ooks.h
24e5f5290195e1c02c18730d0639efda65d64914 13-Aug-2009 Mathias Agopian <mathias@google.com> Better error handling in EGL extensions
GL/egl.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/egl.cpp
574c16f9f89ab18c7b54e9b262ef3d5359a2a709 29-Jul-2009 Mathias Agopian <mathias@google.com> GLESv2 couldn't be loaded due to wrong path specification
GL/Loader.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/egl.cpp
fc865658b455de3bfbac609de391aaa44bea0748 08-Jul-2009 Marco Nelissen <marcone@google.com> Make opengl loader use an absolute path.
GL/Loader.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/egl.cpp
GL/egl_entries.in
af74213546acc887b2b9e93459124cefd7f5e335 25-Jun-2009 Mathias Agopian <mathias@google.com> fix [1942438] eglGetCurrentSurface() returns bogus value
GL/egl.cpp
f51f9c8af3a9974fa71be73a905aec70672aa0cb 25-Jun-2009 Mathias Agopian <mathias@google.com> fix [1942438] eglGetCurrentSurface() returns bogus value
GL/egl.cpp
f909cb6c69aa3ac8ffb6a2b9cd565b4b1e8b99c0 04-Jun-2009 Mathias Agopian <mathias@google.com> remove some spurious debuging LOGD
GL/Loader.cpp
acdebe352dc7dadc1122a87d45137fd2441b329a 04-Jun-2009 Mathias Agopian <mathias@google.com> fix/clean these Android.mk following dbort and joeo's comments
ndroid.mk
GL/Loader.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
ndroid.mk
GL/Loader.cpp
GL/Loader.h
GL/egl.cpp
GL/hooks.cpp
gl_impl.h
ooks.h
b1a39d67be99fe6c4545b25e10ac82a5dd1df634 28-May-2009 Mathias Agopian <mathias@google.com> Added most of the support needed for GLES 2.x
ndroid.mk
GL/egl.cpp
GL/egl_entries.in
LES2/gl2.cpp
LES2/gl2_api.in
LES2/gl2_entries.in
LES2/gl2ext_api.in
LES2/gl2ext_entries.in
LES_CM/gl_entries.in
LES_CM/glext_entries.in
gl_entries.in
l_entries.in
l_enums.in
lext_entries.in
ooks.h
ools/enumextract.sh
ools/genfiles
ools/glapigen
ools/glentrygen
5c846bd6cfa2d8fd71c19f15f07c495cd397290b 21-May-2009 Mathias Agopian <mathias@google.com> make sure to fail to software when the h/w renderer cannot be initialized
GL/gpu.cpp
614ecde4cb2720e23c83fd9b2a2bfb469b7bc174 18-May-2009 Mathias Agopian <mathias@google.com> libGLESv1_CM.so doesn't need to depend on libutils or libui
ndroid.mk
d8fb7b586f3cfac42694208547b58438d7f3b3ed 18-May-2009 Mathias Agopian <mathias@google.com> remove libEGL and libGLESv1_CM dependencies on libutils and libui
ndroid.mk
GL/egl.cpp
GL/gpu.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/egl.cpp
d373c6348a91595dd4c0b83ad256dbf30870fa5d 09-May-2009 Mathias Agopian <mathias@google.com> remove the gl{Vertex|Color|TexCoord|Normal}PointerBounds() "extension" fro eglext.h
LES_CM/gl.cpp
94aa09680a530353448bc9052cec9c6b205db8b4 09-May-2009 Mathias Agopian <mathias@google.com> should fix the build.
GL/gpu.cpp
48685c45bb333c3564596158e2e67267110c9277 09-May-2009 Mathias Agopian <mathias@google.com> only export the GL entry-points, hide everything else.

Conflicts:

opengl/libagl/Android.mk
opengl/libs/Android.mk
opengl/libs/egl_impl.h
ndroid.mk
gl_impl.h
e6bf8b32b616450f80b64d226ea673f4a2e0bf8d 07-May-2009 Mathias Agopian <mathias@google.com> fix EGL extension string names
GL/egl.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/egl.cpp
gl_entries.in
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/egl.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/egl.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/egl.cpp
LES_CM/gl.cpp
LES_CM/gl_api.in
LES_CM/glext_api.in
l_entries.in
l_logger.h
lext_entries.in
ooks.h
ools/genfiles
ools/glapigen
ools/glentrygen
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.
ndroid.mk
GL/egl.cpp
LES_CM/gl.cpp
LES_CM/gl_api.in
LES_CM/gl_logger.cpp
gl_entries.in
l_entries.in
ooks.h
ools/glapigen
076b1cc3a9b90aa5b381a1ed268ca0b548444c9b 10-Apr-2009 Mathias Agopian <mathias@google.com> Integrate from //sandbox/mathias/donut/...@145728

SurfaceFlinger rework for new EGL driver model support.
ndroid.mk
GL/egl.cpp
LES_CM/gl.cpp
LES_CM/gl_api.in
gl_entries.in
gl_impl.h
l_entries.in
ooks.h
ools/glapigen
749c63dbff0ab66223f30af1bad4ca56bd26d5d2 25-Mar-2009 Jack Palevich <> Automated import from //branches/master/...@142578,142578
GL/egl.cpp
87d80228cc6b8904da036d51d41252f8301e41d2 25-Mar-2009 Jack Palevich <> Automated import from //branches/donutburger/...@142484,142484
GL/egl.cpp
edbf3b6af777b721cd2a1ef461947e51e88241e1 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroid.mk
GL/egl.cpp
GL/gpu.cpp
LES_CM/gl.cpp
LES_CM/gl_api.in
LES_CM/gl_logger.cpp
gl_entries.in
gl_impl.h
l_entries.in
l_enums.in
l_logger.h
ooks.h
ools/enumextract.sh
d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroid.mk
GL/egl.cpp
GL/gpu.cpp
LES_CM/gl.cpp
LES_CM/gl_api.in
LES_CM/gl_logger.cpp
gl_entries.in
gl_impl.h
l_entries.in
l_enums.in
l_logger.h
ooks.h
ools/enumextract.sh
43aa2b1cbf7a03e248e10f4d0fec0463257cd52d 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
GL/egl.cpp
0bb03408de8886e8d17013219967d42fb9c8cf8c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
GL/egl.cpp
d2bd26d32612a1c7d5629202e3f41741b7936c60 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
GL/egl.cpp
a6938bab1f6fa76ae98ebbe44f4e534e05fa0993 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
ndroid.mk
GL/egl.cpp
GL/gpu.cpp
LES_CM/gl.cpp
LES_CM/gl_api.in
LES_CM/gl_logger.cpp
gl_entries.in
gl_impl.h
l_entries.in
l_enums.in
l_logger.h
ooks.h
ools/enumextract.sh