ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.21k stars 174 forks source link

Steam fails to start with 30-bit colour depth display #4399

Open elFarto opened 8 years ago

elFarto commented 8 years ago

When attempting to start Steam on Fedora 23 with a 30-bit colour depth display (10 bits per component) on the nvidia binary drivers, it fails with the following error:

Steam: An X Error occurred
X Error of failed request:  BadMatch (invalid parameter attributes)
Major opcode of failed request:  1 (X_CreateWindow)
Serial number of failed request:  49
xerror_handler: X failed, continuing

Followed by a bunch of related errors.

I xtrace'd the calls to X and found the offending call:

001:<:0031: 52: Request(1): CreateWindow depth=0x18 window=0x01800005 parent=0x00000294 
x=0 y=0 width=64 height=24 border-width=0 class=InputOutput(0x0001) visual=0x00000021 
value-list={background-pixmap=None(0x00000000) border-pixel=0x00000000 bit-gravity=NorthWest(0x01) 
event-mask=KeyPress,KeyRelease,ButtonPress,ButtonRelease,EnterWindow,LeaveWindow,PointerMotion,ButtonMotion,Exposure,StructureNotify,FocusChange,PropertyChange 
colormap=0x01800004}

This is attempting to create a 24-bit colour (depth=0x18) window with a visual of 0x21, which isn't allowed. Here's the snippet from xdpyinfo:

  visual:
    visual id:    0x21
    class:    TrueColor
    depth:    30 planes
    available colormap entries:    1024 per subfield
    red, green, blue masks:    0x3ff, 0xffc00, 0x3ff00000
    significant bits in color specification:    11 bits
davidheitman commented 2 months ago

I'd like to see an update, too. Like the previous post, I have a Samsung Odyssey G9. I unfortunately discovered this issue after attempting to migrate my gaming setup from a Windows VM with a passthrough GPU to Linux, and after deleting the VM and downloading all my games again (over a slow link, no less). Now I can't use 10 bit color.

And to clarify, I'm not asking about HDR support. I know that's still highly experimental, at best, on Linux. I ask because I also run various media players such as Kodi on my machine, and I have a lot of 10 bit content, so with or without HDR, I want to display that full bit depth, but I don't want to have to change xorg.conf every time I want to switch between watching movies or playing games in Steam.

In short, enabling 10 bit doesn't necessarily imply HDR. So HDR support shouldn't be necessary to allow the client to function with 10 bit enabled.