ValveSoftware / SteamOS

SteamOS community tracker
1.53k stars 69 forks source link

X Error of failed request: BadDrawable (invalid Pixmap or Window parameter) #273

Open noodle1009 opened 9 years ago

noodle1009 commented 9 years ago

I am running SteamOS on an ASUS Chromebox (M004U). when streaming - very frequently, when exiting a game, I get the following error:

The streaming client ended unexpectedly [2]

at this point nothing can be done with SteamOS to regain control of the BPM UI. I am able to ssh into the box, and have noticed this error is always accompanied by the following, or similar, in steam_stdout.txt:

INFO: Session state Streaming -> StreamStopping INFO: Detaching controller X360 Wireless Controller with ID 0 INFO: Session state StreamStopping -> Idle X Error of failed request: BadDrawable (invalid Pixmap or Window parameter) Major opcode of failed request: 137 (DRI2) Minor opcode of failed request: 4 (DRI2DestroyDrawable) Resource id in failed request: 0x180001a Serial number of failed request: 12109 Current serial number in output stream: 12109

nothing unusual can be seen in streaming_client.log.

The ASUS Chromebox I am using has a Celeron 2955U processor.

Is it possible that this error / problem is addressed in an updated Mesa release upstream? Is there any way to keep this error from causing the SteamOS UI to become unresponsive? Mesa 10.4 has been released as of 12/29/2014, although I thought I read somewhere you guys forked it for SteamOS:

https://01.org/linuxgraphics/downloads/2014/2014q4-intel-graphics-stack-release

Tele42 commented 9 years ago

For easy reference, the Celeron 2955U is a Haswell-ULT processor.

noodle1009 commented 9 years ago

http://lists.freedesktop.org/archives/libva/2014-December/002948.html http://lists.freedesktop.org/archives/libva/2014-November/002905.html

seems relevant?

I think the error is addressed in libva 1.5.0 (part of the 2014Q4 Intel Graphics Stack Release according to the release notes)

just a guess

noodle1009 commented 9 years ago

I was able to resolve this error by doing the following:

wget http://ftp.ubuntu.com/ubuntu/pool/universe/i/intel-vaapi-driver/i965-va-driver_1.5.0-1_i386.deb wget http://ftp.ubuntu.com/ubuntu/pool/universe/i/intel-vaapi-driver/i965-va-driver_1.5.0-1_amd64.deb wget http://ftp.ubuntu.com/ubuntu/pool/universe/libv/libva/libva1_1.5.0-1_i386.deb wget http://ftp.ubuntu.com/ubuntu/pool/universe/libv/libva/libva1_1.5.0-1_amd64.deb wget http://ftp.ubuntu.com/ubuntu/pool/universe/libv/libva/libva-x11-1_1.5.0-1_i386.deb wget http://ftp.ubuntu.com/ubuntu/pool/universe/libv/libva/libva-x11-1_1.5.0-1_amd64.deb wget http://ftp.ubuntu.com/ubuntu/pool/universe/libv/libva/libva-glx1_1.5.0-1_i386.deb wget http://ftp.ubuntu.com/ubuntu/pool/universe/libv/libva/libva-glx1_1.5.0-1_amd64.deb

sudo dpkg -i libva1_1.5.0-1_i386.deb sudo dpkg -i libva1_1.5.0-1_amd64.deb sudo dpkg -i i965-va-driver_1.5.0-1_i386.deb sudo dpkg -i i965-va-driver_1.5.0-1_amd64.deb sudo dpkg -i libva-x11-1_1.5.0-1_i386.deb sudo dpkg -i libva-x11-1_1.5.0-1_amd64.deb sudo dpkg -i libva-glx1_1.5.0-1_i386.deb sudo dpkg -i libva-glx1_1.5.0-1_amd64.deb

then I removed everything starting with libva* in the following directories:

/home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/ /home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/

I then copied the following into the aforementioned libraries:

/usr/lib/x86_64-linux-gnu/libva-x11.so.1.3700.0 /usr/lib/x86_64-linux-gnu/libva-glx.so.1.3700.0 /usr/lib/x86_64-linux-gnu/libva.so.1.3700.0

and linked them:

ln -s libva-x11.so.1.3700.0 /home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libva-x11.so.1 ln -s libva-glx.so.1.3700.0 /home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libva-glx.so.1 ln -s libva.so.1.3700.0 /home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libva.so.1

ln -s libva-x11.so.1.3700.0 /home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libva-x11.so.1 ln -s libva-glx.so.1.3700.0 /home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libva-glx.so.1 ln -s libva.so.1.3700.0 /home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu//libva.so.1

I imagine every time the runtime is updated I'll have to do this all over again until these updated packages are included. I have yet to encounter the error condition after I've done this, and I've validated that I'm indeed using hardware decoding on the client. I'm a bit of a linux noob, so if there's a better way to accomplish what I've done, feel free to point it out. Hope this helps someone - I imagine it would fix problems with anyone using steamos for streaming using the intel graphics drivers for hardware decoding.

Plagman commented 9 years ago

Can you file a bug against the steam-runtime project, to track upgrading the version of libva to 1.5.0 or backporting the fix?

noodle1009 commented 9 years ago

certainly!

https://github.com/ValveSoftware/steam-runtime/issues/30

appreciate you looking at it :)