diff options
Diffstat (limited to 'libacryl/acrylic_factory.cpp')
-rw-r--r-- | libacryl/acrylic_factory.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/libacryl/acrylic_factory.cpp b/libacryl/acrylic_factory.cpp index c6030b4..a052122 100644 --- a/libacryl/acrylic_factory.cpp +++ b/libacryl/acrylic_factory.cpp @@ -70,6 +70,38 @@ static uint32_t all_fimg2d_hdr_formats[] = { HAL_PIXEL_FORMAT_EXYNOS_YCbCr_P010_M, }; +static uint32_t all_fimg2d_sbwc_lossy_formats[] = { + HAL_PIXEL_FORMAT_RGBA_8888, + HAL_PIXEL_FORMAT_BGRA_8888, + HAL_PIXEL_FORMAT_RGBA_1010102, + HAL_PIXEL_FORMAT_RGBX_8888, + HAL_PIXEL_FORMAT_RGB_888, + HAL_PIXEL_FORMAT_RGB_565, + HAL_PIXEL_FORMAT_YCrCb_420_SP, // NV21 (YVU420 semi-planar) + HAL_PIXEL_FORMAT_EXYNOS_YCrCb_420_SP_M, // NV21 on multi-buffer + 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_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_EXYNOS_YCbCr_420_SPN_S10B, // NV12 10-bit with MFC alignment constraints + HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_S10B, // NV12 10-bit multi-buffer + HAL_PIXEL_FORMAT_YCbCr_422_I, // YUYV + HAL_PIXEL_FORMAT_EXYNOS_YCrCb_422_I, // YVYU + HAL_PIXEL_FORMAT_YCbCr_422_SP, // YUV422 2P (YUV422 semi-planar) + HAL_PIXEL_FORMAT_YCBCR_P010, + HAL_PIXEL_FORMAT_EXYNOS_YCbCr_P010_M, + HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_SBWC, + HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_SBWC, + HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_10B_SBWC, + HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SPN_10B_SBWC, + HAL_PIXEL_FORMAT_EXYNOS_YCrCb_420_SP_M_SBWC, + HAL_PIXEL_FORMAT_EXYNOS_YCrCb_420_SP_M_10B_SBWC, + HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_SBWC_L50, // SBWC Lossy 64 block + HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_10B_SBWC_L40, // SBWC Lossy 64 block with 10 bit + HAL_PIXEL_FORMAT_EXYNOS_YCbCr_420_SP_M_10B_SBWC_L80, // SBWC Lossy 128 block with 10 bit +}; + static uint32_t all_fimg2d_sbwc_formats[] = { HAL_PIXEL_FORMAT_RGBA_8888, HAL_PIXEL_FORMAT_BGRA_8888, @@ -330,6 +362,30 @@ const static stHW2DCapability __capability_fimg2d_9830 = { .base_align = 1, }; +const static stHW2DCapability __capability_fimg2d_9630 = { + .max_upsampling_num = {32767, 32767}, + .max_downsampling_factor = {31767, 32767}, + .max_upsizing_num = {32767, 32767}, + .max_downsizing_factor = {32767, 32767}, + .min_src_dimension = {1, 1}, + .max_src_dimension = {8192, 8192}, + .min_dst_dimension = {1, 1}, + .max_dst_dimension = {8192, 8192}, + .min_pix_align = {1, 1}, + .rescaling_count = 0, + .compositing_mode = HW2DCapability::BLEND_NONE | HW2DCapability::BLEND_SRC_COPY | HW2DCapability::BLEND_SRC_OVER, + .transform_type = HW2DCapability::TRANSFORM_ALL, + .auxiliary_feature = HW2DCapability::FEATURE_PLANE_ALPHA | HW2DCapability::FEATURE_UORDER_WRITE + | HW2DCapability::FEATURE_AFBC_ENCODE | HW2DCapability::FEATURE_AFBC_DECODE + | HW2DCapability::FEATURE_OTF_WRITE | HW2DCapability::FEATURE_SOLIDCOLOR, + .num_formats = ARRSIZE(all_fimg2d_sbwc_lossy_formats), + .num_dataspaces = ARRSIZE(all_hwc_dataspaces), + .max_layers = 8, + .pixformats = all_fimg2d_sbwc_lossy_formats, + .dataspaces = all_hwc_dataspaces, + .base_align = 1, +}; + const static stHW2DCapability __capability_fimg2d_8890 = { .max_upsampling_num = {32767, 32767}, .max_downsampling_factor = {2, 2}, @@ -403,6 +459,7 @@ static const HW2DCapability capability_fimg2d_8890(__capability_fimg2d_8890); static const HW2DCapability capability_fimg2d_9610(__capability_fimg2d_9610); static const HW2DCapability capability_fimg2d_9810(__capability_fimg2d_9810); static const HW2DCapability capability_fimg2d_9830(__capability_fimg2d_9830); +static const HW2DCapability capability_fimg2d_9630(__capability_fimg2d_9630); static const HW2DCapability capability_fimg2d_9810_blter(__capability_fimg2d_9810_blter); static const HW2DCapability capability_mscl_9810(__capability_mscl_9810); static const HW2DCapability capability_mscl_9830(__capability_mscl_9830); @@ -427,6 +484,8 @@ Acrylic *Acrylic::createInstance(const char *spec) compositor = new AcrylicCompositorG2D9810(capability_fimg2d_9810, true); } else if (strcmp(spec, "fimg2d_9830") == 0) { compositor = new AcrylicCompositorG2D9810(capability_fimg2d_9830, true); + } else if (strcmp(spec, "fimg2d_9630") == 0) { + compositor = new AcrylicCompositorG2D9810(capability_fimg2d_9630, true); } else if (strcmp(spec, "mscl_9810") == 0) { compositor = new AcrylicCompositorMSCL9810(capability_mscl_9810); } else if (strcmp(spec, "mscl_9830") == 0) { |