色彩管理支持
说明
一个应用软件在格式A中有一些内容,并对compositor说它是格式B. 混凝土以 C 格式存储,并告诉视频驱动程序它是在 D. Monitor 中显示为 E ,它让用户知道 F 正在发生什么? 为了减少这种挫折感并获得一些更好的视觉效果,在前往显示设备的路上需要有一个色彩管理系统来进行适当的内容处理.
- 作曲家需要决定哪种格式更适合当前客户和产出:
- 简单:单一显示器 - 使用最大支持的格式
- 高级:考虑到所有客户,如果足以减少资源消耗,则使用较少的格式
- Tricky:多监视器设置 - 需要一些通用格式 Caveat:监视器对其能力撒谎,客户对其内容撒谎
一些相关信息在用于监测能力的“输出->分解EDID”和用于客户端的“表面->彩色管理->图像Description ()”中(如果缺失,则假设 sRGB)
作曲家应将所有客户端的缓冲器转换为所选格式并准备一个缓冲器用于显示 需要一些阴影。 直接的缓冲操纵可能比较容易,但效率很高。 如果可能,应避免采取这一步骤。
作曲家应转换已准备好的缓冲和(或)设置一些drm属性,以匹配输出能力
- https://drmdb.emersion.fr/properties/3435973836/DEGAMMA LUT “输出->状态->设置DeGammaLut”
- https://drmdb.emersion.fr/properties/3435973836/CTM 互联网档案馆的存檔,存档日期2013-12-02. `输出->状态->设置CTM'
- https://drmdb.emersion.fr/properties/3435973836/GAMMA LUT `输出->状态->设置Gammalut'
- https://drmdb.emersion.fr/properties/3233857728/HDR UTPUT METADATA`output->state-> set HDRMetata ' Caveat:并非所有属性都可能由给定的视频驱动程序支持,有些属性可能接受不同驱动程序的不同值,在"自然"彩色管道顺序中列出的属性,但不能保证如此.
全屏应用的HDR10是最容易做到的,因为它可以直接到第3步,几乎没有修改到没有修改. 可能还需要一些 drm 属性调整 。 目前的执行工作只使用了“HDR UTPUT MEDATA”。 在纸张上,颜色管理应相对简单而直截了当。 在现实中,某些比特应当被忽略,以有利于某些理智的默认. 可能需要双向转换,以在两者之间进行转变。 这些位数和默认值可能取决于hw设置.
关于颜色和人类发展报告的许多文件https://GitLab.freedesktop.org/pq/color-and-hdr
https://GitHub.com/hyprwm/Hyprland/issues/4377的某种重复
https://GitHub.com/hyprwm/Hyprland/pull/9506 (英语). https://GitHub.com/hyprwm/Hyprland/pull/9600 (英语). 开始
- 转换初选
- 处理亮点
- 将相关原生特征标为支持
- 添加更改输出图像描述的方法
- 添加全屏通过设置
- 用 HDR 修正桌面效果
- 用于装饰的CM
- 边界问题 . . . . . . .
内容来源: hyprwm/Hyprland