diff options
author | Arun Kumar K.R <akumarkr@codeaurora.org> | 2012-11-27 17:18:45 -0800 |
---|---|---|
committer | Arun Kumar K.R <akumarkr@codeaurora.org> | 2013-01-09 13:56:38 -0800 |
commit | 6b353bd3d634042ad3129755c513f47159f8ff4e (patch) | |
tree | 6b5ed87f35565549e7769b2aecf4d7a172450f51 /libcopybit/copybit.h | |
parent | 6e044717788c5e97d43fd3b14d3d274790eebe29 (diff) | |
download | display-6b353bd3d634042ad3129755c513f47159f8ff4e.tar.gz |
libcopybit: Merge copybit HAL from jb
Single commit having all the following commits
commit f39e512ad6f51cf35ab00995e52a39f31e76e77f
Author: Naomi Luis <nluis@codeaurora.org>
Date: Fri Oct 19 14:41:32 2012 -0700
copybit_c2d: Use a single draw call for surfaces with different rotations
- When opening the copybit module, query the c2d driver capabilities.
- If supported, use a single draw call for blitting surfaces with different
orientations using the target target rotate override flag.
- If not supported, invoke finish_copybit to draw the layers with the
previous orientation before applying the current orientation.
Change-Id: I0446f2817786321c9caa2eabf7b6679e5ecbcabe
commit a4008ff75150c1591c0dca46354e6bb8b30a675b
Author: Naomi Luis <nluis@codeaurora.org>
Date: Thu Oct 18 15:26:15 2012 -0700
Display: Add copybit_c2d performance optimizations
Following performance optimizations have been made to copybit_c2d
- Club all the layers into a single draw call. When finish_copybit
is invoked, the draw and finish are executed.
- Send the layer blend mode to copybit.
- If the blend is set to none, set the pre-multiplied alpha flag.
SurfaceFlinger assumes all surfaces have pre-multiplied alpha unless
explicitly specified. Copybit_c2d does the same.
The following cases are currently exempt from this optimization:
- Change in C2D target
- The template surfaces limit has been reached
- Max. blit object limit has been reached.
- Change in target transform.
- Use of any temporary source/destination surfaces.
Change-Id: I5ad1dc48bbe6d38d319116ccaa800fefb4fbf9f6
commit b188d739f69272c4820e1a33c5e10aa2f2825a5f
Author: Naomi Luis <nluis@codeaurora.org>
Date: Mon Oct 15 11:17:11 2012 -0700
copybit: Add finish API
Add the finish API to copybit. This API is used to indicate the
end of the drawing required by the copybit client.
Change-Id: Ica4d13dbe6e7aeb7f88aabb734bf03e86c043acc
commit ecd56ace395fce78c14e2e753d3221218d062899
Author: Naomi Luis <nluis@codeaurora.org>
Date: Mon Oct 15 11:21:08 2012 -0700
copybit: Clean up copybit_c2d
- Remove unused functions
- Do nothing for the COPYBIT_BLIT_TO_FRAMEBUFFER case when using c2d
composition.
Change-Id: Idc416ce3742bb41f060e52ac70add44e584032b9
commit 35d45d0cff5f6fe866fcb5df71444824a45e046e
Author: Naomi Luis <nluis@codeaurora.org>
Date: Wed Oct 17 10:37:33 2012 -0700
copybit: Use correct alignment in get_size()
get_size() is used to get the size required by c2d. It's alignment
should be 32 and not 16.
Change-Id: I9fedca0186d0ea19883b967e127417b059621a99
commit 31311da328cbe2229fcf8d8d8e276ec64005bcb3
Author: Ramakant Singh <ramaka@codeaurora.org>
Date: Thu Sep 20 15:58:29 2012 +0530
HWC: use uncached buffer for tmp yv12 and tmp stretch buffer.
Change-Id: Iecc2a9c3c9a365d00d3491ce1007a36484209346
CRs-fixed: 396574
commit 5503c90b5001aa4d863139eebcd9c0c43f265702
Author: Pawan Kumar <pavaku@codeaurora.org>
Date: Mon Sep 3 09:14:13 2012 +0530
copybit: Fix crash when copy_image is called with Tile format
Add check for copy_image failure case.
CRs-Fixed: 393122
Change-Id: I5765120e87a135795d771c5d331275a66ade7e23
commit 48975bc53702ecba66ecaa5e5769036bb91f5cf2
Merge: feb1cd6 ab25cb4
Author: Linux Build Service Account <lnxbuild@localhost>
Date: Sat Sep 1 13:36:47 2012 -0700
Merge "Display ::Use proper ion heap id" into jb
commit ab25cb4818d9b87886678972f2861bacc93c580a
Author: Ramakant Singh <ramaka@codeaurora.org>
Date: Thu Aug 9 14:23:39 2012 +0530
Display ::Use proper ion heap id
Change the MM heap to CAMERA heap for 7627a in use case
1.Intermediate stretch of low resolution clips
2.Software conversion of Y12 format
Change-Id: Ib705d3245f601256179e2dedccbc707df85eb431
CRs-Fixed: 383115
commit 90bcaadf41451d89fe80f96961ffc0a07a333145
Author: Prabhanjan Kandula <pkandula@codeaurora.org>
Date: Mon Aug 6 12:50:12 2012 +0530
libcopybit: fix YUV buffer alignments as per gralloc
buffer alignment in copybit should be in sync with
gralloc allignments while allocating buffer.
CRs-fixed: 377051
Change-Id: Ib2ae64e368ea3c92d3494c71da605197ccb4a9a5
Conflicts:
libcopybit/copybit_c2d.cpp
commit 95cf0038ea6eb02314024d673418464f0739ddb4
Author: Sravan Kumar D.V.N <sravank1@codeaurora.org>
Date: Thu Aug 2 14:37:37 2012 +0530
copybit : Add support for NV12_ENCODABLE format
Change-Id: I7087dcad2238a3c35cc15c28d75b76a9e3ca6718
Change-Id: I748bffb4215d27f609beec209af0a5047858a314
Diffstat (limited to 'libcopybit/copybit.h')
-rw-r--r-- | libcopybit/copybit.h | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/libcopybit/copybit.h b/libcopybit/copybit.h index c14af74c..5adc433d 100644 --- a/libcopybit/copybit.h +++ b/libcopybit/copybit.h @@ -1,5 +1,9 @@ /* * Copyright (C) 2008 The Android Open Source Project + * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. + * + * Not a Contribution, Apache license notifications and license are retained + * for attribution purposes only. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -67,9 +71,8 @@ enum { /* blurs the copied bitmap. The amount of blurring cannot be changed * at this time. */ COPYBIT_BLUR = 5, - /* Informs the copybit that the source and destination contains - premultiplied alpha */ - COPYBIT_PREMULTIPLIED_ALPHA = 6, + /* Blend mode */ + COPYBIT_BLEND_MODE = 6, /* FB width */ COPYBIT_FRAMEBUFFER_WIDTH = 7, /* FB height */ @@ -96,6 +99,20 @@ enum { COPYBIT_ENABLE = 1 }; +/* + * copybit blending values. same as HWC blending values + */ +enum { + /* no blending */ + COPYBIT_BLENDING_NONE = 0x0100, + + /* ONE / ONE_MINUS_SRC_ALPHA */ + COPYBIT_BLENDING_PREMULT = 0x0105, + + /* SRC_ALPHA / ONE_MINUS_SRC_ALPHA */ + COPYBIT_BLENDING_COVERAGE = 0x0405 +}; + /* use get_static_info() to query static informations about the hardware */ enum { /* Maximum amount of minification supported by the hardware*/ @@ -213,6 +230,16 @@ struct copybit_device_t { struct copybit_rect_t const *dst_rect, struct copybit_rect_t const *src_rect, struct copybit_region_t const *region); + + /** + * Execute the completion of the copybit draw operation. + * + * @param dev from open + * + * @return 0 if successful + */ + int (*finish)(struct copybit_device_t *dev); + }; |