diff options
author | Midas Chien <midaschieh@google.com> | 2021-05-19 22:11:24 +0800 |
---|---|---|
committer | Yichi Chen <yichichen@google.com> | 2022-01-14 07:25:46 +0000 |
commit | 298f810a5741f4d5bd96fc1f773ec37d715a476c (patch) | |
tree | 83e0c0b1ae785dec5ca253d47ec1642d92ed92ea | |
parent | f1363d15139c9d5e0ed9935676254b10a5c3752e (diff) |
libacryl: add support for MALI_GRALLOC_FORMAT_INTERNAL_YUV420
support for MALI_GRALLOC_FORMAT_INTERNAL_YUV420_8BIT_I and
MALI_GRALLOC_FORMAT_INTERNAL_YUV420_10BIT_I.
Bug: 175554638
Bug: 188647138
Test: play afbc av1 by g2d
Change-Id: Ic1dcba52512d18e5517689b415a600e836f73d7f
-rw-r--r-- | libacryl/Android.mk | 3 | ||||
-rw-r--r-- | libacryl/acrylic_factory.cpp | 12 | ||||
-rw-r--r-- | libacryl/acrylic_formats.cpp | 6 | ||||
-rw-r--r-- | libacryl/acrylic_g2d.cpp | 3 |
4 files changed, 16 insertions, 8 deletions
diff --git a/libacryl/Android.mk b/libacryl/Android.mk index ad3178d..abbc2f2 100644 --- a/libacryl/Android.mk +++ b/libacryl/Android.mk @@ -35,7 +35,7 @@ else LOCAL_CFLAGS += -DLIBACRYL_DEFAULT_BLTER=\"no_default_blter\" endif -LOCAL_SHARED_LIBRARIES := liblog libutils libcutils libion_google +LOCAL_SHARED_LIBRARIES := liblog libutils libcutils libion_google android.hardware.graphics.common-V3-ndk ifdef BOARD_LIBACRYL_G2D_HDR_PLUGIN LOCAL_SHARED_LIBRARIES += $(BOARD_LIBACRYL_G2D_HDR_PLUGIN) LOCAL_CFLAGS += -DLIBACRYL_G2D_HDR_PLUGIN @@ -43,6 +43,7 @@ endif LOCAL_HEADER_LIBRARIES += google_libacryl_hdrplugin_headers LOCAL_HEADER_LIBRARIES += google_hal_headers +LOCAL_HEADER_LIBRARIES += libgralloc_headers LOCAL_C_INCLUDES := $(LOCAL_PATH)/local_include LOCAL_C_INCLUDES += $(LOCAL_PATH)/include diff --git a/libacryl/acrylic_factory.cpp b/libacryl/acrylic_factory.cpp index 31f132c..7242ecd 100644 --- a/libacryl/acrylic_factory.cpp +++ b/libacryl/acrylic_factory.cpp @@ -15,14 +15,14 @@ * limitations under the License. */ -#include <cstring> - #include <log/log.h> - +#include <mali_gralloc_formats.h> #include <exynos_format.h> // hardware/smasung_slsi/exynos/include -#include "acrylic_internal.h" +#include <cstring> + #include "acrylic_g2d.h" +#include "acrylic_internal.h" static uint32_t all_fimg2d_gs101_formats[] = { HAL_PIXEL_FORMAT_RGBA_8888, @@ -37,12 +37,14 @@ static uint32_t all_fimg2d_gs101_formats[] = { HAL_PIXEL_FORMAT_EXYNOS_YCrCb_420_SP_M_FULL, // NV21 on multi-buffer HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, // NV12 (YUV420 semi-planar) HAL_PIXEL_FORMAT_GOOGLE_NV12_SP, // NV12 (YUV420 semi-planar) + MALI_GRALLOC_FORMAT_INTERNAL_YUV420_8BIT_I, // NV12 AFBC HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN, // NV12 with MFC alignment constraints HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M, // NV12M with MFC alignment constraints on multi-buffer HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_PRIV, // NV12M with MFC alignment constraints on multi-buffer HAL_PIXEL_FORMAT_YCbCr_422_SP, // YUV422 2P (YUV422 semi-planar) HAL_PIXEL_FORMAT_YCBCR_P010, HAL_PIXEL_FORMAT_GOOGLE_NV12_SP_10B, + MALI_GRALLOC_FORMAT_INTERNAL_YUV420_10BIT_I, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_P010_M, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_SBWC, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_SBWC, @@ -65,12 +67,14 @@ static uint32_t all_fimg2d_gs201_formats[] = { HAL_PIXEL_FORMAT_EXYNOS_YCrCb_420_SP_M_FULL, // NV21 on multi-buffer HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, // NV12 (YUV420 semi-planar) HAL_PIXEL_FORMAT_GOOGLE_NV12_SP, // NV12 (YUV420 semi-planar) + MALI_GRALLOC_FORMAT_INTERNAL_YUV420_8BIT_I, // NV12 AFBC HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN, // NV12 with MFC alignment constraints HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M, // NV12M with MFC alignment constraints on multi-buffer HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_PRIV, // NV12M with MFC alignment constraints on multi-buffer HAL_PIXEL_FORMAT_YCbCr_422_SP, // YUV422 2P (YUV422 semi-planar) HAL_PIXEL_FORMAT_YCBCR_P010, HAL_PIXEL_FORMAT_GOOGLE_NV12_SP_10B, + MALI_GRALLOC_FORMAT_INTERNAL_YUV420_10BIT_I, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_P010_M, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_SBWC, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_SBWC, diff --git a/libacryl/acrylic_formats.cpp b/libacryl/acrylic_formats.cpp index 38850c2..9654de0 100644 --- a/libacryl/acrylic_formats.cpp +++ b/libacryl/acrylic_formats.cpp @@ -16,12 +16,10 @@ */ #include <linux/videodev2.h> - #include <log/log.h> +#include <mali_gralloc_formats.h> #include <system/graphics.h> - #include <exynos_format.h> // hardware/smasung_slsi/exynos/include - #include "acrylic_internal.h" #define V4L2_PIX_FMT_NV12N v4l2_fourcc('N', 'N', '1', '2') @@ -167,12 +165,14 @@ static struct { {HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN, 1, 0x22, {12, 0, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2}, {HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_TILED, 1, 0x22, {12, 0, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2}, {HAL_PIXEL_FORMAT_GOOGLE_NV12_SP, 1, 0x22, {12, 0, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2}, + {MALI_GRALLOC_FORMAT_INTERNAL_YUV420_8BIT_I, 1, 0x22, {12, 0, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2}, {HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M, 2, 0x22, { 8, 4, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2}, {HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_PRIV, 2, 0x22, { 8, 4, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2}, {HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_TILED, 2, 0x22, { 8, 4, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP, 2}, {HAL_PIXEL_FORMAT_YCBCR_P010, 1, 0x22, {24, 0, 0, 0}, HAL_PIXEL_FORMAT_YCBCR_P010, 2}, {HAL_PIXEL_FORMAT_EXYNOS_YCbCr_P010_M, 2, 0x22, {16, 8, 0, 0}, HAL_PIXEL_FORMAT_YCBCR_P010, 2}, {HAL_PIXEL_FORMAT_GOOGLE_NV12_SP_10B, 1, 0x22, {24, 0, 0, 0}, HAL_PIXEL_FORMAT_YCBCR_P010, 2}, + {MALI_GRALLOC_FORMAT_INTERNAL_YUV420_10BIT_I, 1, 0x22, {15, 0, 0, 0}, HAL_PIXEL_FORMAT_YCBCR_P010, 2}, {HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_SBWC, 2, 0x22, { 8, 4, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_SBWC, 2}, {HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_SBWC, 1, 0x22, {12, 0, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_SBWC, 2}, {HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_10B_SBWC, 2, 0x22, {16, 8, 0, 0}, HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_10B_SBWC, 2}, diff --git a/libacryl/acrylic_g2d.cpp b/libacryl/acrylic_g2d.cpp index b8b8dfc..f3f4567 100644 --- a/libacryl/acrylic_g2d.cpp +++ b/libacryl/acrylic_g2d.cpp @@ -23,6 +23,7 @@ #include <exynos_format.h> // hardware/smasung_slsi/exynos/include #include <hardware/hwcomposer2.h> #include <log/log.h> +#include <mali_gralloc_formats.h> #include <sys/ioctl.h> #include <system/graphics.h> #include <utils/Trace.h> @@ -502,8 +503,10 @@ static g2d_fmt __halfmt_to_g2dfmt[] = { {HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M, G2D_FMT_NV12, 2, 0}, {HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN, G2D_FMT_NV12, 1, 0}, {HAL_PIXEL_FORMAT_GOOGLE_NV12_SP, G2D_FMT_NV12, 1, 0}, + {MALI_GRALLOC_FORMAT_INTERNAL_YUV420_8BIT_I, G2D_FMT_NV12, 1, 0}, {HAL_PIXEL_FORMAT_YCBCR_P010, G2D_FMT_NV12_P010, 1, 0}, {HAL_PIXEL_FORMAT_GOOGLE_NV12_SP_10B, G2D_FMT_NV12_P010, 1, 0}, + {MALI_GRALLOC_FORMAT_INTERNAL_YUV420_10BIT_I, G2D_FMT_NV12_P010, 1, 0}, {HAL_PIXEL_FORMAT_EXYNOS_YCbCr_P010_M, G2D_FMT_NV12_P010, 2, 0}, {HAL_PIXEL_FORMAT_YCbCr_422_I, G2D_FMT_YUYV, 1, 0}, {HAL_PIXEL_FORMAT_EXYNOS_YCrCb_422_I, G2D_FMT_YVYU, 1, 0}, |