Mushy 3 déc 2012 à 12h47
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
Dernière modification de Mushy; 3 déc 2012 à 12h47
Affichage des commentaires 1 à 9 sur 9
< >
AlenL 3 déc 2012 à 15h08 
Tried another window manager?
Mushy 4 déc 2012 à 11h19 
AlenL a écrit :
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.
Dernière modification de Mushy; 4 déc 2012 à 14h09
AlenL 4 déc 2012 à 14h07 
Have you considered reporting the problem to the developers of your window manager?
Mushy 4 déc 2012 à 14h09 
AlenL a écrit :
Have you considered reporting the problem to the developers of your window manager?
I've just update my previous post with more informations.
Dernière modification de Mushy; 4 déc 2012 à 14h09
AlenL 4 déc 2012 à 14h13 
Interesting. We are working on using lspci instead of libpci, which should prevent issues like this. Thanks for the report!
DarkStarSword 9 déc 2012 à 21h21 
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)
Dernière modification de DarkStarSword; 9 déc 2012 à 21h37
DarkStarSword 9 déc 2012 à 21h52 
@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 déc 2012 à 10h44 
@darkstarsword Thank you for this explication.

Shutting down X isn't sufficient but after a complete restart the problem reappear, indeed.
AlenL 11 déc 2012 à 4h19 
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
Affichage des commentaires 1 à 9 sur 9
< >
Par page : 15 30 50