Bug 111583 - 30 bit colors causing banding with default settings
Summary: 30 bit colors causing banding with default settings
Status: NEEDINFO
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: Other All
: not set not set
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL: http://soccer-stars.modapk.site/
Whiteboard:
Keywords: security
Depends on:
Blocks:
 
Reported: 2019-09-07 12:25 UTC by helios.solaris
Modified: 2019-09-09 14:18 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
banding (79.92 KB, image/jpeg)
2019-09-07 12:25 UTC, helios.solaris
no flags Details
Xorg log (29.63 KB, text/x-log)
2019-09-07 13:08 UTC, helios.solaris
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description helios.solaris 2019-09-07 12:25:50 UTC
Created attachment 145295 [details]
banding

When using a monitor that is capable of using 10 bit colors per channel, it is causing banding around the 128 value (see attachment, vertical step in the center).

Setting "DefaultDepth 30" in xorg.conf's screen section is reducing banding significantly.
Comment 1 Chris Wilson 2019-09-07 12:55:33 UTC
Xorg.log for completeness. It sounds like Mach bands from reduced precision gamma curves.
Comment 2 helios.solaris 2019-09-07 13:08:11 UTC
Created attachment 145296 [details]
Xorg log
Comment 3 helios.solaris 2019-09-07 13:08:42 UTC
(In reply to Chris Wilson from comment #1)
> Xorg.log for completeness. It sounds like Mach bands from reduced precision
> gamma curves.

I've added the Xorg.log for the default settings.
Comment 4 Chris Wilson 2019-09-07 13:14:22 UTC
-modesetting, so let's presume this is due to the gamma curve processing in the kernel. Probably worth filing a bug over at gitlab for the modesetting ddx as well, e.g. it is probably sensible to use the highest precision gamma tables regardless of frontbuffer depth.
Comment 5 helios.solaris 2019-09-07 13:21:36 UTC
It also happens with the intel driver. I can add a log if needed.

Sorry, I don't understand the technical details.
Comment 6 helios.solaris 2019-09-07 13:31:55 UTC
Note: With modesetting, the big step is at around 66%, while with the intel driver it is at around 50% (like in the screenshot).
Comment 7 helios.solaris 2019-09-07 16:02:40 UTC
Comment on attachment 145296 [details]
Xorg log

>[435399.997] 
>X.Org X Server 1.20.4
>X Protocol Version 11, Revision 0
>[435399.997] Build Operating System: Linux 4.9.0-8-amd64 x86_64 Debian
>[435399.997] Current Operating System: Linux xxxxx 5.2.0-2-amd64 #1 SMP Debian 5.2.9-2 (2019-08-21) x86_64
>[435399.997] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.2.0-2-amd64 root=UUID=98cdeaa0-c24f-4e3b-b757-651b8caeb8b8 ro acpi_enforce_resources=lax quiet
>[435399.997] Build Date: 05 March 2019  08:11:12PM
>[435399.997] xorg-server 2:1.20.4-1 (https://www.debian.org/support) 
>[435399.997] Current version of pixman: 0.36.0
>[435399.997] 	Before reporting problems, check http://wiki.x.org
>	to make sure that you have the latest version.
>[435399.997] Markers: (--) probed, (**) from config file, (==) default setting,
>	(++) from command line, (!!) notice, (II) informational,
>	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
>[435399.997] (==) Log file: "/var/log/Xorg.0.log", Time: Sat Sep  7 15:05:33 2019
>[435399.997] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
>[435399.997] (==) No Layout section.  Using the first Screen section.
>[435399.997] (==) No screen section available. Using defaults.
>[435399.997] (**) |-->Screen "Default Screen Section" (0)
>[435399.997] (**) |   |-->Monitor "<default monitor>"
>[435399.997] (==) No monitor specified for screen "Default Screen Section".
>	Using a default monitor configuration.
>[435399.997] (==) Automatically adding devices
>[435399.997] (==) Automatically enabling devices
>[435399.997] (==) Automatically adding GPU devices
>[435399.997] (==) Max clients allowed: 256, resource mask: 0x1fffff
>[435399.997] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
>[435399.997] 	Entry deleted from font path.
>[435399.997] (==) FontPath set to:
>	/usr/share/fonts/X11/misc,
>	/usr/share/fonts/X11/100dpi/:unscaled,
>	/usr/share/fonts/X11/75dpi/:unscaled,
>	/usr/share/fonts/X11/Type1,
>	/usr/share/fonts/X11/100dpi,
>	/usr/share/fonts/X11/75dpi,
>	built-ins
>[435399.997] (==) ModulePath set to "/usr/lib/xorg/modules"
>[435399.997] (II) The server relies on udev to provide the list of input devices.
>	If no devices become available, reconfigure udev or disable AutoAddDevices.
>[435399.997] (II) Loader magic: 0x55cf58026e20
>[435399.997] (II) Module ABI versions:
>[435399.997] 	X.Org ANSI C Emulation: 0.4
>[435399.997] 	X.Org Video Driver: 24.0
>[435399.997] 	X.Org XInput driver : 24.1
>[435399.997] 	X.Org Server Extension : 10.0
>[435399.998] (++) using VT number 7
>
>[435399.998] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
>[435399.999] (II) xfree86: Adding drm device (/dev/dri/card0)
>[435400.012] (--) PCI:*(0@0:2:0) 8086:0412:1043:8534 rev 6, Mem @ 0xf7800000/4194304, 0xe0000000/268435456, I/O @ 0x0000f000/64, BIOS @ 0x????????/131072
>[435400.012] (II) LoadModule: "glx"
>[435400.012] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
>[435400.012] (II) Module glx: vendor="X.Org Foundation"
>[435400.012] 	compiled for 1.20.4, module version = 1.0.0
>[435400.012] 	ABI class: X.Org Server Extension, version 10.0
>[435400.012] (==) Matched modesetting as autoconfigured driver 0
>[435400.012] (==) Matched fbdev as autoconfigured driver 1
>[435400.012] (==) Matched vesa as autoconfigured driver 2
>[435400.012] (==) Assigned the driver to the xf86ConfigLayout
>[435400.012] (II) LoadModule: "modesetting"
>[435400.013] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
>[435400.015] (II) Module modesetting: vendor="X.Org Foundation"
>[435400.015] 	compiled for 1.20.4, module version = 1.20.4
>[435400.015] 	Module class: X.Org Video Driver
>[435400.015] 	ABI class: X.Org Video Driver, version 24.0
>[435400.015] (II) LoadModule: "fbdev"
>[435400.015] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
>[435400.015] (II) Module fbdev: vendor="X.Org Foundation"
>[435400.015] 	compiled for 1.20.0, module version = 0.5.0
>[435400.015] 	Module class: X.Org Video Driver
>[435400.015] 	ABI class: X.Org Video Driver, version 24.0
>[435400.015] (II) LoadModule: "vesa"
>[435400.015] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so
>[435400.016] (II) Module vesa: vendor="X.Org Foundation"
>[435400.016] 	compiled for 1.20.4, module version = 2.4.0
>[435400.016] 	Module class: X.Org Video Driver
>[435400.016] 	ABI class: X.Org Video Driver, version 24.0
>[435400.016] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
>[435400.016] (II) FBDEV: driver for framebuffer: fbdev
>[435400.016] (II) VESA: driver for VESA chipsets: vesa
>[435400.027] (II) modeset(0): using drv /dev/dri/card0
>[435400.027] (WW) Falling back to old probe method for fbdev
>[435400.027] (II) Loading sub module "fbdevhw"
>[435400.027] (II) LoadModule: "fbdevhw"
>[435400.027] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
>[435400.028] (II) Module fbdevhw: vendor="X.Org Foundation"
>[435400.028] 	compiled for 1.20.4, module version = 0.0.2
>[435400.028] 	ABI class: X.Org Video Driver, version 24.0
>[435400.028] (II) modeset(0): Creating default Display subsection in Screen section
>	"Default Screen Section" for depth/fbbpp 24/32
>[435400.028] (==) modeset(0): Depth 24, (==) framebuffer bpp 32
>[435400.028] (==) modeset(0): RGB weight 888
>[435400.028] (==) modeset(0): Default visual is TrueColor
>[435400.028] (II) Loading sub module "glamoregl"
>[435400.028] (II) LoadModule: "glamoregl"
>[435400.028] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
>[435400.031] (II) Module glamoregl: vendor="X.Org Foundation"
>[435400.031] 	compiled for 1.20.4, module version = 1.0.1
>[435400.031] 	ABI class: X.Org ANSI C Emulation, version 0.4
>[435400.047] (II) modeset(0): glamor X acceleration enabled on Mesa DRI Intel(R) Haswell Desktop 
>[435400.047] (II) modeset(0): glamor initialized
>[435400.048] (II) modeset(0): Output VGA-1 has no monitor section
>[435400.072] (II) modeset(0): Output DP-1 has no monitor section
>[435400.074] (II) modeset(0): Output HDMI-1 has no monitor section
>[435400.075] (II) modeset(0): Output HDMI-2 has no monitor section
>[435400.077] (II) modeset(0): Output HDMI-3 has no monitor section
>[435400.078] (II) modeset(0): EDID for output VGA-1
>[435400.102] (II) modeset(0): EDID for output DP-1
>[435400.102] (II) modeset(0): Manufacturer: ENC  Model: 3112  Serial#: xxxxxxxx
>[435400.102] (II) modeset(0): Year: 2019  Week: 16
>[435400.102] (II) modeset(0): EDID Version: 1.4
>[435400.102] (II) modeset(0): Digital Display Input
>[435400.102] (II) modeset(0): 10 bits per channel
>[435400.102] (II) modeset(0): Digital interface is DisplayPort
>[435400.102] (II) modeset(0): Max Image Size [cm]: horiz.: 52  vert.: 33
>[435400.102] (II) modeset(0): Gamma: 2.20
>[435400.102] (II) modeset(0): DPMS capabilities: StandBy Suspend Off
>[435400.102] (II) modeset(0): Supported color encodings: RGB 4:4:4 
>[435400.102] (II) modeset(0): First detailed timing is preferred mode
>[435400.102] (II) modeset(0): Preferred mode is native pixel format and refresh rate
>[435400.102] (II) modeset(0): redX: 0.659 redY: 0.332   greenX: 0.305 greenY: 0.626
>[435400.102] (II) modeset(0): blueX: 0.148 blueY: 0.053   whiteX: 0.313 whiteY: 0.329
>[435400.102] (II) modeset(0): Supported established timings:
>[435400.102] (II) modeset(0): 720x400@70Hz
>[435400.102] (II) modeset(0): 640x480@60Hz
>[435400.102] (II) modeset(0): 800x600@60Hz
>[435400.102] (II) modeset(0): 1024x768@60Hz
>[435400.102] (II) modeset(0): Manufacturer's mask: 0
>[435400.102] (II) modeset(0): Supported standard timings:
>[435400.102] (II) modeset(0): #0: hsize: 1600  vsize 1200  refresh: 60  vid: 16553
>[435400.102] (II) modeset(0): #1: hsize: 1280  vsize 1024  refresh: 60  vid: 32897
>[435400.102] (II) modeset(0): #2: hsize: 1280  vsize 960  refresh: 60  vid: 16513
>[435400.102] (II) modeset(0): #3: hsize: 1680  vsize 1050  refresh: 60  vid: 179
>[435400.102] (II) modeset(0): Supported detailed timing:
>[435400.102] (II) modeset(0): clock: 154.0 MHz   Image Size:  519 x 324 mm
>[435400.102] (II) modeset(0): h_active: 1920  h_sync: 1968  h_sync_end 2000 h_blank_end 2080 h_border: 0
>[435400.102] (II) modeset(0): v_active: 1200  v_sync: 1203  v_sync_end 1209 v_blanking: 1235 v_border: 0
>[435400.102] (II) modeset(0): Supported detailed timing:
>[435400.102] (II) modeset(0): clock: 138.5 MHz   Image Size:  519 x 324 mm
>[435400.102] (II) modeset(0): h_active: 1920  h_sync: 1968  h_sync_end 2000 h_blank_end 2080 h_border: 0
>[435400.102] (II) modeset(0): v_active: 1080  v_sync: 1083  v_sync_end 1088 v_blanking: 1111 v_border: 0
>[435400.102] (II) modeset(0): Ranges: V min: 23 V max: 63 Hz, H min: 26 H max: 78 kHz, PixClock max 175 MHz
>[435400.102] (II) modeset(0): Monitor name: CS2410
>[435400.102] (II) modeset(0): EDID (in hex):
>[435400.102] (II) modeset(0): 	00ffffffffffff0015c3123100000001
>[435400.102] (II) modeset(0): 	101d0104b5342178e2c125a8554ea026
>[435400.102] (II) modeset(0): 	0d5054a10800a94081808140b3000101
>[435400.102] (II) modeset(0): 	010101010101283c80a070b023403020
>[435400.102] (II) modeset(0): 	360007442100001a1a3680a070381f40
>[435400.102] (II) modeset(0): 	3020350007442100001a000000fd0017
>[435400.102] (II) modeset(0): 	3f1a4e11000a202020202020000000fc
>[435400.102] (II) modeset(0): 	004353323431300a20202020202000b2
>[435400.102] (II) modeset(0): Printing probed modes for output DP-1
>[435400.102] (II) modeset(0): Modeline "1920x1200"x60.0  154.00  1920 1968 2000 2080  1200 1203 1209 1235 +hsync -vsync (74.0 kHz eP)
>[435400.102] (II) modeset(0): Modeline "1920x1080"x59.9  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync (66.6 kHz e)
>[435400.102] (II) modeset(0): Modeline "1600x1200"x60.0  162.00  1600 1664 1856 2160  1200 1201 1204 1250 +hsync +vsync (75.0 kHz e)
>[435400.102] (II) modeset(0): Modeline "1680x1050"x60.0  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync (65.3 kHz e)
>[435400.102] (II) modeset(0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
>[435400.102] (II) modeset(0): Modeline "1280x960"x60.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
>[435400.102] (II) modeset(0): Modeline "1024x768"x60.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
>[435400.102] (II) modeset(0): Modeline "800x600"x60.3   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
>[435400.102] (II) modeset(0): Modeline "640x480"x59.9   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
>[435400.102] (II) modeset(0): Modeline "720x400"x70.1   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
>[435400.104] (II) modeset(0): EDID for output HDMI-1
>[435400.105] (II) modeset(0): EDID for output HDMI-2
>[435400.107] (II) modeset(0): EDID for output HDMI-3
>[435400.107] (II) modeset(0): Output VGA-1 disconnected
>[435400.107] (II) modeset(0): Output DP-1 connected
>[435400.107] (II) modeset(0): Output HDMI-1 disconnected
>[435400.107] (II) modeset(0): Output HDMI-2 disconnected
>[435400.107] (II) modeset(0): Output HDMI-3 disconnected
>[435400.107] (II) modeset(0): Using exact sizes for initial modes
>[435400.107] (II) modeset(0): Output DP-1 using initial mode 1920x1200 +0+0
>[435400.107] (==) modeset(0): Using gamma correction (1.0, 1.0, 1.0)
>[435400.107] (==) modeset(0): DPI set to (96, 96)
>[435400.107] (II) Loading sub module "fb"
>[435400.107] (II) LoadModule: "fb"
>[435400.107] (II) Loading /usr/lib/xorg/modules/libfb.so
>[435400.107] (II) Module fb: vendor="X.Org Foundation"
>[435400.107] 	compiled for 1.20.4, module version = 1.0.0
>[435400.107] 	ABI class: X.Org ANSI C Emulation, version 0.4
>[435400.107] (II) UnloadModule: "fbdev"
>[435400.107] (II) Unloading fbdev
>[435400.108] (II) UnloadSubModule: "fbdevhw"
>[435400.108] (II) Unloading fbdevhw
>[435400.108] (II) UnloadModule: "vesa"
>[435400.108] (II) Unloading vesa
>[435400.170] (==) modeset(0): Backing store enabled
>[435400.170] (==) modeset(0): Silken mouse enabled
>[435400.227] (II) modeset(0): Initializing kms color map for depth 24, 8 bpc.
>[435400.227] (==) modeset(0): DPMS enabled
>[435400.228] (II) modeset(0): [DRI2] Setup complete
>[435400.228] (II) modeset(0): [DRI2]   DRI driver: i965
>[435400.228] (II) modeset(0): [DRI2]   VDPAU driver: i965
>[435400.228] (II) Initializing extension Generic Event Extension
>[435400.228] (II) Initializing extension SHAPE
>[435400.228] (II) Initializing extension MIT-SHM
>[435400.228] (II) Initializing extension XInputExtension
>[435400.228] (II) Initializing extension XTEST
>[435400.228] (II) Initializing extension BIG-REQUESTS
>[435400.228] (II) Initializing extension SYNC
>[435400.228] (II) Initializing extension XKEYBOARD
>[435400.228] (II) Initializing extension XC-MISC
>[435400.229] (II) Initializing extension SECURITY
>[435400.229] (II) Initializing extension XFIXES
>[435400.229] (II) Initializing extension RENDER
>[435400.229] (II) Initializing extension RANDR
>[435400.229] (II) Initializing extension COMPOSITE
>[435400.229] (II) Initializing extension DAMAGE
>[435400.229] (II) Initializing extension MIT-SCREEN-SAVER
>[435400.229] (II) Initializing extension DOUBLE-BUFFER
>[435400.229] (II) Initializing extension RECORD
>[435400.229] (II) Initializing extension DPMS
>[435400.229] (II) Initializing extension Present
>[435400.230] (II) Initializing extension DRI3
>[435400.230] (II) Initializing extension X-Resource
>[435400.230] (II) Initializing extension XVideo
>[435400.230] (II) Initializing extension XVideo-MotionCompensation
>[435400.230] (II) Initializing extension SELinux
>[435400.230] (II) SELinux: Disabled on system
>[435400.230] (II) Initializing extension GLX
>[435400.234] (II) AIGLX: Loaded and initialized i965
>[435400.234] (II) GLX: Initialized DRI2 GL provider for screen 0
>[435400.234] (II) Initializing extension XFree86-VidModeExtension
>[435400.234] (II) Initializing extension XFree86-DGA
>[435400.234] (II) Initializing extension XFree86-DRI
>[435400.234] (II) Initializing extension DRI2
>[435400.235] (II) modeset(0): Damage tracking initialized
>[435400.235] (II) modeset(0): Setting screen physical size to 508 x 317
>[435400.268] (II) config/udev: Adding input device Power Button (/dev/input/event1)
>[435400.268] (**) Power Button: Applying InputClass "evdev keyboard catchall"
>[435400.268] (**) Power Button: Applying InputClass "libinput keyboard catchall"
>[435400.268] (II) LoadModule: "libinput"
>[435400.268] (II) Loading /usr/lib/xorg/modules/input/libinput_drv.so
>[435400.271] (II) Module libinput: vendor="X.Org Foundation"
>[435400.271] 	compiled for 1.20.4, module version = 0.29.0
>[435400.271] 	Module class: X.Org XInput Driver
>[435400.271] 	ABI class: X.Org XInput driver, version 24.1
>[435400.271] (II) Using input driver 'libinput' for 'Power Button'
>[435400.271] (**) Power Button: always reports core events
>[435400.271] (**) Option "Device" "/dev/input/event1"
>[435400.271] (**) Option "_source" "server/udev"
>[435400.272] (II) event1  - Power Button: is tagged by udev as: Keyboard
>[435400.272] (II) event1  - Power Button: device is a keyboard
>[435400.272] (II) event1  - Power Button: device removed
>[435400.299] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1/event1"
>[435400.299] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 6)
>[435400.299] (**) Option "xkb_model" "pc105"
>[435400.299] (**) Option "xkb_layout" "ch"
>[435400.299] (**) Option "xkb_options" "terminate:ctrl_alt_bksp"
>[435400.316] (II) event1  - Power Button: is tagged by udev as: Keyboard
>[435400.316] (II) event1  - Power Button: device is a keyboard
>[435400.316] (II) config/udev: Adding input device Video Bus (/dev/input/event2)
>[435400.316] (**) Video Bus: Applying InputClass "evdev keyboard catchall"
>[435400.316] (**) Video Bus: Applying InputClass "libinput keyboard catchall"
>[435400.316] (II) Using input driver 'libinput' for 'Video Bus'
>[435400.316] (**) Video Bus: always reports core events
>[435400.316] (**) Option "Device" "/dev/input/event2"
>[435400.316] (**) Option "_source" "server/udev"
>[435400.317] (II) event2  - Video Bus: is tagged by udev as: Keyboard
>[435400.317] (II) event2  - Video Bus: device is a keyboard
>[435400.317] (II) event2  - Video Bus: device removed
>[435400.343] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input2/event2"
>[435400.343] (II) XINPUT: Adding extended input device "Video Bus" (type: KEYBOARD, id 7)
>[435400.343] (**) Option "xkb_model" "pc105"
>[435400.343] (**) Option "xkb_layout" "ch"
>[435400.343] (**) Option "xkb_options" "terminate:ctrl_alt_bksp"
>[435400.344] (II) event2  - Video Bus: is tagged by udev as: Keyboard
>[435400.344] (II) event2  - Video Bus: device is a keyboard
>[435400.344] (II) config/udev: Adding input device Power Button (/dev/input/event0)
>[435400.344] (**) Power Button: Applying InputClass "evdev keyboard catchall"
>[435400.344] (**) Power Button: Applying InputClass "libinput keyboard catchall"
>[435400.344] (II) Using input driver 'libinput' for 'Power Button'
>[435400.344] (**) Power Button: always reports core events
>[435400.344] (**) Option "Device" "/dev/input/event0"
>[435400.344] (**) Option "_source" "server/udev"
>[435400.345] (II) event0  - Power Button: is tagged by udev as: Keyboard
>[435400.345] (II) event0  - Power Button: device is a keyboard
>[435400.345] (II) event0  - Power Button: device removed
>[435400.363] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0/event0"
>[435400.363] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 8)
>[435400.363] (**) Option "xkb_model" "pc105"
>[435400.363] (**) Option "xkb_layout" "ch"
>[435400.363] (**) Option "xkb_options" "terminate:ctrl_alt_bksp"
>[435400.363] (II) event0  - Power Button: is tagged by udev as: Keyboard
>[435400.363] (II) event0  - Power Button: device is a keyboard
>[435400.364] (II) config/udev: Adding input device HID 046a:010d (/dev/input/event6)
>[435400.364] (**) HID 046a:010d: Applying InputClass "evdev keyboard catchall"
>[435400.364] (**) HID 046a:010d: Applying InputClass "libinput keyboard catchall"
>[435400.364] (II) Using input driver 'libinput' for 'HID 046a:010d'
>[435400.364] (**) HID 046a:010d: always reports core events
>[435400.364] (**) Option "Device" "/dev/input/event6"
>[435400.364] (**) Option "_source" "server/udev"
>[435400.365] (II) event6  - HID 046a:010d: is tagged by udev as: Keyboard
>[435400.365] (II) event6  - HID 046a:010d: device is a keyboard
>[435400.365] (II) event6  - HID 046a:010d: device removed
>[435400.383] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb2/2-14/2-14:1.0/0003:046A:010D.0007/input/input16/event6"
>[435400.383] (II) XINPUT: Adding extended input device "HID 046a:010d" (type: KEYBOARD, id 9)
>[435400.383] (**) Option "xkb_model" "pc105"
>[435400.383] (**) Option "xkb_layout" "ch"
>[435400.383] (**) Option "xkb_options" "terminate:ctrl_alt_bksp"
>[435400.384] (II) event6  - HID 046a:010d: is tagged by udev as: Keyboard
>[435400.384] (II) event6  - HID 046a:010d: device is a keyboard
>[435400.385] (II) config/udev: Adding input device HID 046a:010d (/dev/input/event10)
>[435400.385] (**) HID 046a:010d: Applying InputClass "evdev keyboard catchall"
>[435400.385] (**) HID 046a:010d: Applying InputClass "libinput keyboard catchall"
>[435400.385] (II) Using input driver 'libinput' for 'HID 046a:010d'
>[435400.385] (**) HID 046a:010d: always reports core events
>[435400.385] (**) Option "Device" "/dev/input/event10"
>[435400.385] (**) Option "_source" "server/udev"
>[435400.386] (II) event10 - HID 046a:010d: is tagged by udev as: Keyboard
>[435400.386] (II) event10 - HID 046a:010d: device is a keyboard
>[435400.386] (II) event10 - HID 046a:010d: device removed
>[435400.407] (II) libinput: HID 046a:010d: needs a virtual subdevice
>[435400.407] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb2/2-14/2-14:1.1/0003:046A:010D.0008/input/input17/event10"
>[435400.407] (II) XINPUT: Adding extended input device "HID 046a:010d" (type: MOUSE, id 10)
>[435400.407] (**) Option "AccelerationScheme" "none"
>[435400.407] (**) HID 046a:010d: (accel) selected scheme none/0
>[435400.407] (**) HID 046a:010d: (accel) acceleration factor: 2.000
>[435400.407] (**) HID 046a:010d: (accel) acceleration threshold: 4
>[435400.408] (II) event10 - HID 046a:010d: is tagged by udev as: Keyboard
>[435400.408] (II) event10 - HID 046a:010d: device is a keyboard
>[435400.409] (II) config/udev: Adding input device Logitech USB Laser Mouse (/dev/input/event5)
>[435400.409] (**) Logitech USB Laser Mouse: Applying InputClass "evdev pointer catchall"
>[435400.409] (**) Logitech USB Laser Mouse: Applying InputClass "libinput pointer catchall"
>[435400.409] (II) Using input driver 'libinput' for 'Logitech USB Laser Mouse'
>[435400.409] (**) Logitech USB Laser Mouse: always reports core events
>[435400.409] (**) Option "Device" "/dev/input/event5"
>[435400.409] (**) Option "_source" "server/udev"
>[435400.471] (II) event5  - Logitech USB Laser Mouse: is tagged by udev as: Mouse
>[435400.472] (II) event5  - Logitech USB Laser Mouse: device set to 1000 DPI
>[435400.472] (II) event5  - Logitech USB Laser Mouse: device is a pointer
>[435400.472] (II) event5  - Logitech USB Laser Mouse: device removed
>[435400.515] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/0003:046D:C069.0004/input/input13/event5"
>[435400.515] (II) XINPUT: Adding extended input device "Logitech USB Laser Mouse" (type: MOUSE, id 11)
>[435400.515] (**) Option "AccelerationScheme" "none"
>[435400.515] (**) Logitech USB Laser Mouse: (accel) selected scheme none/0
>[435400.515] (**) Logitech USB Laser Mouse: (accel) acceleration factor: 2.000
>[435400.515] (**) Logitech USB Laser Mouse: (accel) acceleration threshold: 4
>[435400.575] (II) event5  - Logitech USB Laser Mouse: is tagged by udev as: Mouse
>[435400.576] (II) event5  - Logitech USB Laser Mouse: device set to 1000 DPI
>[435400.576] (II) event5  - Logitech USB Laser Mouse: device is a pointer
>[435400.576] (II) config/udev: Adding input device Logitech USB Laser Mouse (/dev/input/mouse0)
>[435400.576] (II) No input driver specified, ignoring this device.
>[435400.576] (II) This device may have been added with another device file.
>[435400.576] (II) config/udev: Adding input device HDA Intel PCH Line Out (/dev/input/event11)
>[435400.576] (II) No input driver specified, ignoring this device.
>[435400.576] (II) This device may have been added with another device file.
>[435400.577] (II) config/udev: Adding input device HDA Intel PCH Front Headphone (/dev/input/event12)
>[435400.577] (II) No input driver specified, ignoring this device.
>[435400.577] (II) This device may have been added with another device file.
>[435400.577] (II) config/udev: Adding input device HDA Intel PCH Front Mic (/dev/input/event7)
>[435400.577] (II) No input driver specified, ignoring this device.
>[435400.577] (II) This device may have been added with another device file.
>[435400.577] (II) config/udev: Adding input device HDA Intel PCH Rear Mic (/dev/input/event8)
>[435400.577] (II) No input driver specified, ignoring this device.
>[435400.577] (II) This device may have been added with another device file.
>[435400.577] (II) config/udev: Adding input device HDA Intel PCH Line (/dev/input/event9)
>[435400.577] (II) No input driver specified, ignoring this device.
>[435400.577] (II) This device may have been added with another device file.
>[435400.578] (II) config/udev: Adding input device Eee PC WMI hotkeys (/dev/input/event4)
>[435400.578] (**) Eee PC WMI hotkeys: Applying InputClass "evdev keyboard catchall"
>[435400.578] (**) Eee PC WMI hotkeys: Applying InputClass "libinput keyboard catchall"
>[435400.578] (II) Using input driver 'libinput' for 'Eee PC WMI hotkeys'
>[435400.578] (**) Eee PC WMI hotkeys: always reports core events
>[435400.578] (**) Option "Device" "/dev/input/event4"
>[435400.578] (**) Option "_source" "server/udev"
>[435400.578] (II) event4  - Eee PC WMI hotkeys: is tagged by udev as: Keyboard
>[435400.578] (II) event4  - Eee PC WMI hotkeys: device is a keyboard
>[435400.578] (II) event4  - Eee PC WMI hotkeys: device removed
>[435400.595] (**) Option "config_info" "udev:/sys/devices/platform/eeepc-wmi/input/input4/event4"
>[435400.595] (II) XINPUT: Adding extended input device "Eee PC WMI hotkeys" (type: KEYBOARD, id 12)
>[435400.595] (**) Option "xkb_model" "pc105"
>[435400.595] (**) Option "xkb_layout" "ch"
>[435400.595] (**) Option "xkb_options" "terminate:ctrl_alt_bksp"
>[435400.596] (II) event4  - Eee PC WMI hotkeys: is tagged by udev as: Keyboard
>[435400.596] (II) event4  - Eee PC WMI hotkeys: device is a keyboard
>[435400.596] (II) config/udev: Adding input device PC Speaker (/dev/input/event3)
>[435400.596] (II) No input driver specified, ignoring this device.
>[435400.596] (II) This device may have been added with another device file.
>[435400.600] (**) HID 046a:010d: Applying InputClass "evdev keyboard catchall"
>[435400.600] (**) HID 046a:010d: Applying InputClass "libinput keyboard catchall"
>[435400.600] (II) Using input driver 'libinput' for 'HID 046a:010d'
>[435400.600] (**) HID 046a:010d: always reports core events
>[435400.600] (**) Option "Device" "/dev/input/event10"
>[435400.600] (**) Option "_source" "_driver/libinput"
>[435400.600] (II) libinput: HID 046a:010d: is a virtual subdevice
>[435400.600] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb2/2-14/2-14:1.1/0003:046A:010D.0008/input/input17/event10"
>[435400.600] (II) XINPUT: Adding extended input device "HID 046a:010d" (type: KEYBOARD, id 13)
>[435400.600] (**) Option "xkb_model" "pc105"
>[435400.600] (**) Option "xkb_layout" "ch"
>[435400.600] (**) Option "xkb_options" "terminate:ctrl_alt_bksp"
>[435404.827] (II) modeset(0): EDID vendor "ENC", prod id 12562
>[435404.827] (II) modeset(0): Using EDID range info for horizontal sync
>[435404.827] (II) modeset(0): Using EDID range info for vertical refresh
>[435404.827] (II) modeset(0): Printing DDC gathered Modelines:
>[435404.827] (II) modeset(0): Modeline "1920x1200"x0.0  154.00  1920 1968 2000 2080  1200 1203 1209 1235 +hsync -vsync (74.0 kHz eP)
>[435404.827] (II) modeset(0): Modeline "1920x1080"x0.0  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync (66.6 kHz e)
>[435404.827] (II) modeset(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
>[435404.827] (II) modeset(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
>[435404.827] (II) modeset(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
>[435404.827] (II) modeset(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
>[435404.827] (II) modeset(0): Modeline "1600x1200"x0.0  162.00  1600 1664 1856 2160  1200 1201 1204 1250 +hsync +vsync (75.0 kHz e)
>[435404.827] (II) modeset(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
>[435404.827] (II) modeset(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
>[435404.827] (II) modeset(0): Modeline "1680x1050"x0.0  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync (65.3 kHz e)
>[435405.114] (II) modeset(0): EDID vendor "ENC", prod id 12562
>[435405.114] (II) modeset(0): Using hsync ranges from config file
>[435405.114] (II) modeset(0): Using vrefresh ranges from config file
>[435405.114] (II) modeset(0): Printing DDC gathered Modelines:
>[435405.114] (II) modeset(0): Modeline "1920x1200"x0.0  154.00  1920 1968 2000 2080  1200 1203 1209 1235 +hsync -vsync (74.0 kHz eP)
>[435405.114] (II) modeset(0): Modeline "1920x1080"x0.0  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync (66.6 kHz e)
>[435405.114] (II) modeset(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
>[435405.114] (II) modeset(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
>[435405.114] (II) modeset(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
>[435405.114] (II) modeset(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
>[435405.114] (II) modeset(0): Modeline "1600x1200"x0.0  162.00  1600 1664 1856 2160  1200 1201 1204 1250 +hsync +vsync (75.0 kHz e)
>[435405.114] (II) modeset(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
>[435405.114] (II) modeset(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
>[435405.114] (II) modeset(0): Modeline "1680x1050"x0.0  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync (65.3 kHz e)
>[435405.614] (II) modeset(0): EDID vendor "ENC", prod id 12562
>[435405.614] (II) modeset(0): Using hsync ranges from config file
>[435405.614] (II) modeset(0): Using vrefresh ranges from config file
>[435405.614] (II) modeset(0): Printing DDC gathered Modelines:
>[435405.614] (II) modeset(0): Modeline "1920x1200"x0.0  154.00  1920 1968 2000 2080  1200 1203 1209 1235 +hsync -vsync (74.0 kHz eP)
>[435405.614] (II) modeset(0): Modeline "1920x1080"x0.0  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync (66.6 kHz e)
>[435405.614] (II) modeset(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
>[435405.614] (II) modeset(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
>[435405.614] (II) modeset(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
>[435405.614] (II) modeset(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
>[435405.614] (II) modeset(0): Modeline "1600x1200"x0.0  162.00  1600 1664 1856 2160  1200 1201 1204 1250 +hsync +vsync (75.0 kHz e)
>[435405.614] (II) modeset(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
>[435405.614] (II) modeset(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
>[435405.614] (II) modeset(0): Modeline "1680x1050"x0.0  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync (65.3 kHz e)
Comment 8 Lakshmi 2019-09-09 07:23:40 UTC
(In reply to helios.solaris from comment #0)
> Created attachment 145295 [details]
> banding
> 
> When using a monitor that is capable of using 10 bit colors per channel, it
> is causing banding around the 128 value (see attachment, vertical step in
> the center).
> 
> Setting "DefaultDepth 30" in xorg.conf's screen section is reducing banding
> significantly.

What is the platform under use here? What is the impact of this issue as a user?
Comment 9 helios.solaris 2019-09-09 08:01:57 UTC
(In reply to Lakshmi from comment #8)
> 
> What is the platform under use here? What is the impact of this issue as a
> user?

Linux 5.2.0-2-amd64 #1 SMP Debian 5.2.9-2 (2019-08-21) x86_64 GNU/Linux
i5-4690K/HD4600 on a Z97I-PLUS mainboard using DisplayPort.
It doesn't happen with DVI (as it only supports 8-Bit colors per channel).
But it does happen with DisplayPort and 8-Bit colors per channel.

Impact: It makes image editing impossible, because the representation of color gradients is not linear.
Comment 10 Ville Syrjala 2019-09-09 10:35:39 UTC
(In reply to Chris Wilson from comment #4)
> -modesetting, so let's presume this is due to the gamma curve processing in
> the kernel. Probably worth filing a bug over at gitlab for the modesetting
> ddx as well, e.g. it is probably sensible to use the highest precision gamma
> tables regardless of frontbuffer depth.

The approach I took with the intel ddx was stick with the legacy 8bpc LUT for <=8bpc screen. The benefit being that we know it's not an interpolated gamma mode and so directcolor type of stuff keeps working. The higher precision gamma mode we expose may or may not be interpolated depending on the platform.

Shouldn't be too difficult for someone to port over the intel ddx gamma code to the modesetting ddx.
Comment 11 helios.solaris 2019-09-09 10:50:00 UTC
(In reply to Ville Syrjala from comment #10)
> Shouldn't be too difficult for someone to port over the intel ddx gamma code
> to the modesetting ddx.

It happens with both, the modesetting and the intel driver as well.
Comment 12 Ville Syrjala 2019-09-09 12:16:31 UTC
(In reply to helios.solaris from comment #11)
> (In reply to Ville Syrjala from comment #10)
> > Shouldn't be too difficult for someone to port over the intel ddx gamma code
> > to the modesetting ddx.
> 
> It happens with both, the modesetting and the intel driver as well.

How fresh of a snapshot is your intel ddx. The code went in somewhat recently:

commit 60022507b80e3c123db2c88b6e0f0f1dee5d3a4f
Author:     Ville Syrjälä <ville.syrjala@linux.intel.com>
AuthorDate: Fri May 17 16:51:01 2019 +0300
Commit:     Chris Wilson <chris@chris-wilson.co.uk>
CommitDate: Wed Jul 10 12:59:10 2019 +0100

    sna: Support 10bpc gamma via the GAMMA_LUT crtc property
Comment 13 helios.solaris 2019-09-09 14:18:09 UTC
(In reply to Ville Syrjala from comment #12)
> 
> How fresh of a snapshot is your intel ddx.

ii  xserver-xorg-video-intel                                    2:2.99.917+git20190815-1                amd64        X.Org X server -- Intel i8xx, i9xx display driver


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.