summaryrefslogtreecommitdiff
path: root/libcopybit/copybit.h
diff options
context:
space:
mode:
authorArun Kumar K.R <akumarkr@codeaurora.org>2012-11-27 17:18:45 -0800
committerArun Kumar K.R <akumarkr@codeaurora.org>2013-01-09 13:56:38 -0800
commit6b353bd3d634042ad3129755c513f47159f8ff4e (patch)
tree6b5ed87f35565549e7769b2aecf4d7a172450f51 /libcopybit/copybit.h
parent6e044717788c5e97d43fd3b14d3d274790eebe29 (diff)
downloaddisplay-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.h33
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);
+
};