Steam for Linux > Discusiones generales > Detalles del tema
Mushy 3 de Dic, 2012 a las 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
Última edición por Mushy; 3 de Dic, 2012 a las 12:47
Mostrando 1-9 de 9 comentarios
< >
AlenL 3 de Dic, 2012 a las 15:08 
Tried another window manager?
Mushy 4 de Dic, 2012 a las 11:19 
Publicado originalmente por AlenL:
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.
Última edición por Mushy; 4 de Dic, 2012 a las 14:09
AlenL 4 de Dic, 2012 a las 14:07 
Have you considered reporting the problem to the developers of your window manager?
Mushy 4 de Dic, 2012 a las 14:09 
Publicado originalmente por AlenL:
Have you considered reporting the problem to the developers of your window manager?
I've just update my previous post with more informations.
Última edición por Mushy; 4 de Dic, 2012 a las 14:09
AlenL 4 de Dic, 2012 a las 14:13 
Interesting. We are working on using lspci instead of libpci, which should prevent issues like this. Thanks for the report!
DarkStarSword 9 de Dic, 2012 a las 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)
Última edición por DarkStarSword; 9 de Dic, 2012 a las 21:37
DarkStarSword 9 de Dic, 2012 a las 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 de Dic, 2012 a las 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 de Dic, 2012 a las 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
Mostrando 1-9 de 9 comentarios
< >
Por página: 15 30 50
Publicado el: 3 de Dic, 2012 a las 12:47
Mensajes: 9