Commit Graph

605 Commits

Author SHA1 Message Date
Siva Velusamy
a8cfde8897 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
2011-12-05 14:13:16 -08:00
Siva Velusamy
73d2b3c7e5 Merge "glestrace: Framework for GLES tracing library" 2011-12-02 15:49:01 -08:00
Siva Velusamy
0469dd6d55 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
2011-12-02 15:30:17 -08:00
Mathias Agopian
bc2d79ed7a 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
2011-11-29 18:00:35 -08:00
Jamie Gennis
e011aa2b0f Merge "EGL: Use cache sizes defined in the BoardConfig" into ics-mr1 2011-11-21 15:54:54 -08:00
Jamie Gennis
59769469e4 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
2011-11-21 14:37:29 -08:00
Jamie Gennis
89c1d61c16 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
2011-11-21 11:48:17 -08:00
Jamie Gennis
0f83b2f976 Merge "EGL: fix blob cache extension detection" into ics-mr1 2011-11-17 17:10:32 -08:00
Jamie Gennis
11f8fde84d Merge "GLES: add image external enums" into ics-mr1 2011-11-17 15:47:28 -08:00
Jamie Gennis
9f43009177 EGL: fix blob cache extension detection
Bug: 5474671
Change-Id: I6359063ccf23f076fc84c80b8a2f6731a65eef18
2011-11-17 14:06:46 -08:00
Mathias Agopian
f3ae82d813 be a bit more defensive when parsing extension strings
hopefully this will fix a crash in the emulator.

Bug: 5624674
Change-Id: I96586e29ea20efd73c4ad50870df5b7368bf3c3b
2011-11-16 16:49:25 -08:00
Jamie Gennis
9c6c6992e0 GLES: add image external enums
This change adds Java definitions for the enums of the
GL_OES_EGL_image_external OpenGL ES extension.

Bug: 3482193
Change-Id: Ib50326f8be9b9cc9021753855c3846ddcdc5eaa2
2011-11-15 11:35:46 -08:00
Mathias Agopian
4b9511c161 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
2011-11-14 19:05:45 -08:00
Mathias Agopian
f0480de374 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
2011-11-14 17:40:21 -08:00
Jamie Gennis
7cd230c508 Merge "EGL: add the ANDROID suffix to the blob cache ext" into ics-mr1 2011-11-14 17:36:46 -08:00
Jamie Gennis
c42fcf05ce 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
2011-11-11 13:17:03 -08:00
Romain Guy
c58b9999e1 Merge "Terminate EGL when an app goes in the background" into ics-mr1 2011-11-10 17:10:41 -08:00
Romain Guy
4725e2ca80 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
2011-11-10 16:44:49 -08:00
Jamie Gennis
99c3d700d2 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
2011-11-08 17:59:36 -08:00
Jamie Gennis
98c6383580 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
2011-11-08 15:54:36 -08:00
Jamie Gennis
766010858e 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
2011-11-07 10:48:42 -08:00
Jamie Gennis
aca51c06f3 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
2011-11-04 15:01:51 -07:00
Mathias Agopian
0e8bbee577 don't log EGL errors due to unimplemented proprietary extensions
Change-Id: Icfc33d4f55d1e7fb49390ce0921ba37a438c9fc2
2011-10-05 19:15:32 -07:00
Mathias Agopian
1ac8b72f4f 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
2011-09-19 14:44:37 -07:00
Mathias Agopian
06649fece4 cleanup: fix typos in logs
Change-Id: Ib5744564a873ea2b84100174673dc4d3ae109fcf
2011-09-16 11:56:40 -07:00
Jonas Yang
1c3d72a229 Add (support for) EGL_NV_system_time extension.
Change-Id: I62bf0fcb5ccdc77c042b425a42054fb3122575b6
Signed-off-by: Mathias Agopian <mathias@google.com>
2011-09-13 16:44:22 -07:00
Mathias Agopian
ecfe091af3 add an option to EGL to dump stack traces on errors
enable by setting debug.egl.callstack to 1

Change-Id: I7fad9ce71b4c4c5ece97d4f9d139348eab742a3c
2011-09-06 18:06:04 -07:00
David 'Digit' Turner
80b30c24ff 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
2011-09-02 15:41:13 +02:00
Mathias Agopian
a45c547910 fix another bug that prevented the gl debugger to work
we didn't set the debug tls properly

Change-Id: Iad9cc5b5d230a8eb7f680c4b70925c5e43e73051
2011-09-01 17:50:52 -07:00
Mathias Agopian
ccfa5c3364 this should fix the GL debugger
we were checking against to the wrong variable

Change-Id: Iff3f5ab2d6ba5ac0d3d8161011b38e673ee7e67b
2011-09-01 14:55:00 -07:00
Mathias Agopian
5fecea776a fix logging of eglMakeCurrent() errors
Change-Id: Ie22cabff822a8fb3186f082491234b9503b431c3
2011-08-25 18:38:24 -07:00
Jamie Gennis
9f24fd020e 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
2011-08-24 15:00:23 -07:00
Mathias Agopian
3a0cae8e5f implement EGL_TEXTURE_EXTERNAL_OES in libagl
this allows the emulator to display some graphics

Change-Id: Ib4671ad70b8df598d02307f2b9c5b843421cea25
2011-08-18 16:26:21 -07:00
Mathias Agopian
7dddeac971 fix test-opengl-swapinterval
EGLConfig selection should now work on any device

Change-Id: I4d4580e891d1faf817fa853838406fb49d12e50a
2011-08-15 15:25:40 -07:00
Mathias Agopian
81a6335052 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
2011-08-01 14:06:20 -07:00
Romain Guy
868a0aff31 Add new OpenGL test
Change-Id: Icab48d71945bf94dd53f58b728a951d46380d945
2011-07-19 17:20:35 -07:00
Jamie Gennis
dc159f92fa EGL: update EGL_ANDROID_recordable extension.
This change adds an enum value and a description of the expected
implementations to the EGL_ANDROID_recordable extension specification.
It also adds the new enum value to the 'eglext.h' header.

Change-Id: Ia0de2d5613708445ff83b85a7e550f9417531ee4
2011-07-17 18:42:09 -07:00
Jeff Brown
7175398247 Merge "Remove the simulator target from all makefiles. Bug: 5010576" 2011-07-12 12:15:07 -07:00
Jeff Brown
baa44b89ec Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8
2011-07-11 22:12:16 -07:00
Jamie Gennis
1a14b442e0 Merge changes I002177a6,Ibaff52fe
* changes:
  Add the EGL_ANDROID_recordable spec.
  Add the spec for EGL_ANDROID_blob_cache.
2011-07-11 17:14:33 -07:00
Jamie Gennis
bd3b6ef117 Add the EGL_ANDROID_recordable spec.
Change-Id: I002177a68fafd6bb941aa64445c85fd5ff56223a
2011-07-11 17:13:02 -07:00
Jamie Gennis
0d0c5a6d6b Merge "EGL: fix the ANativeWindow size/fmt override" 2011-07-11 15:47:20 -07:00
Romain Guy
e03de93794 Always make GL calls with a valid EGL context.
Bug #5010760

Change-Id: If7500ef69683948e727df1406f458f18b11259d1
2011-07-11 15:33:51 -07:00
Jamie Gennis
bee205fd58 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
2011-07-11 12:31:45 -07:00
Jamie Gennis
34d3f3810d Add the spec for EGL_ANDROID_blob_cache.
Change-Id: Ibaff52fee5c856283536ad37251cc80a9f3f938b
2011-07-11 12:06:54 -07:00
Mathias Agopian
2f739f8f04 Add a simple EGL test
currently it just tests EGLConfig selection

Change-Id: Id9d9971012d733147dd7dc02fa2054307960235e
2011-07-08 14:40:39 -07:00
Mathias Agopian
1cadb25da1 fix x86 build
Change-Id: I03cfbfeaeb8b13842248856b14b4a23711036e10
2011-05-23 17:48:36 -07:00
Mathias Agopian
5b287a6ea8 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
2011-05-16 19:03:33 -07:00
Mathias Agopian
518ec112f4 refactor EGL source code
no changes is functionality. split various objects into their own files.
make egl_display objec's lock internal.
2011-05-16 19:02:45 -07:00
Mathias Agopian
0ad71a97c6 fix (Again) adding OES postfix when looking for gl functions
Change-Id: Ib14723ed5355fdc423226ec20a32e26fe7dd68fe
2011-05-11 20:37:47 -07:00
Jeff Boody
e647f3c76c add OES postfix without truncating function
Change-Id: Id47304cf38914190cec58d703801f456ab916f63
2011-05-11 18:05:49 -07:00
Mathias Agopian
69e43b71af fix libagl surface initialization
this broke recently when removing copybit support.

Change-Id: I5cc7ff7f49268411c6c2cfb2d97590d52b13dbd5
2011-05-11 13:41:09 -07:00
Iliyan Malchev
697526bc9e frameworks/base: android_native_buffer_t -> ANativeWindowBuffer
Change-Id: Idc2eabaa805bb6d308ebb315872623f28d428417
Signed-off-by: Iliyan Malchev <malchev@google.com>
2011-05-03 16:40:14 -07:00
Mathias Agopian
75c1535eb3 remove last traces of copybit
Change-Id: Ia0f13a0ee6f702256482b5eb29d7fa2aa840bfc7
2011-05-02 16:27:21 -07:00
Mathias Agopian
9cdb01da71 get rid of dependency on copybit HAL module
Change-Id: Ia608099a2426c11a91d33063ba53c93e1eccb428
2011-04-28 19:50:21 -07:00
Jamie Gennis
1b528fb9d8 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
2011-04-25 16:41:11 -07:00
David Li
133cf52ac9 GLES2Dbg: noop - format & comment
Change-Id: Ibb36508181d4322e236b6595b28d253f282c36d7
Signed-off-by: David Li <davidxli@google.com>
2011-04-21 14:15:10 -07:00
David Li
620676eec7 GLES2Dbg: send some GL implementation constants to client
Change-Id: Ic6c51c09b1c3d2e1e1a28c6ed552714c3243827c
Signed-off-by: David Li <davidxli@google.com>
2011-04-19 14:44:51 -07:00
David Li
7b271eba88 GLES2Dbg: initial tests
Change-Id: Ibf07eff68d39267fd5c9bec2870f59a5ae2f51e3
2011-04-19 14:42:14 -07:00
David Li
c2ca836b17 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>
2011-04-12 15:56:10 -07:00
David Li
499c6f02e6 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>
2011-04-12 15:56:10 -07:00
David Li
904f18f792 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>
2011-04-12 15:56:10 -07:00
David Li
864f839e96 GLES2Dbg: change GLES2_dbg to shared library
Change-Id: I493e9bff431bd939f4e80e1e9c614dd557307fa2
Signed-off-by: David Li <davidxli@google.com>
2011-04-12 15:56:10 -07:00
Elliott Hughes
9875750593 Kill the global references in the OpenGL wrappers.
Just use jniThrowException instead. Note that it would be trivial to throw
seemingly more appropriate exceptions (NullPointerException and
OutOfMemoryException in particular), but I'm only attempting to preserve
existing behavior here.

I also found shadowing bugs in some of the special-case functions, which
would previously always have leaked memory.

This also moves an accidental change to a generated file (ActivityThread ->
AppGlobals) into the generator, so it won't be overwritten in future.

Change-Id: Iab570310b568cb406c60dd0e2b8211f8a36ae590
2011-04-11 15:31:20 -07:00
Eric Hassold
7fecf8c1ff 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
2011-03-31 16:52:02 -07:00
Eino-Ville Talvala
2e2132d773 Merge "Add a simple OpenGL ES 2.0 test program that displays a camera preview stream." 2011-03-29 13:34:03 -07:00
David Li
214c31dbe5 Merge "GLES2Dbg: use 256KB chunks for lzf compression" 2011-03-29 12:00:07 -07:00
Eino-Ville Talvala
55c617aa2d Add a simple OpenGL ES 2.0 test program that displays a camera preview stream.
Uses a SurfaceTexture feeding into a OpenGL ES2 GLSurfaceView. Also
uses accelerometer data and SurfaceTexture-provided timestamps for a
simple physics simulation which moves the camera preview oval in
response to device movement.

Change-Id: I275a0c6a4e25829d617e635b25e70e2a9c8455cb
2011-03-28 15:27:19 -07:00
Jack Palevich
62d08f5bc3 Add Java support for a few accidentally omitted OpenGL ES APIs.
Fixes 3491494 Support OpenGL APIs: glBlendEquationSeparate and friends

Change-Id: I8fdc94b6ea14e9a7e3d402a965d500790a3d8f77
2011-03-28 14:49:12 -07:00
David Li
7a52015696 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>
2011-03-28 10:32:37 -07:00
Eric Hassold
11c01568c3 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
2011-03-25 14:37:19 -07:00
David Li
922ddd6dad Merge "GLESv2Dbg: ability to create GL calls from client" 2011-03-24 16:43:02 -07:00
David Li
fef0451f7f Merge "GLES2Dbg: added SETPROP expectResponse" 2011-03-24 16:42:58 -07:00
David Li
3f9c90c1ec Merge "GLES2Dbg: added reference frame for glReadPixels" 2011-03-24 16:42:53 -07:00
David Li
e315b16e8f Merge "GLES2Dbg: use libLZF for compressing images" 2011-03-24 16:42:44 -07:00
Eric Hassold
3ede7c133a 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
2011-03-23 15:59:00 -07:00
David Li
49633ca2ed 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>
2011-03-22 18:42:22 -07:00
David Li
ebcfe2d632 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>
2011-03-22 18:42:22 -07:00
David Li
8b27d3592d GLES2Dbg: added reference frame for glReadPixels
Change-Id: I37398d8d835e54a1764dfabd617fdc2c640864c2
2011-03-22 18:42:03 -07:00
David Li
c615816679 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>
2011-03-21 18:23:28 -07:00
David Li
5a0d29009c Merge "GLES2Debugger: Make command exchange async to improve performance." 2011-03-17 14:38:37 -07:00
Mathias Agopian
7d7723d330 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
2011-03-16 16:03:24 -07:00
Mathias Agopian
36bdf14a75 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
2011-03-16 14:19:03 -07:00
Jamie Gennis
9db01a7c1c am 0ea44ac0: am 00f47af8: Merge "SurfaceTexture: disallow unsupported uses." into honeycomb-mr1
* commit '0ea44ac0deb5cc95d60dd512c3a8f6a1bb69f5d1':
  SurfaceTexture: disallow unsupported uses.
2011-03-15 13:01:27 -07:00
Jamie Gennis
5c0c93a8c4 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
2011-03-15 10:37:37 -07:00
Iliyan Malchev
3875d79ef6 Merge "frameworks/base: remove LOCAL_PRELINK_MODULE" 2011-03-14 16:58:05 -07:00
Jamie Gennis
5b92e39c14 am dcbc2557: am c313b59b: am 071929b2: Merge "gl2_yuvtex: use the gralloc-provided stride." into honeycomb-mr1
* commit 'dcbc255734e506bacd36d8d9483b7f3d6d96d10b':
  gl2_yuvtex: use the gralloc-provided stride.
2011-03-14 15:25:14 -07:00
Iliyan Malchev
9dde9efd0b frameworks/base: remove LOCAL_PRELINK_MODULE
Change-Id: I54dd62ebef47e7690afa5a858f3cad941b135481
Signed-off-by: Iliyan Malchev <malchev@google.com>
2011-03-14 14:25:59 -07:00
Jamie Gennis
181f1c33c2 gl2_yuvtex: use the gralloc-provided stride.
This change fixes the gl2_yuvtex test to use the stride chosen by the
gralloc implementation rather than hard-coding it.

Bug: 4081948
Change-Id: If7c96a20fc3fb1df2ff25e6afaa9f34dbad2002c
2011-03-14 11:30:02 -07:00
David Li
85f33a7168 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>
2011-03-11 11:09:09 -08:00
David Li
65948aa046 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>
2011-03-10 16:40:37 -08:00
David Li
c95e452508 Merge "Added screenshot after glDraw* option to GLES2 Debugger" 2011-03-09 10:05:38 -08:00
David Li
c7ec152b9d Merge "Initial commit of GLESv2 debugger server" 2011-03-09 10:04:46 -08:00
David Li
aa1f54d78f Initial commit of libAgl2 using Pixelflinger2 in external/mesa3d
Somewhat functional, refer to README for details.
Need to enable Android.mk to build.
It builds libGLES_android.so, which needs to replace
 the one in system/lib/egl built by libagl.

Change-Id: Iec3aaa8f3963a4185d81955cd24019eb0c4a5850
Signed-off-by: David Li <davidxli@google.com>
2011-03-08 17:41:29 -08:00
David Li
b33d5cff62 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>
2011-03-04 17:50:48 -08:00
David Li
2f5a6557ef 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>
2011-03-03 18:28:43 -08:00
Kenny Root
af1cf07134 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
2011-02-16 10:56:32 -08:00
Jamie Gennis
8446681ebe Merge "Clear all EGL errors when entering EGL funcs." 2011-01-31 15:40:06 -08:00
Jamie Gennis
f1cde8e0ed 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
2011-01-31 14:08:23 -08:00
Jamie Gennis
2076f35549 Fix a multithreading bug in libagl's EGL.
The bug caused libagl to return 0 from eglGetError if an EGL error value
(including EGL_SUCCESS) was set on a different thread but not yet on the
current thread.

Bug: 3403756
Change-Id: Ifd965091d116745c2e22c121151ade9e78eb14c6
2011-01-30 15:59:36 -08:00