diff --git a/display_server/drivers/hal/drm_backend/display_gralloc/gbm_allocator.cpp b/display_server/drivers/hal/drm_backend/display_gralloc/gbm_allocator.cpp index f5310b788a3b462eb4da06b208d710aa89d2cbff..0bd1779b6886e7efd2e45c910e9eead3157c5bef 100644 --- a/display_server/drivers/hal/drm_backend/display_gralloc/gbm_allocator.cpp +++ b/display_server/drivers/hal/drm_backend/display_gralloc/gbm_allocator.cpp @@ -76,11 +76,6 @@ int32_t GbmAllocator::AllocMem(const AllocInfo &info, BufferHandle **bufferPtr) return DISPLAY_PARAM_ERR; } - // TODO: support multi format. - // /* Get format info */ - // LOG_DEBUG << "[Gralloc::GbmAllocator::AllocMem] Get format info"; - // uint32_t gbmFmt = GbmFormat::ConvertPixelFormatToGbmFormat(info.format); - /* Decide flag depending on buffer usage */ uint32_t gbmFlag = 0; if (info.usage & HBM_USE_MEM_FB) { @@ -291,14 +286,17 @@ bool GbmAllocator::DestroyGbmBo(int32_t handle) int32_t GbmAllocator::AllocMemWithUsage(const AllocInfo &info, BufferHandle **bufferPtr, uint32_t usage) { + /* Get format info */ + LOG_DEBUG("[Gralloc::GbmAllocator::AllocMem] Get format info"); + uint32_t gbmFmt = GbmFormat::ConvertPixelFormatToGbmFormat(info.format); + /* CORE: gbm bo */ - // TODO: create with modifiers LOG_DEBUG("[Gralloc::GbmAllocator::AllocMemWithUsage] create GBM buffer object."); struct gbm_bo *gbmBo = gbm_bo_create( gbmContext_, info.width, info.height, - GBM_FORMAT_XRGB8888, // Q: Why Must be GBM_FORMAT_XRGB8888? + gbmFmt, usage); if (gbmBo == nullptr) { LOG_ERROR("[Gralloc::GbmAllocator::AllocMemWithUsage] Failed to create GBM buffer object."); diff --git a/display_server/drivers/hal/drm_backend/display_gralloc/hi_gbm_format.cpp b/display_server/drivers/hal/drm_backend/display_gralloc/hi_gbm_format.cpp index dbc2f287f2a1d765e791645585fdfda6814e43be..6139138753c0aa73f6955829382e122fb91b526c 100644 --- a/display_server/drivers/hal/drm_backend/display_gralloc/hi_gbm_format.cpp +++ b/display_server/drivers/hal/drm_backend/display_gralloc/hi_gbm_format.cpp @@ -57,12 +57,9 @@ const char *GetDrmFmtStr(uint32_t format) uint32_t ConvertPixelFormatToGbmFormat(PixelFormat fmtIn) { static const PixelFormatConvertTbl convertTable[] = { - {GBM_FORMAT_RGBX8888, PIXEL_FMT_RGBX_8888}, {GBM_FORMAT_RGBA8888, PIXEL_FMT_RGBA_8888}, - {GBM_FORMAT_RGB888, PIXEL_FMT_RGB_888}, {GBM_FORMAT_BGR565, PIXEL_FMT_BGR_565}, - {GBM_FORMAT_BGRX4444, PIXEL_FMT_BGRX_4444}, {GBM_FORMAT_BGRA4444, PIXEL_FMT_BGRA_4444}, - {GBM_FORMAT_RGBA4444, PIXEL_FMT_RGBA_4444}, {GBM_FORMAT_RGBX4444, PIXEL_FMT_RGBX_4444}, - {GBM_FORMAT_BGRX5551, PIXEL_FMT_BGRX_5551}, {GBM_FORMAT_BGRA5551, PIXEL_FMT_BGRA_5551}, - {GBM_FORMAT_BGRX8888, PIXEL_FMT_BGRX_8888}, {GBM_FORMAT_BGRA8888, PIXEL_FMT_BGRA_8888}, + {GBM_FORMAT_XBGR8888, PIXEL_FMT_RGBX_8888}, {GBM_FORMAT_ABGR8888, PIXEL_FMT_RGBA_8888}, + {GBM_FORMAT_BGR565, PIXEL_FMT_BGR_565}, + {GBM_FORMAT_XRGB8888, PIXEL_FMT_BGRX_8888}, {GBM_FORMAT_ARGB8888, PIXEL_FMT_BGRA_8888}, {GBM_FORMAT_NV12, PIXEL_FMT_YCBCR_420_SP}, {GBM_FORMAT_NV21, PIXEL_FMT_YCRCB_420_SP}, {GBM_FORMAT_YUV420, PIXEL_FMT_YCBCR_420_P}, {GBM_FORMAT_YVU420, PIXEL_FMT_YCRCB_420_P}, {GBM_FORMAT_NV16, PIXEL_FMT_YCBCR_422_SP}, {GBM_FORMAT_NV61, PIXEL_FMT_YCRCB_422_SP},