Commit Graph

1172 Commits

Author SHA1 Message Date
Naomi Luis
b6ca342fac libcopybit: Add support for converting to non 32pixel aligned formats.
Android YUV formats are aligned to 16pixels, while C2D requires 32pixel
aligned. Use a temp buffer to do the conversion.

Change-Id: Iff93b56e152460255d480dc703dabbcdb3697995
2011-12-12 16:41:07 -08:00
Naomi Luis
27774b1a66 libhwcomposer: Set the Framebuffer info for copybit composition.
Invoke copybit's set parameter call to set the framebuffer width and
height.

Change-Id: I735772e21b9fead48686fac3371b6b93156ece8a
2011-12-10 16:44:33 -07:00
Naseer Ahmed
c2e6b1f62e display: Use bypass only for contiguous memory
Since composition bypass uses MDP overlays, which
need physically contiguous memory, we cannot use
bypass in cases where the buffers are using ashmem
or other virtual memory. Hence, avoid bypass in
such cases.

Change-Id: I5c6d20e68e15719295373a1b0f3b930536336c43
2011-12-09 14:47:10 -07:00
Linux Build Service Account
9cc133f454 Merge changes Ica0f7622,Ia2b4dadf into ics
* changes:
  libcopybit: Add support for setting the Framebuffer info.
  libcopybit: Add support for YUV destination targets.
2011-12-09 05:05:31 -08:00
Linux Build Service Account
3ace14e571 Merge "display: gralloc: zero out the alloc'd ion buffer" into ics 2011-12-08 05:59:07 -08:00
Linux Build Service Account
0414780dfd Merge "gralloc: Limit fallback case for SMI" into ics 2011-12-08 05:59:07 -08:00
Naseer Ahmed
c421c6ac19 gralloc: Limit fallback case for SMI
For pmem, do not fall back to the ADSP heap if
SMI was requested explicitly

Change-Id: I31d85aa7bef3db53ca9ba108170df7ef4841843b
2011-12-07 10:56:11 +05:30
Linux Build Service Account
e714021cac Merge "hardware/qcom/display: support for QCOM tiled rendering" into ics 2011-12-06 19:03:25 -08:00
Naomi Luis
90f0fc7201 libcopybit: Add support for setting the Framebuffer info.
Add support to set the framebuffer width and height in the copybit
context. This parameter will be set for composition using c2d where
the c2d target is calculated based on the framebuffer width and height.

Change-Id: Ica0f7622bed305c0f56dd0a16b35406c28600fd8
2011-12-06 12:58:20 -08:00
Naomi Luis
2197d5d924 libcopybit: Add support for YUV destination targets.
Add support in the c2d copybit for YUV destination. We support 2 and 3
plane yuv formats.

Change-Id: Ia2b4dadf2966a324e011fea499da996eee8c8c3c
2011-12-06 12:52:22 -08:00
Sushil Chauhan
f2dbabe786 Bypass: Turn off only after FB content is displayed.
Synchronize turning off of composition bypass with display,
so that close happens only after FB content is displayed.
This fixes blinks observed when bypass needs to be turned off,
for reasons other than video content.

Change-Id: Id98bddd0cb2a89ea8729a188934ae1cd947cf305
2011-12-05 16:52:39 -08:00
Naomi Luis
599d9a41bc libhwcomposer: Unlock buffers if the input params are invalid.
If the input parameters in the prepare and set functions are invalid, unlock
any previously locked buffers.

Change-Id: Ifd3b02c3ae6d2095970d5e15b98196d7fa7dee4e
CRs-fixed: 322054
2011-12-05 14:02:34 -07:00
Linux Build Service Account
8281d24bcd Merge "libhwcomposer: Lock/unlock bypass buffers using genlock" into ics 2011-12-05 12:54:22 -08:00
Naseer Ahmed
ba64a65af2 libgralloc: Add gralloc perform to create handle from a buffer
Change-Id: I11fb9add49f32cc5d518baf47cb61507474f6809
2011-12-05 02:42:14 -07:00
Naomi Luis
f79ec0f398 libcopybit: Add copybit iterator.
Add the copybit iterator which takes a single rectangle as an input.

Change-Id: I6fd496450c29ed06ffbfad62b5c880e837450791
2011-12-04 19:40:55 -08:00
Naomi Luis
8994068ce6 libgralloc: Add HAL_PIXEL_FORMAT_NV12_ENCODEABLE format.
Add HAL_PIXEL_FORMAT_NV12_ENCODEABLE which is the encoder specific
format.
Remove unused OEM formats from the gralloc.

Change-Id: I787203cd96b597c881f0acc10b60ea2ab2ffe1ab
2011-12-04 15:23:50 -08:00
Naseer Ahmed
e5a9508bad display: gralloc: zero out the alloc'd ion buffer
Change-Id: Ib92863cf03f284eb24729bbad449795e7bd47d44
2011-12-01 23:26:28 -08:00
Naomi Luis
b0e7470e4f libhwcomposer: Lock/unlock bypass buffers using genlock
Use genlock to lock the bypass buffers before they are queued to the
overlay. After all the bypass buffers are queued, use genlock to
unlock the previously locked bypass buffers.

Change-Id: Ifdd7921f0c9f5d5744c899a0257a4b954274334b
2011-12-01 18:25:44 -08:00
Rajulu Ponnada
f54edbd924 hardware/qcom/display: support for QCOM tiled rendering
Tiled rendering implementation.

Change-Id: I1d1361b175fdb6f64b47df85b8f68bebd7d1eea5
2011-11-30 17:19:30 -08:00
Naomi Luis
e2de425bc4 Display: Set WAIT on primary and NO_WAIT on HDMI
When queuing buffers using the overlay:
- Set the NO_WAIT flag for the HDMI channel.
- Set the WAIT flag for the primary channel.
- Queue the buffer on the HDMI first.
- Queue the buffer on the primary.
- Wait for the HDMI Vsync.

Change-Id: Id24e9551230b7a7134bd21a7b3a9e8658f7de222
2011-11-28 16:10:51 -08:00
Naomi Luis
0e8663d5f2 libgenlock: Enable the USE_GENLOCK flag.
Change-Id: I2349de455eb82f2b10d2ccac1c318d7cef2901ae
2011-11-28 16:08:22 -08:00
Naomi Luis
d415cbf061 libgenlock: Add compile time flag.
Add a compile time flag USE_GENLOCK to enable/disable genlock.

Change-Id: I3b442a52b446c2a5e0417ba1058460bdee02fc90
2011-11-26 09:27:36 +05:30
Linux Build Service Account
1698fbaa95 Merge changes I5283613c,I9377584e,I788e411f,I5172a825 into ics
* changes:
  libgralloc: Invoke genlock during gralloc_lock/gralloc_unlock
  libgralloc: Map buffers during registration
  libgralloc: Create, attach and release genlock locks
  Add a generic buffer locking API.
2011-11-25 05:20:31 -08:00
Linux Build Service Account
0a01ff6907 Merge "display: Ashmem: use MAP_POPULATE when mapping" into ics 2011-11-25 05:20:31 -08:00
Naomi Luis
be1b5f3d66 libhwcomposer: Use genlock to lock/unlock buffers for composition.
For copybit composition, aquire a read lock on the buffer, before
the blit operation and release the lock after the blit operation.

For overlay, aquire a read lock on buffer N that is sent to the
overlay. After the play call for buffer N returns, unlock the lock
held by buffer (N-1).

Change-Id: I3ff178d8ed8e3a289c199237dbec501afdb7e717
2011-11-25 16:27:59 +05:30
Linux Build Service Account
8e61389886 Merge "copybit: Do not do in-place conversion for YV12" into ics 2011-11-24 04:18:08 -08:00
Naseer Ahmed
95ab7ecd2c copybit: Do not do in-place conversion for YV12
Change-Id: I7e53f44baa6e924c6923d4e1d1af9454f51a7357
2011-11-23 18:12:56 -08:00
Naseer Ahmed
dce3b38f58 display: Ashmem: use MAP_POPULATE when mapping
If the flag is not used, it causes errors with
mapping the page tables in the kgsl driver

Change-Id: Iaa29eb764aff8a9af4b14fff9fdab60b50759e45
2011-11-23 17:33:02 -08:00
Naseer Ahmed
229856bedf HWC: Fix for non-overlay targets
Do not call prepareOverlay, instead
use copybit to compose video frames

Change-Id: I5e85b0b65009de37ab792e59d259d8f1879fb0c4
2011-11-23 17:22:36 -07:00
Naomi Luis
1e74639826 libgralloc: Invoke genlock during gralloc_lock/gralloc_unlock
gralloc_lock and gralloc_unlock invokes genlock to perform the buffer
locking operation.
Remove unused gralloc handle variables.

Change-Id: I5283613c5f67f708123916653af1b2d1ec155577
2011-11-23 15:06:47 -08:00
Naomi Luis
09367ef6e8 libgralloc: Map buffers during registration
Map the gralloc buffer during the register_buffer phase. This allows
the clients to obtain the virtual address without the need to call an
additional mmap.

Change-Id: I9377584ee564ad5113fd353b727793f16d7b9b94
2011-11-23 15:04:40 -08:00
Naomi Luis
1b5f80522b libgralloc: Create, attach and release genlock locks
Add support in the gralloc to:
- Create a lock during buffer allocation.
- Release a lock when the buffer is freed or unregistered.
- Attach a lock when the buffer is registered.

Change-Id: I788e411f43d5fcf88d7dcf39c530559a12d6361c
2011-11-23 14:58:23 -08:00
Naomi Luis
aa4994d543 Add a generic buffer locking API.
Add libgenlock which is a cross-process buffer locking API. libgenlock
provides the ability to create, attach, release locks. It also provides
a mechanism to lock and unlock buffers for read/write purposes.

Change-Id: I5172a82539b83bcb1226e3fd4f7b80a5c7f31016
2011-11-23 14:39:28 -08:00
Naseer Ahmed
d047ca874d Display: Use flush instead of clean for ashmem
Change-Id: I9a4b8f4685620a8c650e03dd8c1a0203fa3b91e1
2011-11-22 11:44:58 -08:00
Naseer Ahmed
7f94fa6694 Display: Use new APIs for pmem in overlay
Change-Id: I021abfd4500c5cf24891e2b7e4335d65033b8b50
2011-11-22 11:36:49 -08:00
Sushil Chauhan
ef62685ddd Enable Composition Bypass.
1. Enable composition bypass for 1 or 2 non-overlapping layers.
2. Open bypass only if video playback status is CLOSED.
3. Close bypass immediately if Video or Camera needs VG pipe.

Change-Id: I1bef030b32ff2721d00b61f7717027d4d9219d04
2011-11-21 11:36:58 -08:00
Harshad Bhutada
cfd5850e6a copybit: Enable copybit for 7K targets
Change-Id: Ie88f36d54d2eac51bcb5ea6c1793b41e4573ca53
2011-11-21 18:50:46 +05:30
Naseer Ahmed
a6bda75e59 display: Enable triple FrameBuffering
Change-Id: Iab7ea670a940438f83dd7130933cceafd15b29a6
2011-11-20 21:44:03 -08:00
Naseer Ahmed
b0d4ae5c3a libcopybit: Enable copybit in new location
- Enabled copybit HAL
- Remove copybit support for 8k targets from Makefile.

Change-Id: I15ea4851c677bc9338159a8db667056655dddc13
2011-11-20 21:43:45 -08:00
Jeykumar Sankaran
4d5323cc6d libhwcomposer: Enable c2d composition in HWC
This change enables c2d composition in HWC by removing the temporary
flag added in the following commit:

    commit 7b814382ad

Change-Id: Ia6705c369090b14f3a00678c4e82078bd6e58847
2011-11-20 21:43:22 -08:00
Naseer Ahmed
d92f2df0ea Display: Enable HDMI in gralloc
Change-Id: Ifff15f3ff1eb2bb40ffe5c8a743ec5852652f45f
2011-11-20 21:43:08 -08:00
Prabhanjan Kandula
96dd6a36b9 Display: Overlay HAL changes needed for HDMI
-Add overlay defines needed by framebuffer
-enable compile time flag for HDMI

Change-Id: I5b9a8412c579a3a8cd0e0283dc5fd7e26266c170
2011-11-20 21:42:53 -08:00
Naseer Ahmed
78ec9e4e53 display: Add support for pmem in the new gralloc
Change-Id: Ice6f436a01c3344a6d859ee0afc77673f151dbe4
2011-11-20 21:42:37 -08:00
Naseer Ahmed
96311b0091 Display: Compile gralloc for ICS
This disables certain features for compilation

Change-Id: I7e7533fa7db940a106b3520bef48c9fc2860707c
2011-11-19 21:16:20 -08:00
Naomi Luis
48cedc6ddf libcopybit: Add copybit header file.
Add the copybit header file in the libcopybit directory. Modify the
copybit source files to read from the correct header file.

Change-Id: I8d2f6758c7d1fbbb6ffc513d899b62b3c0013f5e
2011-11-18 05:29:58 -08:00
Jeykumar Sankaran
7b814382ad libhwcomposer: HWC change to accomodate HAL changes
-- Enable HWC
-- handle overlay as lib rather than HAL
-- move copybit changes under COPYBIT_ENABLE flag (temporary)

Change-Id: I36d8f9688cd7cbd838e288e5f482d8ee5c9b2df6
2011-11-18 02:04:19 -08:00
Jeykumar Sankaran
e61c2f0a86 liboverlay: change in overlay due to overlay HAL removal
-- remove overlay.cpp and overlayState.cpp
-- change setParameter to setTransform

Change-Id: I6ec591810cbfe53e51b0c88ef547a2e687ea69b3
2011-11-18 02:04:18 -08:00
Naseer Ahmed
cb2b8ef287 copybit: Change gralloc header location
Change-Id: I7f4ffed723d2a84d832ec52fd25fe9636f2885a2
2011-11-16 16:57:33 -08:00
Naseer Ahmed
c2b402de13 Merge new display HAL
Change-Id: Ia937a122d5d22df243e31d7eef8762a532094684
2011-11-16 14:51:53 -08:00
Naseer Ahmed
9c050e95ec gralloc: Refactor, ion support
- Add ION support
- Refactor the design

Change-Id: I5b067b0aca1235ee8c01c256e025f416bb56f560
2011-11-16 13:43:12 -08:00