Merge "hwc2: Featurize dataspace support"
diff --git a/sdm/libs/core/drm/hw_device_drm.cpp b/sdm/libs/core/drm/hw_device_drm.cpp
index f1e83bf..bd5861e 100644
--- a/sdm/libs/core/drm/hw_device_drm.cpp
+++ b/sdm/libs/core/drm/hw_device_drm.cpp
@@ -321,8 +321,6 @@
InitializeConfigs();
drm_atomic_intf_->Perform(DRMOps::CRTC_SET_MODE, token_.crtc_id, ¤t_mode_);
- drm_atomic_intf_->Perform(DRMOps::CRTC_SET_OUTPUT_FENCE_OFFSET, token_.crtc_id, 1);
-
// TODO(user): Enable this and remove the one in SetupAtomic() onces underruns are fixed
// drm_atomic_intf_->Perform(DRMOps::CRTC_SET_ACTIVE, token_.crtc_id, 1);
// Commit to setup pipeline with mode, which then tells us the topology etc
diff --git a/sdm/libs/hwc/hwc_display.cpp b/sdm/libs/hwc/hwc_display.cpp
index 770ced6..6cba7f0 100644
--- a/sdm/libs/hwc/hwc_display.cpp
+++ b/sdm/libs/hwc/hwc_display.cpp
@@ -492,7 +492,8 @@
int ubwc_enabled = 0;
int flags = 0;
HWCDebugHandler::Get()->GetProperty("debug.gralloc.enable_fb_ubwc", &ubwc_enabled);
- if (ubwc_enabled == 1) {
+ bool linear = layer_stack_.output_buffer && !IsUBWCFormat(layer_stack_.output_buffer->format);
+ if ((ubwc_enabled == 1) && !linear) {
usage |= GRALLOC_USAGE_PRIVATE_ALLOC_UBWC;
flags |= private_handle_t::PRIV_FLAGS_UBWC_ALIGNED;
}
diff --git a/sdm/libs/hwc2/hwc_display.cpp b/sdm/libs/hwc2/hwc_display.cpp
index 6f98238..a899c0e 100644
--- a/sdm/libs/hwc2/hwc_display.cpp
+++ b/sdm/libs/hwc2/hwc_display.cpp
@@ -1761,14 +1761,16 @@
for (auto layer : layer_set_) {
auto sdm_layer = layer->GetSDMLayer();
auto transform = sdm_layer->transform;
- os << "layer: " << layer->GetId();
+ os << "layer: " << std::setw(4) << layer->GetId();
os << " z: " << layer->GetZ();
os << " compositon: " <<
to_string(layer->GetClientRequestedCompositionType()).c_str();
os << "/" <<
to_string(layer->GetDeviceSelectedCompositionType()).c_str();
os << " alpha: " << std::to_string(sdm_layer->plane_alpha).c_str();
- os << " format: " << GetFormatString(sdm_layer->input_buffer.format);
+ os << " format: " << std::setw(22) << GetFormatString(sdm_layer->input_buffer.format);
+ os << " dataspace:" << std::hex << "0x" << std::setw(8) << std::setfill('0')
+ << layer->GetLayerDataspace() << std::dec << std::setfill(' ');
os << " transform: " << transform.rotation << "/" << transform.flip_horizontal <<
"/"<< transform.flip_vertical;
os << " buffer_id: " << std::hex << "0x" << sdm_layer->input_buffer.buffer_id << std::dec
diff --git a/sdm/libs/hwc2/hwc_layers.cpp b/sdm/libs/hwc2/hwc_layers.cpp
index 312b0f5..da8a1d8 100644
--- a/sdm/libs/hwc2/hwc_layers.cpp
+++ b/sdm/libs/hwc2/hwc_layers.cpp
@@ -613,6 +613,12 @@
case HAL_DATASPACE_TRANSFER_HLG:
sdm_transfer = Transfer_HLG;
break;
+ case HAL_DATASPACE_TRANSFER_LINEAR:
+ sdm_transfer = Transfer_Linear;
+ break;
+ case HAL_DATASPACE_TRANSFER_GAMMA2_2:
+ sdm_transfer = Transfer_Gamma2_2;
+ break;
default:
return false;
}
@@ -634,7 +640,7 @@
case HAL_DATASPACE_STANDARD_DCI_P3:
sdm_primaries = ColorPrimaries_DCIP3;
break;
- case HAL_DATASPACE_BT2020:
+ case HAL_DATASPACE_STANDARD_BT2020:
sdm_primaries = ColorPrimaries_BT2020;
break;
default: