我正在尝试将显示深度设置为 10bpc (30bpp)。我应该提到我的显卡和显示器能够做到这一点,因为它是在 MS Windows 上运行的。
将以下行添加到我的 /etc/X11/xorg.conf.d 目录下的文件后:
Section "Screen"
Identifier "Screen0"
DefaultDepth 30
SubSection "Display"
Depth 30
EndSubSection
EndSection
我的 xorg.0.log 中有一些更改...但不足以进行更改(大概是由于该8 bit DAC
行)(我包含了警告,也许有帮助)
[ 356.589] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[ 356.616] (II) AMDGPU(0): [KMS] Kernel modesetting enabled.
[ 356.616] (WW) Falling back to old probe method for modesetting
[ 356.616] (**) AMDGPU(0): Depth 30, (--) framebuffer bpp 32
[ 356.616] (II) AMDGPU(0): Pixel depth = 30 bits stored in 4 bytes (32 bpp pixmaps)
[ 356.616] (==) AMDGPU(0): Default visual is TrueColor
[ 356.616] (==) AMDGPU(0): RGB weight 101010
[ 356.616] (II) AMDGPU(0): Using 10 bits per RGB (8 bit DAC)
[ 356.616] (--) AMDGPU(0): Chipset: "AMD Radeon VII" (ChipID = 0x66af)
如果没有配置文件,xorg 日志中的这些行看起来像:
[ 482.778] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[ 482.808] (II) AMDGPU(0): [KMS] Kernel modesetting enabled.
[ 482.809] (WW) Falling back to old probe method for modesetting
[ 482.809] (II) AMDGPU(0): Creating default Display subsection in Screen section
"Default Screen Section" for depth/fbbpp 24/32
[ 482.809] (==) AMDGPU(0): Depth 24, (--) framebuffer bpp 32
[ 482.809] (II) AMDGPU(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
[ 482.809] (==) AMDGPU(0): Default visual is TrueColor
[ 482.809] (==) AMDGPU(0): RGB weight 888
[ 482.809] (II) AMDGPU(0): Using 8 bits per RGB (8 bit DAC)
[ 482.809] (--) AMDGPU(0): Chipset: "AMD Radeon VII" (ChipID = 0x66af)
因此,我在配置中包含的内容似乎很有用,但不足以切换到 30bpp/10bpc。
我的问题是还需要设置什么,或者是什么配置错误导致我仍然只有 8 位图像发送到我的显示器,尽管 mesa 每通道使用 10 位?
答案1
我相信您的配置实际上是正确的,但 8 位 DAC 实际上是您的卡或显示器的限制。
从维基百科:
对于电视或视频投影仪来说,真实地声称线性对比度(最暗和最亮输出级别之间的差异)为 1000:1 或更高(相当于 10 位音频精度)并不罕见,尽管它可能只接受信号具有 8 位精度,并使用每个通道仅表示 6 或 7 位的 LCD 面板。
实际上,您在显卡上使用了 30 位颜色,并获得了同等的对比度差异,但卡或显示器实际上并不能显示所有这些 2^30 颜色,Xorg 只是告诉您喜欢它是。