hwc2: Clean up duplicate GetSDMFormat()
Change-Id: I1cac64c53199a3838c0bf37c843b6aa5f30bd0de
CRs-Fixed: 2221571
diff --git a/sdm/libs/hwc2/hwc_display.cpp b/sdm/libs/hwc2/hwc_display.cpp
index 91e47ef..45a5c3d 100644
--- a/sdm/libs/hwc2/hwc_display.cpp
+++ b/sdm/libs/hwc2/hwc_display.cpp
@@ -809,7 +809,7 @@
GetRange(dataspace, &(color_metadata.range));
}
- LayerBufferFormat sdm_format = GetSDMFormat(format, 0);
+ LayerBufferFormat sdm_format = HWCLayer::GetSDMFormat(format, 0);
if (display_intf_->GetClientTargetSupport(width, height, sdm_format,
color_metadata) != kErrorNone) {
return HWC2::Error::Unsupported;
@@ -1397,146 +1397,6 @@
return error;
}
-LayerBufferFormat HWCDisplay::GetSDMFormat(const int32_t &source, const int flags) {
- LayerBufferFormat format = kFormatInvalid;
- if (flags & private_handle_t::PRIV_FLAGS_UBWC_ALIGNED) {
- switch (source) {
- case HAL_PIXEL_FORMAT_RGBA_8888:
- format = kFormatRGBA8888Ubwc;
- break;
- case HAL_PIXEL_FORMAT_RGBX_8888:
- format = kFormatRGBX8888Ubwc;
- break;
- case HAL_PIXEL_FORMAT_BGR_565:
- format = kFormatBGR565Ubwc;
- break;
- case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS:
- case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS_UBWC:
- case HAL_PIXEL_FORMAT_NV12_ENCODEABLE:
- format = kFormatYCbCr420SPVenusUbwc;
- break;
- case HAL_PIXEL_FORMAT_RGBA_1010102:
- format = kFormatRGBA1010102Ubwc;
- break;
- case HAL_PIXEL_FORMAT_RGBX_1010102:
- format = kFormatRGBX1010102Ubwc;
- break;
- case HAL_PIXEL_FORMAT_YCbCr_420_TP10_UBWC:
- format = kFormatYCbCr420TP10Ubwc;
- break;
- case HAL_PIXEL_FORMAT_YCbCr_420_P010_UBWC:
- format = kFormatYCbCr420P010Ubwc;
- break;
- default:
- DLOGE("Unsupported format type for UBWC %d", source);
- return kFormatInvalid;
- }
- return format;
- }
-
- switch (source) {
- case HAL_PIXEL_FORMAT_RGBA_8888:
- format = kFormatRGBA8888;
- break;
- case HAL_PIXEL_FORMAT_RGBA_5551:
- format = kFormatRGBA5551;
- break;
- case HAL_PIXEL_FORMAT_RGBA_4444:
- format = kFormatRGBA4444;
- break;
- case HAL_PIXEL_FORMAT_BGRA_8888:
- format = kFormatBGRA8888;
- break;
- case HAL_PIXEL_FORMAT_RGBX_8888:
- format = kFormatRGBX8888;
- break;
- case HAL_PIXEL_FORMAT_BGRX_8888:
- format = kFormatBGRX8888;
- break;
- case HAL_PIXEL_FORMAT_RGB_888:
- format = kFormatRGB888;
- break;
- case HAL_PIXEL_FORMAT_RGB_565:
- format = kFormatRGB565;
- break;
- case HAL_PIXEL_FORMAT_BGR_565:
- format = kFormatBGR565;
- break;
- case HAL_PIXEL_FORMAT_BGR_888:
- format = kFormatBGR888;
- break;
- case HAL_PIXEL_FORMAT_NV12_ENCODEABLE:
- case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS:
- format = kFormatYCbCr420SemiPlanarVenus;
- break;
- case HAL_PIXEL_FORMAT_YCrCb_420_SP_VENUS:
- format = kFormatYCrCb420SemiPlanarVenus;
- break;
- case HAL_PIXEL_FORMAT_YCbCr_420_SP_VENUS_UBWC:
- format = kFormatYCbCr420SPVenusUbwc;
- break;
- case HAL_PIXEL_FORMAT_YV12:
- format = kFormatYCrCb420PlanarStride16;
- break;
- case HAL_PIXEL_FORMAT_YCrCb_420_SP:
- format = kFormatYCrCb420SemiPlanar;
- break;
- case HAL_PIXEL_FORMAT_YCbCr_420_SP:
- format = kFormatYCbCr420SemiPlanar;
- break;
- case HAL_PIXEL_FORMAT_YCbCr_422_SP:
- format = kFormatYCbCr422H2V1SemiPlanar;
- break;
- case HAL_PIXEL_FORMAT_YCbCr_422_I:
- format = kFormatYCbCr422H2V1Packed;
- break;
- case HAL_PIXEL_FORMAT_CbYCrY_422_I:
- format = kFormatCbYCrY422H2V1Packed;
- break;
- case HAL_PIXEL_FORMAT_RGBA_1010102:
- format = kFormatRGBA1010102;
- break;
- case HAL_PIXEL_FORMAT_ARGB_2101010:
- format = kFormatARGB2101010;
- break;
- case HAL_PIXEL_FORMAT_RGBX_1010102:
- format = kFormatRGBX1010102;
- break;
- case HAL_PIXEL_FORMAT_XRGB_2101010:
- format = kFormatXRGB2101010;
- break;
- case HAL_PIXEL_FORMAT_BGRA_1010102:
- format = kFormatBGRA1010102;
- break;
- case HAL_PIXEL_FORMAT_ABGR_2101010:
- format = kFormatABGR2101010;
- break;
- case HAL_PIXEL_FORMAT_BGRX_1010102:
- format = kFormatBGRX1010102;
- break;
- case HAL_PIXEL_FORMAT_XBGR_2101010:
- format = kFormatXBGR2101010;
- break;
- case HAL_PIXEL_FORMAT_YCbCr_420_P010:
- format = kFormatYCbCr420P010;
- break;
- case HAL_PIXEL_FORMAT_YCbCr_420_TP10_UBWC:
- format = kFormatYCbCr420TP10Ubwc;
- break;
- case HAL_PIXEL_FORMAT_YCbCr_420_P010_UBWC:
- format = kFormatYCbCr420P010Ubwc;
- break;
- case HAL_PIXEL_FORMAT_YCbCr_420_P010_VENUS:
- format = kFormatYCbCr420P010Venus;
- break;
- default:
- DLOGW("Unsupported format type = %d", source);
- return kFormatInvalid;
- }
-
- return format;
-}
-
void HWCDisplay::DumpInputBuffers() {
char dir_path[PATH_MAX];
@@ -1721,7 +1581,7 @@
// TODO(user): How does the dirty region get set on the client target? File bug on Google
client_target_layer->composition = kCompositionGPUTarget;
- client_target_layer->input_buffer.format = GetSDMFormat(format, flags);
+ client_target_layer->input_buffer.format = HWCLayer::GetSDMFormat(format, flags);
client_target_layer->input_buffer.width = UINT32(aligned_width);
client_target_layer->input_buffer.height = UINT32(aligned_height);
client_target_layer->input_buffer.unaligned_width = x_pixels;
diff --git a/sdm/libs/hwc2/hwc_display.h b/sdm/libs/hwc2/hwc_display.h
index 212de7f..9a4b228 100644
--- a/sdm/libs/hwc2/hwc_display.h
+++ b/sdm/libs/hwc2/hwc_display.h
@@ -253,7 +253,6 @@
virtual DisplayError DisablePartialUpdateOneFrame() {
return kErrorNotSupported;
}
- LayerBufferFormat GetSDMFormat(const int32_t &source, const int flags);
const char *GetDisplayString();
void MarkLayersForGPUBypass(void);
void MarkLayersForClientComposition(void);
diff --git a/sdm/libs/hwc2/hwc_display_virtual.cpp b/sdm/libs/hwc2/hwc_display_virtual.cpp
index 11193bb..df8d3a6 100644
--- a/sdm/libs/hwc2/hwc_display_virtual.cpp
+++ b/sdm/libs/hwc2/hwc_display_virtual.cpp
@@ -171,7 +171,7 @@
buffer_info.buffer_config.width = static_cast<uint32_t>(output_handle->width);
buffer_info.buffer_config.height = static_cast<uint32_t>(output_handle->height);
buffer_info.buffer_config.format =
- GetSDMFormat(output_handle->format, output_handle->flags);
+ HWCLayer::GetSDMFormat(output_handle->format, output_handle->flags);
buffer_info.alloc_buffer_info.size = static_cast<uint32_t>(output_handle->size);
DumpOutputBuffer(buffer_info, reinterpret_cast<void *>(output_handle->base),
layer_stack_.retire_fence_fd);
@@ -229,7 +229,8 @@
output_handle_format = HAL_PIXEL_FORMAT_RGBX_8888;
}
- LayerBufferFormat new_sdm_format = GetSDMFormat(output_handle_format, output_handle->flags);
+ LayerBufferFormat new_sdm_format =
+ HWCLayer::GetSDMFormat(output_handle_format, output_handle->flags);
if (new_sdm_format == kFormatInvalid) {
return HWC2::Error::BadParameter;
}
diff --git a/sdm/libs/hwc2/hwc_layers.h b/sdm/libs/hwc2/hwc_layers.h
index a7d7f01..2a4d4b4 100644
--- a/sdm/libs/hwc2/hwc_layers.h
+++ b/sdm/libs/hwc2/hwc_layers.h
@@ -98,6 +98,7 @@
bool IsSingleBuffered() { return single_buffer_; }
bool IsScalingPresent();
bool IsRotationPresent();
+ static LayerBufferFormat GetSDMFormat(const int32_t &source, const int flags);
private:
Layer *layer_ = nullptr;
@@ -123,7 +124,6 @@
void SetRect(const hwc_rect_t &source, LayerRect *target);
void SetRect(const hwc_frect_t &source, LayerRect *target);
uint32_t GetUint32Color(const hwc_color_t &source);
- LayerBufferFormat GetSDMFormat(const int32_t &source, const int flags);
LayerBufferS3DFormat GetS3DFormat(uint32_t s3d_format);
void GetUBWCStatsFromMetaData(UBWCStats *cr_stats, UbwcCrStatsVector *cr_vec);
DisplayError SetMetaData(const private_handle_t *pvt_handle, Layer *layer);