793 Commits

Author SHA1 Message Date
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
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
Jamie Gennis
715bcd6d5b am 1bf15e79: am 97ece7a9: Merge "EGL: add deferred saving of the cache" into ics-mr1
* commit '1bf15e79dcc89229c599987ed795e3fd99bcbc88':
  EGL: add deferred saving of the cache
2011-11-10 16:14:45 +00:00
Jamie Gennis
dfef67374a am 3cb007e4: am 911263dc: Merge changes I18e5e789,I5cbaae2d into ics-mr1
* commit '3cb007e44db1e169747528f62a118575f3b04d56':
  EGL: implement loading and saving the cache
  EGL: use an in-memory the blob cache
2011-11-09 21:51:16 +00:00
Jamie Gennis
2ea0cbb3d1 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
d90bf3911d 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
9cf8b6eadb 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
Alex Sakhartchouk
9829cceca1 Merge "Properly passing an unused variable through." 2011-11-07 09:53:28 -08:00
Jamie Gennis
aaa0336f88 am 2ab7ec90: Merge "EGL: Add stubs for EGL_ANDROID_blob_cache" into ics-mr1
* commit '2ab7ec90e4a6f21bee7cbfebbd751d32d4cf9e03':
  EGL: Add stubs for EGL_ANDROID_blob_cache
2011-11-05 19:33:42 +00:00
Jamie Gennis
0dc908ce71 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
Alex Sakhartchouk
fc5e224e8d Properly passing an unused variable through.
Change-Id: Ie49b5855bfca4e202ed41b6167a899832e99d728
2011-11-03 17:28:33 -07:00
Joe Fernandez
eba186448f am 74b2b954: am 09848bc8: Merge "docs: add developer guide cross references, Project ACRE, round 3" into ics-mr0
* commit '74b2b9547329a0b05e0bd5701057696007b854bb':
  docs: add developer guide cross references, Project ACRE, round 3
2011-10-31 12:26:31 +00:00
Joe Fernandez
74b2b95473 am 09848bc8: Merge "docs: add developer guide cross references, Project ACRE, round 3" into ics-mr0
* commit '09848bc89de999416e2de82a7693b2deec6bf802':
  docs: add developer guide cross references, Project ACRE, round 3
2011-10-29 02:16:10 +00:00
Jack Palevich
b50e2afd67 Destroy and recreate the EGL surface when the surface size changes.
Details:
+ Split EGLHelper.createSurface into two methods.
+ Add a separate flag for specifying when to create the GlInterface.
+ destroy and recreate the EGL surface when the surface size changes
+ Remove no-longer-needed work-around for b/2263168.

This fixes b/2263168

Change-Id: I0d2596527e3c8dabacdd8a8e427531eaefe7d266
2011-10-28 14:38:53 -07:00