Color 管線與 Dataspace:色域、Transfer 與渲染一致性

Android 在 HWC2 中規範了 DataspaceColorMode。每個 Layer 可以聲明 Dataspace(包含色域與傳輸曲線,例如 SRGB, DISPLAY_P3, BT2020, HLG, PQ),顯示設備具有支持的 ColorMode 列表。SF與 HWC 協同選擇最合適的模式並儘量避免多次色彩轉換。

挑戰:

  • 混合不同色域與傳輸的 Layer(例如 sRGB UI + P3 圖片 + HDR 視頻)時,是否統一到顯示的工作色域。
  • HWC 能否在硬件執行 CSC(Color Space Conversion),以及在哪一層執行(plane vs overall)。
  • Gamma 與白點一致性,避免出現偏色或亮度異常。

建議:

  • 對 UI 資源儘量統一 sRGB;廣色域內容(P3)明確標註 Dataspace,避免錯誤假設。
  • HDR 內容確保元數據正確(MaxCLL/MaxFALL、Mastering Display 等),並選擇合適的 EOTF(PQ/HLG)。
  • 在 HWC 不支持複雜 CSC 時,考慮 GPU 端進行預合成,降低色彩不一致風險。

調試:

  • 使用 dumpsys SF--color 查看顯示模式與 Dataspace 協商結果。
  • 通過測試圖樣驗證色域覆蓋與灰階響應,確保 HWC 色彩管線正確。
  • 注意系統與應用層的 force sRGB 或 wide color gamut 開關對管線的影響。