sdm: Add support for solid fill mixer stage
- Define drm interface for setting solid fill stage info on crtc.
- Define sdm private structure for solid fill layers in hw layer config.
- Add DAL translation of setting up solidfill stages for atomic commit.
- Multiply alpha component of color with plane alpha.
Change-Id: I60ac64beee31986f83fcfe025a7ece02aa0198b1
CRs-fixed: 2026472
diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h
index 8fddb43..35285ee 100644
--- a/libdrmutils/drm_interface.h
+++ b/libdrmutils/drm_interface.h
@@ -230,6 +230,12 @@
*/
CRTC_SET_SECURITY_LEVEL,
/*
+ * Op: sets solid fill stages
+ * Arg: uint32_t - CRTC ID
+ * Vector of DRMSolidfillStage
+ */
+ CRTC_SET_SOLIDFILL_STAGES,
+ /*
* Op: Returns retire fence for this commit. Should be called after Commit() on
* DRMAtomicReqInterface.
* Arg: uint32_t - Connector ID
@@ -321,6 +327,7 @@
struct DRMCrtcInfo {
bool has_src_split;
uint32_t max_blend_stages;
+ uint32_t max_solidfill_stages;
QSEEDVersion qseed_version;
SmartDMARevision smart_dma_rev;
float ib_fudge_factor;
@@ -471,6 +478,14 @@
SECURE_ONLY,
};
+struct DRMSolidfillStage {
+ DRMRect bounding_rect {};
+ bool is_exclusion_rect = false;
+ uint32_t color = 0xff000000; // in 8bit argb
+ uint32_t z_order = 0;
+ uint32_t plane_alpha = 0xff;
+};
+
/* DRM Atomic Request Property Set.
*
* Helper class to create and populate atomic properties of DRM components