Steam for Linux > 일반 토론 > 제목 정보
Mushy 2012년 12월 3일 오후 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
Mushy님이 마지막으로 수정; 2012년 12월 3일 오후 12시 47분
9개 중 1-9 표시중
< >
AlenL 2012년 12월 3일 오후 3시 08분 
Tried another window manager?
Mushy 2012년 12월 4일 오전 11시 19분 
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.
Mushy님이 마지막으로 수정; 2012년 12월 4일 오후 2시 09분
AlenL 2012년 12월 4일 오후 2시 07분 
Have you considered reporting the problem to the developers of your window manager?
Mushy 2012년 12월 4일 오후 2시 09분 
AlenL님이 먼저 게시:
Have you considered reporting the problem to the developers of your window manager?
I've just update my previous post with more informations.
Mushy님이 마지막으로 수정; 2012년 12월 4일 오후 2시 09분
AlenL 2012년 12월 4일 오후 2시 13분 
Interesting. We are working on using lspci instead of libpci, which should prevent issues like this. Thanks for the report!
DarkStarSword 2012년 12월 9일 오후 9시 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)
DarkStarSword님이 마지막으로 수정; 2012년 12월 9일 오후 9시 37분
DarkStarSword 2012년 12월 9일 오후 9시 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 2012년 12월 10일 오전 10시 44분 
@darkstarsword Thank you for this explication.

Shutting down X isn't sufficient but after a complete restart the problem reappear, indeed.
AlenL 2012년 12월 11일 오전 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
9개 중 1-9 표시중
< >
페이지당: 15 30 50
게시된 날짜: 2012년 12월 3일 오후 12시 47분
게시글: 9