sdm: Add HDR10+ support for DisplayPort displays
Add HDR10+ i.e., dynamic metadata support for DisplayPort displays.
- Query DRM Connector property.
- Convert dynamic metadata to VSIF packets for DP displays.
Change-Id: I816a7099d61bb8f93fa9b692fdec2a047b3c6110
CRs-fixed: 2450703
diff --git a/sdm/include/private/hw_info_types.h b/sdm/include/private/hw_info_types.h
index 666ebec..16b250d 100644
--- a/sdm/include/private/hw_info_types.h
+++ b/sdm/include/private/hw_info_types.h
@@ -30,11 +30,12 @@
#include <core/core_interface.h>
#include <utils/locker.h>
#include <utils/debug.h>
-#include <vector>
-#include <map>
-#include <string>
#include <bitset>
+#include <map>
#include <memory>
+#include <set>
+#include <string>
+#include <vector>
namespace sdm {
using std::string;
@@ -358,6 +359,7 @@
uint32_t left_roi_count = 1; // Number if ROI supported on left panel
uint32_t right_roi_count = 1; // Number if ROI supported on right panel
bool hdr_enabled = false; // HDR feature supported
+ bool hdr_plus_enabled = false; // HDR10+ feature supported
bool hdr_metadata_type_one = false; // Static HDR metadata type one
uint32_t hdr_eotf = 0; // Electro optical transfer function
float peak_luminance = 0.0f; // Panel's peak luminance level
@@ -614,6 +616,10 @@
int32_t layer_index = -1;
HDROperation operation = kNoOp;
+ bool in_hdr_mode = false; // True if already in HDR mode with static metadata.
+ bool blend_space_layer_changed = false; // True if HDR layer's index changed.
+ std::set<uint32_t> hdr_layers; // Non-tonemapped HDR layer indices.
+ std::vector<uint8_t> dyn_hdr_vsif_payload; // Dynamic HDR VSIF data.
};
struct LayerExt {