805 Commits

Author SHA1 Message Date
Jamie Gennis
b335fad470 hack up frame latency measurement
Change-Id: I6d9a466a23285304f0e229a5649815636ab5d6af
2012-01-24 15:41:50 -08:00
Siva Velusamy
5cfe839d95 gltrace: fixup data for glTexSubImage2D & glDeleteBuffers
Change-Id: I1c1deb8c6026ecf1fa0ed5287ccf601416eba6dc
2012-01-17 12:28:11 -08:00
Steve Block
3762c31172 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
2012-01-08 13:19:13 +00:00
Steve Block
8564c8da81 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
2012-01-06 10:07:54 +00:00
Steve Block
bd47cac4df Merge "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE" 2012-01-05 14:07:02 -08:00
Siva Velusamy
157fea642c 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
2012-01-04 12:50:13 -08:00
Steve Block
6215d3ff4b Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE
See https://android-git.corp.google.com/g/156801

Bug: 5449033
Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
2012-01-04 20:05:49 +00:00
Siva Velusamy
5ed919e33d gltrace: add start time & duration to each traced call.
Change-Id: Idfec8f715f6000594b6381cbfdee9fdf6d89f484
2012-01-04 11:38:37 -08:00
Siva Velusamy
1e81e710fc 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
2012-01-04 11:38:37 -08:00
Siva Velusamy
efc1265402 Merge "gltrace: attach contents of the appropriate framebuffer" 2012-01-04 11:18:29 -08:00
Steve Block
5baa3a62a9 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
2012-01-03 22:38:27 +00:00
Jack Palevich
0501f8a913 Fix convert8To4, convert8To5
See b/5680952 "Compilation warnings in etc1.cpp" for discussion.

Fixes b/5680952

Change-Id: I0af6ba5ed5e60f3ed7a6a28eba3b09504fee1a3f
2011-12-09 14:06:07 -08:00
Siva Velusamy
1598ef959b 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
2011-12-07 16:00:58 -08:00
Siva Velusamy
c0f838fa01 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
3d53e57e31 Merge "glestrace: Framework for GLES tracing library" 2011-12-02 15:49:01 -08:00
Siva Velusamy
db97468fd2 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
b665687a55 am e2970700: am e8ba2aba: Merge "add a way to access the version string of the h/w implementation of EGL" into ics-mr1
* commit 'e2970700e921da4226061988a6e8953b1fbfb5a9':
  add a way to access the version string of the h/w implementation of EGL
2011-11-30 13:57:46 -08:00
Mathias Agopian
cadd325aff 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
Romain Guy
0219af277e am ea54d0dc: am 723218b4: Merge "Hide ManagedEGLContext until we are sure this is the correct API." into ics-mr1
* commit 'ea54d0dc0dfeef5560fea04667804413d522025f':
  Hide ManagedEGLContext until we are sure this is the correct API.
2011-11-21 21:23:49 -08:00
Romain Guy
3526b00a53 am c26e4d18: am 8cd39e3a: Merge "Notify views when EGL resources are about to be destroyed Bug #5639899" into ics-mr1
* commit 'c26e4d18a20ab0b3e769fb3e547994f1c27d6713':
  Notify views when EGL resources are about to be destroyed Bug #5639899
2011-11-21 21:08:42 -08:00
Jamie Gennis
08b7660f67 am 8b8c321c: am b8d20d02: Merge "EGL: Use cache sizes defined in the BoardConfig" into ics-mr1
* commit '8b8c321c70687ace750e42b745b6e96258d739cd':
  EGL: Use cache sizes defined in the BoardConfig
2011-11-21 21:08:23 -08:00
Jamie Gennis
07f062b627 am c2597295: am 53cf2020: Merge changes I37fd43b5,I91eb29db,I0491ce35 into ics-mr1
* commit 'c25972950c2ea62fb085524dbe737c2bf0f08f4a':
  SurfaceTexture: fix a couple tests
  EGL: default to swap interval 1
  SurfaceTexture: clean up some tests
2011-11-21 21:08:21 -08:00
Romain Guy
dccf73a50c Hide ManagedEGLContext until we are sure this is the correct API.
Change-Id: If54942d342ca8ea348e10231b2aed3e5d3bd701b
2011-11-21 18:27:21 -08:00
Romain Guy
8cd39e3a10 Merge "Notify views when EGL resources are about to be destroyed Bug #5639899" into ics-mr1 2011-11-21 17:57:05 -08:00
Jamie Gennis
b8d20d028c Merge "EGL: Use cache sizes defined in the BoardConfig" into ics-mr1 2011-11-21 15:54:54 -08:00
Jamie Gennis
87f3265bb0 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
6f0f0b1865 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
Romain Guy
31f2c2e946 Notify views when EGL resources are about to be destroyed
Bug #5639899

Change-Id: I7c5d8bebf02294426f5b3ab1358a31c38a4fd064
2011-11-21 10:55:41 -08:00
Jamie Gennis
99f0528b5e am e2fca63a: am c8fd6e30: Merge "EGL: fix blob cache extension detection" into ics-mr1
* commit 'e2fca63a18c7bd3fb0c14e1c5dc391cd699cea9f':
  EGL: fix blob cache extension detection
2011-11-18 02:37:39 -08:00
Jamie Gennis
fa1a6eb584 am 0272e600: am a37a78e2: Merge "GLES: add image external enums" into ics-mr1
* commit '0272e60060162d2c32aec02d9cd1414dbbe14782':
  GLES: add image external enums
2011-11-18 02:37:22 -08:00
Jamie Gennis
c8fd6e3057 Merge "EGL: fix blob cache extension detection" into ics-mr1 2011-11-17 17:10:32 -08:00
Jamie Gennis
a37a78e2ef Merge "GLES: add image external enums" into ics-mr1 2011-11-17 15:47:28 -08:00
Jamie Gennis
cf30c60f1b EGL: fix blob cache extension detection
Bug: 5474671
Change-Id: I6359063ccf23f076fc84c80b8a2f6731a65eef18
2011-11-17 14:06:46 -08:00
Mathias Agopian
ce51c10fc1 am 2030d78d: am 8fc3540f: Merge "be a bit more defensive when parsing extension strings" into ics-mr1
* commit '2030d78dc9c20d2f561f4b11f1a1adddb63661c6':
  be a bit more defensive when parsing extension strings
2011-11-17 11:46:20 -08:00
Jack Palevich
22da9a8beb Merge "Fix potential GLThread / GLSurfaceView memory leak." 2011-11-17 11:05:30 -08:00
Dianne Hackborn
77c5f4def4 am 9aa6bd1c: am 717a25dc: Add new ManagedEGLContext class to help apps participate in memory trimming.
* commit '9aa6bd1c34fe3583fe31f283a6415e84fec12567':
  Add new ManagedEGLContext class to help apps participate in memory trimming.
2011-11-17 05:46:34 -08:00
Mathias Agopian
47ab60e93f 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
Dianne Hackborn
717a25dc2a Add new ManagedEGLContext class to help apps participate in memory trimming.
This class provides an API for an application to know when it is time to
destroy its EGL context when memory is being trimmed.  By having this in
the framework, we can still detect whether it will be useful to destroy
any EGL contexts (because we know if doing so will destroy all of them).

Change-Id: I1eac8d640052778052926b875c7928008f752182
2011-11-16 14:04:53 -08:00
Mathias Agopian
dff37bc674 am bc1b7f04: am c0fa2a3b: Merge "rework a bit how we manage EGL extensions" into ics-mr1
* commit 'bc1b7f0481f9bfa0e9feff0b43e48f9f171e0c38':
  rework a bit how we manage EGL extensions
2011-11-15 18:25:30 -08:00
Jack Palevich
80b3cd6bc6 Fix potential GLThread / GLSurfaceView memory leak.
Until now a leak was possible under the following scenario:

Create a GLSurfaceView
Register a renderer (this automatically starts a GLThread).
Discard the GLSurfaceView without installing it in the view system.

This scenario can occur when a device is rotated rapidly from
orientation A to orientation B to orientation C. In that scenario,
orientation B's GLSurfaceView might be discarded without ever being
attached to a window.

If this issue had been identified before GLSurfaceView had clients, one
possible fix would have been to delay the construction of the GLThread
until the GLSurfaceView was attached to a window. Unfortunately, it's
too late, and so making that change would lead to observable changes in
behavior, possibly breaking some clients.

Instead, fixed by making GLThread and EGLHelper static classes that hold
onto a weak reference to the GLSurfaceView. This allows the GLSurfaceView
to be garbage collected when it is no longer used, even if the GLThread
is active. GLSurfaceView's finalize method will manually stop the GLThread
if it is still running when the GLSurfaceView exits.

Part of this change was to remove the Renderer reference from GLThread,
because Renderer is a user-supplied class that could contain a reference
chain that points back to the GLSurfaceView.

Fixes b/5606613 "GLSurfaceView that's never added to a window will
leak threads and views, can leak activities"

Change-Id: Iafdc329eb6e9e40062358e7c119f5547ffe23d5e
2011-11-15 14:51:27 -08:00
Mathias Agopian
d6ae2ceedf am a0d32c4d: am 6b3ce09d: Merge "fix crash when validating an invalid EGL objects" into ics-mr1
* commit 'a0d32c4d094704fd6f4ccd3cba297a7c7d2f38fe':
  fix crash when validating an invalid EGL objects
2011-11-15 13:11:17 -08:00
Jamie Gennis
9726b1b54b 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
Jamie Gennis
43015443b4 am c38d40de: am 6b228af6: Merge "EGL: add the ANDROID suffix to the blob cache ext" into ics-mr1
* commit 'c38d40ded9810aa809489e080ee811bec86d546d':
  EGL: add the ANDROID suffix to the blob cache ext
2011-11-15 11:29:47 -08:00
Mathias Agopian
e88740e626 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
274e03c90e 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
6b228af6ff Merge "EGL: add the ANDROID suffix to the blob cache ext" into ics-mr1 2011-11-14 17:36:46 -08:00
Jamie Gennis
b7928463a3 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
Akwasi Boateng
1333742bed am cb0db030: Merge branch \'ics-mr1-plus-aosp\' of ssh://android-git:29418/platform/frameworks/base into ics-mr1-plus-aosp
* commit 'cb0db0306b5849a35d3d99eea1b34ce019c6f0d8':
  Make the overridden ImageView#setVisibility remotable
  Clamp non-monotonic stats instead of dropping.
  DO NOT MERGE. Fix leak in LayoutTransition
  Fix lastVisible/global rects
  Fix Wimax-less build.
  Fix leak in LayoutTransition
  Deferring wallpaper update to improve workspace scrolling (issue 5506959)
  Terminate EGL when an app goes in the background
  boot animation is dithered and scaled
  Fix NdefRecord byte-stream constructor.
  PopupWindow dismiss() can get into a recursive loop.
  Fold WiMAX state into the mobile RSSI.
  Remove dedicated wimax icon to fix RSSI layout.
2011-11-11 15:34:19 +00:00
Romain Guy
50a66f0e9c Merge "Terminate EGL when an app goes in the background" into ics-mr1 2011-11-10 17:10:41 -08:00
Romain Guy
8ff6b9ebee 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