3921 Commits

Author SHA1 Message Date
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
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
Romain Guy
82bc7a7727 Properly restore the GL scissor after a GL draw functor
Bug #5781254

Change-Id: I1dc4809563a793b6b579814951d4d73b4c34bf32
2012-01-03 14:14:55 -08:00
Chet Haase
0faa055639 Merge "De-allocate caches for large glyphs when trimming memory" 2011-12-17 10:20:14 -08:00
Chet Haase
9a8245629d De-allocate caches for large glyphs when trimming memory
Currently, font renderers eliminate some texture caches when
memory is trimmed. This change makes it go further by eliminating the
large-glyph caches for all font renderers. These caches are
only allocated as needed, but continue to consume large amounts of
memory (CPU and GPU) after that allocation. De-allocating this memory
on a trim operation should prevent background apps from holding onto
this memory in the possible case that they have allocated it by drawing
large glyphs.

Change-Id: Id7a3ab49b244e036b442d87252fb40aeca8fdb26
2011-12-16 15:44:59 -08:00
Jeff Brown
1b67852823 Merge "Fix invalid madvise() during concurrent alloc/dealloc of MemoryDealer" 2011-12-16 14:35:16 -08:00
Chet Haase
0904c203c4 Merge "Fix issues from recent glyph caching change" 2011-12-16 06:49:59 -08:00
Chet Haase
2a47c14e2a Fix issues from recent glyph caching change
There were 2 issues remaining after a recent change to support
glyph caching from multiple textures:
- memory in the GPU for all textures was being allocated automatically.
This is now lazy, being allocated only when those textures are first
needed.
- filtering (applied when a rendered object is transformed) was ignoring
the new multiple-texture structure. Filtering should be applied correctly
whenever we change textures.

Change-Id: I5c8eb8d46c73cd01782a353fc79b11cacc2146ab
2011-12-15 15:43:02 -08:00
Romain Guy
8f85e80b64 Generate even fewer GL commands
Change-Id: I0f4dcacb03ef5ee7f6ebd501df98bfead5f0a7f8
2011-12-14 19:23:32 -08:00
Ji-Hwan Lee
c17d9b75b6 Fix invalid madvise() during concurrent alloc/dealloc of MemoryDealer
Currently, madvise(MADV_REMOVE) is called after deallocation.
Another thread might allocate (and even write) the same region between
deallocation and madvise(), in which case the new thread will fail to read
what it have written.  So, call deallocate() after madvise(MADV_REMOVE).

Bug: 5654596
Change-Id: I26f36cd6013de499090768a0ddc68206a4a68219
2011-12-15 04:37:22 +09:00
Romain Guy
2d4fd36484 Reduce the number of active texture changes
Change-Id: I94046bdfe20740c26c8183822e3002d692fde7c4
2011-12-13 22:00:19 -08:00
Romain Guy
ec31f83bd3 <Insert something improper about OpenGL>
Change-Id: Ib645376093838156771588adc76a718da0ceb0db
2011-12-13 18:41:12 -08:00
Romain Guy
a1d3c91afb Further reduce the number of GL commands sent to the driver
Change-Id: Id922b2a166ea4573b767c27d3195e11c70320b23
2011-12-13 14:58:14 -08:00
Chet Haase
e829bc0f03 Merge "Make glyph cache more flexible" 2011-12-13 14:03:43 -08:00
Chet Haase
7de0cb12d0 Make glyph cache more flexible
Some GPU architectures could not handle the previous implementation
of our glyph cache. Frequent uploads would cause memory problems in the GPU
and eventually a crash due to these memory issues. The solution is to move to
a system of several, smaller caches instead of one monolythic cache for all
glyphs.

Change-Id: I0fc7a323360940d16d5a33eeb33abfab194c5920
2011-12-13 13:41:58 -08:00
Romain Guy
15bc6437f8 Reduce the number of GL commands generated by the UI
This optimization along with the previous one lets us render an
application like Gmail using only 30% of the number of GL commands
previously required

Change-Id: Ifee63edaf495e04490b5abd5433bb9a07bc327a8
2011-12-13 13:11:32 -08:00
Romain Guy
5009f65c9a Merge "Optimize state changes" 2011-12-12 20:36:22 -08:00
Romain Guy
f3a910b423 Optimize state changes
Change-Id: Iae59bc8dfd6427d0967472462cc1994987092827
2011-12-12 20:35:21 -08:00
Romain Guy
da7642b31b Merge "Minimize the amount of data uploaded to draw text" 2011-12-12 19:04:40 -08:00
Romain Guy
51fbb00966 Merge "Various OpenGL optimizations" 2011-12-12 19:04:32 -08:00
Romain Guy
d71dd367af Minimize the amount of data uploaded to draw text
Change-Id: I6313ac039291c9cd93aadafe3566ad9d60cab42d
2011-12-12 19:03:35 -08:00
Romain Guy
39d252a663 Various OpenGL optimizations
Change-Id: Ib0742c96f10f5f50e7e5148b742c31b6c232d127
2011-12-12 18:14:06 -08:00
Romain Guy
d2ea737a1f Merge "Remove leftover debugging code" 2011-12-12 16:50:55 -08:00
Romain Guy
f44e66fcf7 Remove leftover debugging code
Change-Id: I1589af7991da36744071d5081daa24ebae5b4dfd
2011-12-12 16:50:13 -08:00
Romain Guy
ebb2c6b36d Merge "Keep shaders to render properly" 2011-12-12 16:49:40 -08:00
Romain Guy
3e263fac8c Keep shaders to render properly
I don't know who's to blame, SGX or Tegra2 but one of those two GPUs is not
following the OpenGL ES 2.0 spec.

Change-Id: I2624e0efbc9c57d571c55c8b440a5e43f08a54f2
2011-12-12 16:47:48 -08:00
Jamie Gennis
f08403ba92 am 74e0fcae: am a1dee3f5: Merge "SurfaceTexture: fix a verbose-log compile error" into ics-mr1
* commit '74e0fcaed1cd20ae8632224ff5a5404ff1a6e497':
  SurfaceTexture: fix a verbose-log compile error
2011-12-12 16:10:28 -08:00
Romain Guy
6752d0ab02 Mark color uniform fetched after fetching it
Change-Id: I10e8027018608070a536eb8b51c7a4272e37006c
2011-12-12 12:15:17 -08:00
Jamie Gennis
798b9cdf8c SurfaceTexture: fix a verbose-log compile error
Change-Id: I045231207e068d950bb0cb5085717af5d9454ed1
2011-12-09 15:07:44 -08:00
Romain Guy
24edca8b52 Code cleanup
Change-Id: If92e3addfc4d8546a60edcdea60a1fc89c27b680
2011-12-09 13:08:06 -08:00
Romain Guy
05bbde70fd Free up resources by deleting shaders early on
Change-Id: I29a39775732c0a48d3e6823f7afa3e741cae8541
2011-12-09 12:55:37 -08:00
Mathias Agopian
4a46ee57f1 Merge "Improve the VSYNC api a bit." 2011-12-07 14:15:21 -08:00
Mathias Agopian
6779df2c28 Improve the VSYNC api a bit.
- add the ability to set the vsync delivery rate, when the rate is
set to N>1 (ie: receive every N vsync), SF process' is woken up for
all of vsync, but clients only see the every N events.

- add the concept of one-shot vsync events, with a call-back
to request the next one. currently the call-back is a binder IPC.

Change-Id: I09f71df0b0ba0d88ed997645e2e2497d553c9a1b
2011-12-06 22:43:10 -08:00
Stephen Hines
f7f930480c Merge "NULL should not be const for RS." 2011-12-06 18:33:35 -08:00
Stephen Hines
4d322043ab NULL should not be const for RS.
Change-Id: I24d96843c40f822bf064a0fa1fc0440b6bf0518d
2011-12-06 16:47:32 -08:00
Romain Guy
9c4b79af22 Discard framebuffer rendering queues when discarding layers
Bug #5581817

Change-Id: Ie30700a29059d2ea60eb7bd3f8bd20ac48a149ab
2011-12-06 16:37:10 -08:00
Romain Guy
7da48db9c5 Merge "Clip text correctly Bug #5706056" 2011-12-05 11:56:09 -08:00
Romain Guy
8f9a9f61ab Clip text correctly
Bug #5706056

A newly introduced optimization relied on the display list renderer
to properly measure text to perform fast clipping. The paint used
to measure text needs to have AA and glyph id encoding set to return
the correct results. Unfortunately these properties were set by
the GL renderer and not by the display list renderer. This change
simply sets the properties in the display list renderer instead.

This change also improves the error message printed out when the
application attempts to use a bitmap larger than the max texture
size.

Change-Id: I4d84e1c7d194aed9ad476f69434eaa2c8f3836a8
2011-12-05 11:53:26 -08:00
Ben Cheng
f0fef4f17b am f1a4c48b: am e21dabf6: Merge "Initialize bwr.read_buffer in IPCThreadState::talkWithDriver." into ics-mr1
* commit 'f1a4c48b886d53e2afceb0620215e3792af79fd5':
  Initialize bwr.read_buffer in IPCThreadState::talkWithDriver.
2011-12-01 22:08:20 -08:00
Ben Cheng
e21dabf654 Merge "Initialize bwr.read_buffer in IPCThreadState::talkWithDriver." into ics-mr1 2011-12-01 22:05:07 -08:00
Romain Guy
cac5fd3e09 Faster text clipping
Change-Id: I03a00c4261d81a416b1ad7b86ce2d432c71908b4
2011-12-01 20:08:50 -08:00
Ben Cheng
0450570879 Initialize bwr.read_buffer in IPCThreadState::talkWithDriver.
I/valgrind( 1309): ==1310== Syscall param
ioctl(BINDER_WRITE_READ).read_buffer points to uninitialised byte(s)
I/valgrind( 1309): ==1310==    at 0x480E670: __ioctl (__ioctl.S:10)
I/valgrind( 1309): ==1310==  Address 0xbda651b4 is on thread 1's stack

Change-Id: I02893df7b5786b6b2dbd9659f5706d7171295ab2
2011-12-01 17:11:32 -08:00
Stephen Hines
976ae27270 Add support for handling a bitcode wrapper to librs.
BUG=5425905

Change-Id: I75676060703df6d9043b287fea900c4379455ee2
2011-12-01 16:37:00 -08:00
Romain Guy
d21b6e1fe3 Optimize away unnecessary state changes
Change-Id: I0f6816f9f6234853575ecee5033186ad19e76380
2011-11-30 20:21:23 -08:00
Mathias Agopian
993b2099ce am 55d3880e: am bb1e7d43: Merge changes I7e973a35,Ib3386fcc into ics-mr1
* commit '55d3880eed3450748eb7b97281e030902ee29c2a':
  SurfaceTexture: add EGL_KHR_fence_sync option
  SurfaceTexture: add a blit-to-FBO test
2011-11-30 10:50:52 -08:00
Jamie Gennis
77cec6132a SurfaceTexture: add EGL_KHR_fence_sync option
This change adds a compile-time option for SurfaceTexture to use the
EGL_KHR_fence_sync extension to synchronize access to Gralloc buffers.

Bug: 5122031
Change-Id: I7e973a358631fff5308acf377581b811911fe790
2011-11-29 17:09:01 -08:00
Jamie Gennis
d6c938f04e SurfaceTexture: add a blit-to-FBO test
This change adds a test for blitting (via GL rendering) from a
SurfaceTexture to an FBO.

Change-Id: Ib3386fcc3f37153277f3e37a26347441bb80ab58
2011-11-29 14:52:36 -08:00
Mathias Agopian
79f39eb460 Add support for sending VSYNC events to the framework
use gui/DisplayEvent to receive the events. Events are
dispatched through a unix pipe, so the API is compatible
with utils/Looper. see gui/DisplayEvent.h for more info.

Bug: 1475048
Change-Id: Ia720f64d1b950328b47b22c6a86042e481d35f09
2011-11-29 13:10:25 -08:00
Mathias Agopian
f9e88fbee0 Fix build.
Revert "Add support for sending VSYNC events to the framework"

This reverts commit f3918c5bd4bc9f02f74da42995564150ca2dd382.

Change-Id: I998e3e1aa3fa310829ae973b64fe11b01f6f468f
2011-11-29 13:07:40 -08:00
Mathias Agopian
aa2892edc7 Merge changes If4126023,Iacda2386,I1eb691f7,Ib56139f8
* changes:
  Add support for sending VSYNC events to the framework
  BitTube::read now handles EAGAIN
  split ComposerService out of SurfaceComposerClient.h
  rewrite SF's message loop on top of Looper
2011-11-29 11:47:03 -08:00