10bit XOrgConfCreator Error - Ubuntu LTS, Eizo, R9 Fury

Hi,

I have an Eizo Coloredge CG247X monitor and an AMD R9 Fury GPU which I was lead to believe should work with 10bit color but XOrgConfCreator under Ubuntu is giving me an error about 10bit not being allowed by the OS. I’m running Ubuntu 18.04.4 LTS with kernel 5.3.0-46-generic, xorg-server-hwe-18.04 (with AMDGPU DRM 3.33.0, LLVM 9.0.0), octave 4.4.2, and psychtoolbox-3 3.0.14. I have configured /etc/X11/xorg.conf.d/20-amdgpu.conf as follows:

Section "Screen"
  Identifier "Screen0"
  Device "Device0"
  Monitor "Monitor0"
  DefaultDepth 30
EndSection

Then I exited X and (as root) ran PsychLinuxConfiguration which added a file to /etc/modprode.d to set amdgpu deep_color=1. I rebooted and verified via systool -vm amdgpu that this is in fact being set. Next I started X back up, started Octave, and ran XOrgConfCreator, but it gives me the following error:

Detecting type of graphics card (GPU) and driver to use...
PTB-INFO: Display ':0' : X-Screen 0 : Assigning primary output as 1 with RandR-CRTC 0 and GPU-CRTC 0.
PTB-INFO: Trying to enable at least 10 bpc fixed point framebuffer.
PTB-INFO: Native 10 bit per color framebuffer requested, but the OS doesn't allow it. It only provides 8 bpc.
PTB-INFO: Will now try to use our own high bit depth setup code as an alternative approach to fullfill your needs.

PTB-ERROR: Your script requested a 30 bpp, 10 bpc framebuffer, but i can't provide this for you, because
PTB-ERROR: your display is not set to 24 bit 'DefaultDepth' color depth, but to 30 bit color depth in xorg.conf.

Sorry, something went wrong. Aborting. The error message was:
Screen: See error message printed above.
error: called from
    XOrgConfCreator at line 48 column 7

I then went and checked /var/log/Xorg.0.log and noticed the following lines about setting the GPU color:

[  3867.856] (II) AMDGPU(0): Creating default Display subsection in Screen section
	"Screen0" for depth/fbbpp 30/32
[  3867.856] (**) AMDGPU(0): Depth 30, (--) framebuffer bpp 32
[  3867.857] (II) AMDGPU(0): Pixel depth = 30 bits stored in 4 bytes (32 bpp pixmaps)
[  3867.857] (==) AMDGPU(0): Default visual is TrueColor
[  3867.857] (==) AMDGPU(0): RGB weight 101010
[  3867.857] (II) AMDGPU(0): Using 10 bits per RGB (8 bit DAC)
[  3867.857] (--) AMDGPU(0): Chipset: "AMD Radeon (TM) R9 Fury Series" (ChipID = 0x7300)

… and the Display EDID:

[  3867.956] (II) AMDGPU(0): EDID for output DisplayPort-1
[  3867.956] (II) AMDGPU(0): Manufacturer: ENC  Model: 2801  Serial#: 32992109
[  3867.956] (II) AMDGPU(0): Year: 2019  Week: 40
[  3867.956] (II) AMDGPU(0): EDID Version: 1.4
[  3867.956] (II) AMDGPU(0): Digital Display Input
[  3867.956] (II) AMDGPU(0): 10 bits per channel
[  3867.956] (II) AMDGPU(0): Digital interface is DisplayPort
[  3867.956] (II) AMDGPU(0): Max Image Size [cm]: horiz.: 52  vert.: 33
[  3867.956] (II) AMDGPU(0): Gamma: 2.20
[  3867.956] (II) AMDGPU(0): DPMS capabilities: StandBy Suspend Off
[  3867.956] (II) AMDGPU(0): Supported color encodings: RGB 4:4:4

It looks like it’s claiming that my Fury has an 8-bit DAC or something? I swapped in a Windows 10 drive and verified that Windows claims, via “Display Properties”, that with the same hardware (GPU, Monitor, Displayport Cable) it’s running 10bit color, but I’m not a Windows guy so I didn’t try to set up Psychtoolbox there or anything. I also tried another machine with a Radeon HD 6950 connected via the same DP cable to the same monitor and got the same errors (though that machine was using the RADEON driver rather than AMDGPU).

Does anybody know what’s going on and what I can do to fix this error?

Thanks,

  • DC

Here’s the full Xorg.0.log up until the Xinput section, in case it helps:

[  3867.826] 
X.Org X Server 1.20.5
X Protocol Version 11, Revision 0
[  3867.826] Build Operating System: Linux 4.4.0-170-generic x86_64 Ubuntu
[  3867.826] Current Operating System: Linux compomachine 5.3.0-46-generic #38~18.04.1-Ubuntu SMP Tue Mar 31 04:17:56 UTC 2020 x86_64
[  3867.826] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.3.0-46-generic root=UUID=13bb0b1a-114e-48aa-8ae7-938f6600e560 ro quiet splash vt.handoff=1
[  3867.826] Build Date: 18 December 2019  08:15:29AM
[  3867.826] xorg-server-hwe-18.04 2:1.20.5+git20191008-0ubuntu1~18.04.1 (For technical support please see http://www.ubuntu.com/support) 
[  3867.826] Current version of pixman: 0.34.0
[  3867.826] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[  3867.826] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  3867.826] (==) Log file: "/var/log/Xorg.0.log", Time: Mon Apr 20 14:34:38 2020
[  3867.827] (==) Using config directory: "/etc/X11/xorg.conf.d"
[  3867.827] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[  3867.827] (==) No Layout section.  Using the first Screen section.
[  3867.827] (**) |-->Screen "Screen0" (0)
[  3867.827] (**) |   |-->Monitor "<default monitor>"
[  3867.827] (==) No monitor specified for screen "Screen0".
	Using a default monitor configuration.
[  3867.827] (==) Automatically adding devices
[  3867.827] (==) Automatically enabling devices
[  3867.827] (==) Automatically adding GPU devices
[  3867.827] (==) Automatically binding GPU devices
[  3867.827] (==) Max clients allowed: 256, resource mask: 0x1fffff
[  3867.827] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[  3867.827] 	Entry deleted from font path.
[  3867.827] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[  3867.827] 	Entry deleted from font path.
[  3867.827] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[  3867.827] 	Entry deleted from font path.
[  3867.827] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[  3867.827] 	Entry deleted from font path.
[  3867.827] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[  3867.827] 	Entry deleted from font path.
[  3867.827] (==) FontPath set to:
	/usr/share/fonts/X11/misc,
	/usr/share/fonts/X11/Type1,
	built-ins
[  3867.827] (==) ModulePath set to "/usr/lib/xorg/modules"
[  3867.827] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[  3867.828] (II) Loader magic: 0x55e482be1020
[  3867.828] (II) Module ABI versions:
[  3867.828] 	X.Org ANSI C Emulation: 0.4
[  3867.828] 	X.Org Video Driver: 24.0
[  3867.828] 	X.Org XInput driver : 24.1
[  3867.828] 	X.Org Server Extension : 10.0
[  3867.829] (++) using VT number 7

[  3867.829] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[  3867.830] (II) xfree86: Adding drm device (/dev/dri/card0)
[  3867.842] (--) PCI:*(1@0:0:0) 1002:7300:174b:e331 rev 203, Mem @ 0xe0000000/268435456, 0xf0000000/2097152, 0xf7e00000/262144, I/O @ 0x0000e000/256, BIOS @ 0x????????/131072
[  3867.842] (II) LoadModule: "glx"
[  3867.843] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[  3867.844] (II) Module glx: vendor="X.Org Foundation"
[  3867.844] 	compiled for 1.20.5, module version = 1.0.0
[  3867.844] 	ABI class: X.Org Server Extension, version 10.0
[  3867.844] (II) Applying OutputClass "AMDgpu" to /dev/dri/card0
[  3867.844] 	loading driver: amdgpu
[  3867.844] (==) Matched amdgpu as autoconfigured driver 0
[  3867.844] (==) Matched ati as autoconfigured driver 1
[  3867.844] (==) Matched modesetting as autoconfigured driver 2
[  3867.844] (==) Matched fbdev as autoconfigured driver 3
[  3867.844] (==) Matched vesa as autoconfigured driver 4
[  3867.844] (==) Assigned the driver to the xf86ConfigLayout
[  3867.844] (II) LoadModule: "amdgpu"
[  3867.844] (II) Loading /usr/lib/xorg/modules/drivers/amdgpu_drv.so
[  3867.845] (II) Module amdgpu: vendor="X.Org Foundation"
[  3867.845] 	compiled for 1.20.5, module version = 19.0.1
[  3867.845] 	Module class: X.Org Video Driver
[  3867.845] 	ABI class: X.Org Video Driver, version 24.0
[  3867.845] (II) LoadModule: "ati"
[  3867.845] (II) Loading /usr/lib/xorg/modules/drivers/ati_drv.so
[  3867.845] (II) Module ati: vendor="X.Org Foundation"
[  3867.845] 	compiled for 1.20.5, module version = 19.0.1
[  3867.845] 	Module class: X.Org Video Driver
[  3867.845] 	ABI class: X.Org Video Driver, version 24.0
[  3867.855] (II) LoadModule: "modesetting"
[  3867.855] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[  3867.855] (II) Module modesetting: vendor="X.Org Foundation"
[  3867.855] 	compiled for 1.20.5, module version = 1.20.5
[  3867.855] 	Module class: X.Org Video Driver
[  3867.855] 	ABI class: X.Org Video Driver, version 24.0
[  3867.855] (II) LoadModule: "fbdev"
[  3867.855] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[  3867.855] (II) Module fbdev: vendor="X.Org Foundation"
[  3867.856] 	compiled for 1.20.1, module version = 0.5.0
[  3867.856] 	Module class: X.Org Video Driver
[  3867.856] 	ABI class: X.Org Video Driver, version 24.0
[  3867.856] (II) LoadModule: "vesa"
[  3867.856] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so
[  3867.856] (II) Module vesa: vendor="X.Org Foundation"
[  3867.856] 	compiled for 1.20.1, module version = 2.4.0
[  3867.856] 	Module class: X.Org Video Driver
[  3867.856] 	ABI class: X.Org Video Driver, version 24.0
[  3867.856] (II) AMDGPU: Driver for AMD Radeon:
	All GPUs supported by the amdgpu kernel driver
[  3867.856] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[  3867.856] (II) FBDEV: driver for framebuffer: fbdev
[  3867.856] (II) VESA: driver for VESA chipsets: vesa
[  3867.856] (II) AMDGPU(0): [KMS] Kernel modesetting enabled.
[  3867.856] (WW) Falling back to old probe method for modesetting
[  3867.856] (WW) Falling back to old probe method for fbdev
[  3867.856] (II) Loading sub module "fbdevhw"
[  3867.856] (II) LoadModule: "fbdevhw"
[  3867.856] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[  3867.856] (II) Module fbdevhw: vendor="X.Org Foundation"
[  3867.856] 	compiled for 1.20.5, module version = 0.0.2
[  3867.856] 	ABI class: X.Org Video Driver, version 24.0
[  3867.856] (II) AMDGPU(0): Creating default Display subsection in Screen section
	"Screen0" for depth/fbbpp 30/32
[  3867.856] (**) AMDGPU(0): Depth 30, (--) framebuffer bpp 32
[  3867.857] (II) AMDGPU(0): Pixel depth = 30 bits stored in 4 bytes (32 bpp pixmaps)
[  3867.857] (==) AMDGPU(0): Default visual is TrueColor
[  3867.857] (==) AMDGPU(0): RGB weight 101010
[  3867.857] (II) AMDGPU(0): Using 10 bits per RGB (8 bit DAC)
[  3867.857] (--) AMDGPU(0): Chipset: "AMD Radeon (TM) R9 Fury Series" (ChipID = 0x7300)
[  3867.857] (II) Loading sub module "fb"
[  3867.857] (II) LoadModule: "fb"
[  3867.857] (II) Loading /usr/lib/xorg/modules/libfb.so
[  3867.857] (II) Module fb: vendor="X.Org Foundation"
[  3867.857] 	compiled for 1.20.5, module version = 1.0.0
[  3867.857] 	ABI class: X.Org ANSI C Emulation, version 0.4
[  3867.857] (II) Loading sub module "dri2"
[  3867.857] (II) LoadModule: "dri2"
[  3867.857] (II) Module "dri2" already built-in
[  3867.918] (II) Loading sub module "glamoregl"
[  3867.918] (II) LoadModule: "glamoregl"
[  3867.918] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
[  3867.921] (II) Module glamoregl: vendor="X.Org Foundation"
[  3867.921] 	compiled for 1.20.5, module version = 1.0.1
[  3867.921] 	ABI class: X.Org ANSI C Emulation, version 0.4
[  3867.940] (II) AMDGPU(0): glamor X acceleration enabled on AMD Radeon (TM) R9 Fury Series (FIJI, DRM 3.33.0, 5.3.0-46-generic, LLVM 9.0.0)
[  3867.940] (II) AMDGPU(0): glamor detected, initialising EGL layer.
[  3867.940] (==) AMDGPU(0): TearFree property default: auto
[  3867.940] (==) AMDGPU(0): VariableRefresh: disabled
[  3867.940] (II) AMDGPU(0): KMS Pageflipping: enabled
[  3867.940] (II) AMDGPU(0): Output DisplayPort-0 has no monitor section
[  3867.940] (II) AMDGPU(0): Output DisplayPort-1 has no monitor section
[  3867.940] (II) AMDGPU(0): Output DisplayPort-2 has no monitor section
[  3867.940] (II) AMDGPU(0): Output HDMI-A-0 has no monitor section
[  3867.940] (II) AMDGPU(0): Output DVI-D-0 has no monitor section
[  3867.956] (II) AMDGPU(0): EDID for output DisplayPort-0
[  3867.956] (II) AMDGPU(0): EDID for output DisplayPort-1
[  3867.956] (II) AMDGPU(0): Manufacturer: ENC  Model: 2801  Serial#: 32992109
[  3867.956] (II) AMDGPU(0): Year: 2019  Week: 40
[  3867.956] (II) AMDGPU(0): EDID Version: 1.4
[  3867.956] (II) AMDGPU(0): Digital Display Input
[  3867.956] (II) AMDGPU(0): 10 bits per channel
[  3867.956] (II) AMDGPU(0): Digital interface is DisplayPort
[  3867.956] (II) AMDGPU(0): Max Image Size [cm]: horiz.: 52  vert.: 33
[  3867.956] (II) AMDGPU(0): Gamma: 2.20
[  3867.956] (II) AMDGPU(0): DPMS capabilities: StandBy Suspend Off
[  3867.956] (II) AMDGPU(0): Supported color encodings: RGB 4:4:4 
[  3867.956] (II) AMDGPU(0): First detailed timing is preferred mode
[  3867.956] (II) AMDGPU(0): Preferred mode is native pixel format and refresh rate
[  3867.956] (II) AMDGPU(0): redX: 0.686 redY: 0.312   greenX: 0.218 greenY: 0.721
[  3867.956] (II) AMDGPU(0): blueX: 0.148 blueY: 0.048   whiteX: 0.313 whiteY: 0.329
[  3867.956] (II) AMDGPU(0): Supported established timings:
[  3867.956] (II) AMDGPU(0): 720x400@70Hz
[  3867.956] (II) AMDGPU(0): 640x480@60Hz
[  3867.956] (II) AMDGPU(0): 800x600@60Hz
[  3867.956] (II) AMDGPU(0): 1024x768@60Hz
[  3867.956] (II) AMDGPU(0): Manufacturer's mask: 0
[  3867.956] (II) AMDGPU(0): Supported standard timings:
[  3867.956] (II) AMDGPU(0): #0: hsize: 1600  vsize 1200  refresh: 60  vid: 16553
[  3867.956] (II) AMDGPU(0): #1: hsize: 1280  vsize 1024  refresh: 60  vid: 32897
[  3867.956] (II) AMDGPU(0): #2: hsize: 1280  vsize 960  refresh: 60  vid: 16513
[  3867.956] (II) AMDGPU(0): #3: hsize: 1680  vsize 1050  refresh: 60  vid: 179
[  3867.956] (II) AMDGPU(0): Supported detailed timing:
[  3867.956] (II) AMDGPU(0): clock: 154.0 MHz   Image Size:  519 x 324 mm
[  3867.956] (II) AMDGPU(0): h_active: 1920  h_sync: 1968  h_sync_end 2000 h_blank_end 2080 h_border: 0
[  3867.956] (II) AMDGPU(0): v_active: 1200  v_sync: 1203  v_sync_end 1209 v_blanking: 1235 v_border: 0
[  3867.956] (II) AMDGPU(0): Supported detailed timing:
[  3867.956] (II) AMDGPU(0): clock: 138.5 MHz   Image Size:  519 x 324 mm
[  3867.956] (II) AMDGPU(0): h_active: 1920  h_sync: 1968  h_sync_end 2000 h_blank_end 2080 h_border: 0
[  3867.956] (II) AMDGPU(0): v_active: 1080  v_sync: 1083  v_sync_end 1088 v_blanking: 1111 v_border: 0
[  3867.956] (II) AMDGPU(0): Ranges: V min: 23 V max: 63 Hz, H min: 26 H max: 78 kHz, PixClock max 175 MHz
[  3867.956] (II) AMDGPU(0): Monitor name: CG247X
[  3867.956] (II) AMDGPU(0): EDID (in hex):
[  3867.956] (II) AMDGPU(0): 	00ffffffffffff0015c301286d6bf701
[  3867.957] (II) AMDGPU(0): 	281d0104b5342178e28e15af5037b826
[  3867.957] (II) AMDGPU(0): 	0c5054a10800a94081808140b3000101
[  3867.957] (II) AMDGPU(0): 	010101010101283c80a070b023403020
[  3867.957] (II) AMDGPU(0): 	360007442100001a1a3680a070381f40
[  3867.957] (II) AMDGPU(0): 	3020350007442100001a000000fd0017
[  3867.957] (II) AMDGPU(0): 	3f1a4e11000a202020202020000000fc
[  3867.957] (II) AMDGPU(0): 	004347323437580a20202020202000a1
[  3867.957] (II) AMDGPU(0): Printing probed modes for output DisplayPort-1
[  3867.957] (II) AMDGPU(0): Modeline "1920x1200"x60.0  154.00  1920 1968 2000 2080  1200 1203 1209 1235 +hsync -vsync (74.0 kHz eP)
[  3867.957] (II) AMDGPU(0): Modeline "1920x1080"x59.9  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync (66.6 kHz e)
[  3867.957] (II) AMDGPU(0): Modeline "1600x1200"x60.0  162.00  1600 1664 1856 2160  1200 1201 1204 1250 +hsync +vsync (75.0 kHz e)
[  3867.957] (II) AMDGPU(0): Modeline "1680x1050"x60.0  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync (65.3 kHz e)
[  3867.957] (II) AMDGPU(0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[  3867.957] (II) AMDGPU(0): Modeline "1440x900"x60.0  154.00  1440 1968 2000 2080  900 1203 1209 1235 +hsync -vsync (74.0 kHz e)
[  3867.957] (II) AMDGPU(0): Modeline "1280x960"x60.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
[  3867.957] (II) AMDGPU(0): Modeline "1280x800"x60.0  154.00  1280 1968 2000 2080  800 1203 1209 1235 +hsync -vsync (74.0 kHz e)
[  3867.957] (II) AMDGPU(0): Modeline "1280x720"x60.0  154.00  1280 1968 2000 2080  720 1203 1209 1235 +hsync -vsync (74.0 kHz e)
[  3867.957] (II) AMDGPU(0): Modeline "1024x768"x60.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[  3867.957] (II) AMDGPU(0): Modeline "800x600"x60.3   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[  3867.957] (II) AMDGPU(0): Modeline "640x480"x59.9   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[  3867.957] (II) AMDGPU(0): Modeline "720x400"x70.1   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[  3867.957] (II) AMDGPU(0): EDID for output DisplayPort-2
[  3867.957] (II) AMDGPU(0): EDID for output HDMI-A-0
[  3867.957] (II) AMDGPU(0): EDID for output DVI-D-0
[  3867.957] (II) AMDGPU(0): Output DisplayPort-0 disconnected
[  3867.957] (II) AMDGPU(0): Output DisplayPort-1 connected
[  3867.957] (II) AMDGPU(0): Output DisplayPort-2 disconnected
[  3867.957] (II) AMDGPU(0): Output HDMI-A-0 disconnected
[  3867.957] (II) AMDGPU(0): Output DVI-D-0 disconnected
[  3867.957] (II) AMDGPU(0): Using exact sizes for initial modes
[  3867.957] (II) AMDGPU(0): Output DisplayPort-1 using initial mode 1920x1200 +0+0
[  3867.957] (II) AMDGPU(0): mem size init: gart size :ffd44000 vram size: s:ff0a2000 visible:f0a1000
[  3867.957] (==) AMDGPU(0): DPI set to (96, 96)
[  3867.957] (==) AMDGPU(0): Using gamma correction (1.0, 1.0, 1.0)
[  3867.957] (II) Loading sub module "ramdac"
[  3867.957] (II) LoadModule: "ramdac"
[  3867.957] (II) Module "ramdac" already built-in
[  3867.957] (II) UnloadModule: "modesetting"
[  3867.957] (II) Unloading modesetting
[  3867.957] (II) UnloadModule: "fbdev"
[  3867.957] (II) Unloading fbdev
[  3867.957] (II) UnloadSubModule: "fbdevhw"
[  3867.957] (II) Unloading fbdevhw
[  3867.957] (II) UnloadModule: "vesa"
[  3867.958] (II) Unloading vesa
[  3867.958] (II) AMDGPU(0): [DRI2] Setup complete
[  3867.958] (II) AMDGPU(0): [DRI2]   DRI driver: radeonsi
[  3867.958] (II) AMDGPU(0): [DRI2]   VDPAU driver: radeonsi
[  3867.958] (II) AMDGPU(0): Front buffer pitch: 8192 bytes
[  3867.958] (II) AMDGPU(0): SYNC extension fences enabled
[  3867.958] (II) AMDGPU(0): Present extension enabled
[  3867.958] (==) AMDGPU(0): DRI3 enabled
[  3867.958] (==) AMDGPU(0): Backing store enabled
[  3867.958] (II) AMDGPU(0): Direct rendering enabled
[  3867.961] (II) AMDGPU(0): Use GLAMOR acceleration.
[  3867.961] (II) AMDGPU(0): Acceleration enabled
[  3867.961] (==) AMDGPU(0): DPMS enabled
[  3867.961] (==) AMDGPU(0): Silken mouse enabled
[  3867.961] (II) AMDGPU(0): Set up textured video (glamor)
[  3867.973] (II) Initializing extension Generic Event Extension
[  3867.973] (II) Initializing extension SHAPE
[  3867.973] (II) Initializing extension MIT-SHM
[  3867.973] (II) Initializing extension XInputExtension
[  3867.973] (II) Initializing extension XTEST
[  3867.973] (II) Initializing extension BIG-REQUESTS
[  3867.973] (II) Initializing extension SYNC
[  3867.973] (II) Initializing extension XKEYBOARD
[  3867.973] (II) Initializing extension XC-MISC
[  3867.973] (II) Initializing extension SECURITY
[  3867.973] (II) Initializing extension XFIXES
[  3867.973] (II) Initializing extension RENDER
[  3867.974] (II) Initializing extension RANDR
[  3867.974] (II) Initializing extension COMPOSITE
[  3867.974] (II) Initializing extension DAMAGE
[  3867.974] (II) Initializing extension MIT-SCREEN-SAVER
[  3867.974] (II) Initializing extension DOUBLE-BUFFER
[  3867.974] (II) Initializing extension RECORD
[  3867.974] (II) Initializing extension DPMS
[  3867.974] (II) Initializing extension Present
[  3867.974] (II) Initializing extension DRI3
[  3867.974] (II) Initializing extension X-Resource
[  3867.974] (II) Initializing extension XVideo
[  3867.974] (II) Initializing extension XVideo-MotionCompensation
[  3867.974] (II) Initializing extension SELinux
[  3867.974] (II) SELinux: Disabled on system
[  3867.974] (II) Initializing extension GLX
[  3867.991] (II) AIGLX: Loaded and initialized radeonsi
[  3867.991] (II) GLX: Initialized DRI2 GL provider for screen 0
[  3867.991] (II) Initializing extension XFree86-VidModeExtension
[  3867.991] (II) Initializing extension XFree86-DGA
[  3867.991] (II) Initializing extension XFree86-DRI
[  3867.992] (II) Initializing extension DRI2
[  3867.992] (II) AMDGPU(0): Setting screen physical size to 508 x 317

Without being a Linux expert, i notice that you are using PTB version
psychtoolbox-3 3.0.14. That one is a few years old. Can you update to the latest and retry? Possibly the
XOrgConfCreator that comes with the latest works for your setup.

Upgrading to 3.0.16 via the NeuroDebian repo results in identical errors, unfortunately.

Run PsychLinuxConfiguration again. Sometime lately, the Mesa developers changed the 10 bit enable switch from on by default to off by default, so although the display runs at 10 bpc, the Mesa OpenGL library doesn’t expose the 10 bpc support. The latest PTB from NeuroDebian should install a suitable config file to toggle it on, once you run PsychLinuxconfiguration again.

Also, your Fury card will use the new AMD display core driver by default, which allows to control output color depth, but defaults to 8 bpc by default. Recent PTB should detect that and raise that limit.

That said, the error message literally told you why it doesn’t work. The point of XOrgConfCreator is to create the xorg.conf files for you, and you doing this yourself before running XOrgConfCreator interfered with its operation.

AMD cards on Linux are special “V.I.P.'s” in their deep color support of PTB btw.:

You can either use the XOrgConfCreator method to ask the OS to provide a 10 bpc framebuffer. This is the official/proper way of doing it, works without PTB tricks, and also for normal desktop applications other than PTB.

Or you don’t configure anything wrt. xorg.conf and PTB’s fallback code will trigger our own low-level gpu hacks to get > 8 bpc. This is what would have happened if you hadn’t messed with your own amdgpu.conf file. This mode only works for PTB in fullscreen mode on AMD gpu’s, probably with slightly reduced performance, but not only provides 10 bpc, but also ~11 bpc (11 bits red and green, 10 bits blue) for 32 bits of color. If you jump through some hoops explained in our PsychImaging help (‘EnableNative16BitFramebuffer’), use XFCE as desktop, and are ok with some lower graphics performance - there’s even a mode that gets full 12 bpc out for 36 bit of color precision aka 64 billion colors. On a 10 bit input only panel like your Eizo, more than 10 bit would be emulated via spatial dithering though, and i’m not sure if that would interfere with the Eizo’s built-in color calibration functions. It did work on the Retina panel of a 15" MacBookPro 2017 though, so the proof of possibility exists.

On Intel and NVidia only the official way via XOrgConfCreator is currently supported, maxing out at 10 bpc.

Thanks for the reply, Mario. I took your advice and started over by clearing out all of the config files and rerunning XOrgConfCreator. This did give me options for enabling 10bpc in X, which it did not complain about this time, and it wrote all of the relevant xorg config files so I think I’m set. The only head scratcher is that the Xorg.0.log output is basically the same, notably it still has the line “(II) AMDGPU(0): Using 10 bits per RGB (8 bit DAC)”. Is this expected, or does it mean that my desktop is still running in 8bpc (or dithered 10bpc)? Regardless, PTB appears to be happy now, so thanks!

That’s now with PTB 3.0.16, right?

That (8 bit DAC) is just some relic from the past. It’s always printed by the amd driver, regardless what bit depths, but the 10 bits per RGB is right.

Now this only refers to the framebuffer bit depth. What reaches the actual display output can be further restricted by driver settings, hardware limitations, or bandwidth limitations. E.g., depending on DisplayPort version of gpu and monitor, and the quality of the DP cable, it could be that at certain higher resolutions and refresh rates the capacity of the Displayport link is insufficient to transmit at 10 bpc precision. In such a case the driver would downgrade bit depth, resolution and/or refresh rate.

What you can do in terminal as “sudo su -” root user is check the following file:

cat /sys/kernel/debug/dri/0/DP-1/output_bpc

This would be for gpu 0 in the system – the only one your PC has – and DisplayPort output 1 (DP-1). Maybe you’ll need to check DP-2 or DP-3 … instead. This should tell you the “Current:” and “Maximum:” possible output bit depth.

xrandr --props will list a field ‘max bpc’ with the current driver set maximum. It is 8 bpc by default, but after PTB has opened a 10 bpc window, PTB will raise the limit to 16 bpc iow. no software restriction on bit depth.

What you should therefore see is “Current” and “Maximum” being 10.
As far as software methods to verify true bit depths go, that’s it. The gpu will apply spatial dithering if you request a bit depth higher than what the video output/display can take, to add extra bits of emulated precision, e.g., if you’d use PTB’s 11 or 16 bit framebuffer modes to get effective ~11 bpc or 12 bpc of precision on a 10 bpc display. As far as i know, current AMD gpu’s can output at most 12 bpc, so PTB’s 16 bpc framebuffer gets truncated down to 12 bpc. I think Intel and NVidia have the same hw limits atm.

In the end however, only photometer measurements will allow reliable verification, as there are many bits and pieces that can interfere with high color precision display modes, bad cabling being just one of them.