Mushy 3. joulu, 2012 12.47
Serious Sam 3 doesn't start
Hello,

SS3 doesn't start with this error:
Atom identifier _NET_WM_STATE_HIDDEN can't be obtained
Steam itself and others games (And yet it moves, TF2, trine 2 and world of Goo) work fine.

Any idea?

System info:
  • Debian Sid 64bits
  • AMD Radeon HD 7800 graphic card with Catalyst drivers 12.6
  • i3 window manager
Viimeisin muokkaaja on Mushy; 3. joulu, 2012 12.47
Näytetään 1-9 / 9 kommentista
< >
AlenL 3. joulu, 2012 15.08 
Tried another window manager?
Mushy 4. joulu, 2012 11.19 
AlenL lähetti viestin:
Tried another window manager?
Thank you for your idea!

Under xfce4, the launcher ask me to install libpci and back to i3, SS3 works fine.
Viimeisin muokkaaja on Mushy; 4. joulu, 2012 14.09
AlenL 4. joulu, 2012 14.07 
Have you considered reporting the problem to the developers of your window manager?
Mushy 4. joulu, 2012 14.09 
AlenL lähetti viestin:
Have you considered reporting the problem to the developers of your window manager?
I've just update my previous post with more informations.
Viimeisin muokkaaja on Mushy; 4. joulu, 2012 14.09
AlenL 4. joulu, 2012 14.13 
Interesting. We are working on using lspci instead of libpci, which should prevent issues like this. Thanks for the report!
DarkStarSword 9. joulu, 2012 21.21 
Running ss3 under xtrace shows this:
000:<:000a: 28: Request(16): InternAtom only-if-exists=true(0x01) name='_NET_WM_STATE_HIDDEN'
000:>:000a:32: Reply to InternAtom: atom=None(0x0)

_NET_WM_STATE_HIDDEN not existing should not be considered fatal, it merely means that nothing has previously requested an X atom of that name (which in practice means that the Window Manager doesn't know about that property and will just ignore it if it is set on a window).

The simplest fix would be to change only-if-exists to false when requesting the atom (in general, if you ever pass only-if-exists=true to intern_atom() you should be prepared for the case that the atom may not exist. If you are not prepared for that case you should pass false).

@Mushy: Did you completely kill X after logging into xfce4? xfce4 would have created the atom, but it would only persist until X was restarted.

In the meantime, for anyone else hitting this issue, this python script[raw.github.com] will create the atom (requires python-xlib), so running this any time before starting ss3 will workaround the issue and allow ss3 to run:

#!/usr/bin/env python

import Xlib.display

display = Xlib.display.Display()
display.intern_atom('_NET_WM_STATE_HIDDEN', False)
Viimeisin muokkaaja on DarkStarSword; 9. joulu, 2012 21.37
DarkStarSword 9. joulu, 2012 21.52 
@AlenL: The libpci/lspci dependency is a separate issue, but I'd be cautious of relying on parsing the output of a command line tool instead of using a library. Command line tools generally don't offer any guarantees that the format of their output won't change in the future since they are primarily intended to be run interactively by a human, while most libraries at least try to retain some API & ABI compatibility to avoid breaking programs that use them.
Mushy 10. joulu, 2012 10.44 
@darkstarsword Thank you for this explication.

Shutting down X isn't sufficient but after a complete restart the problem reappear, indeed.
AlenL 11. joulu, 2012 4.19 
darkstarsword, we are aware of the risks. However:
- right now, there are much more people without 32bit libpci than without (or with incompatible) lspci
- this is not a critical function anyway. if it is wrong, your settings are wrong, but the game works
- if it changes, we can patch the game
Näytetään 1-9 / 9 kommentista
< >
Sivua kohden: 15 30 50
Lähetetty: 3. joulu, 2012 12.47
Viestejä: 9