Forums » Linux

Fatal Error: Couldn't open window.

Sep 25, 2004 Grzywacz link
Hi,

I've just upgraded to 1.0.5 and Vendetta doesn't work for me anymore. "Play vendetta" closes launcher window and the error from topic is printed on the console. Nothing more. I use X.org 6.8.0 with nvidia drivers (6111). 1.0.2 worked just fine yestarday and I made no changes to the system during this time. What other information should I provide?

Update: Exporting LD_PRELOAD=libGL.so fixes it. I have this problem with America's Army too, dunno what's the reason...
Sep 25, 2004 a1k0n link
What does errors.log say afterwards?

I was afraid this might happen. it's probably a glibc incompatibility or something. What distribution are you using?
Sep 25, 2004 Ticho link
I'm having the same problem, using Gentoo.
Sep 25, 2004 Grzywacz link
In errors.log only this:
[Sun Sep 26 00:44:46 2004] SetVideoMode failed, line 34
Fatal Error: Couldn't open window.

I use gentoo ~x86.
Sep 25, 2004 roguelazer link
Did you try doing an opengl-update nvidia, then running Vendetta?
Sep 25, 2004 Grzywacz link
No, I'm used to installing nvidia drivers by myself, so opengl-update doesn't even work for me. Anyway - that's not the case, majority of other applications using OGL works flawlessly.
Sep 26, 2004 a1k0n link
There are no lines that say "Found driver: ..."?
Sep 27, 2004 roguelazer link
You do know that you should never install the nvidia drivers yourself on a gentoo system, right? You do know that if you do so, you need to reinstall them after every X merge, and things like enlightenment-0.17 that depend on opengl-update will fail...
Sep 27, 2004 Grzywacz link
Huh. How did I miss it first time: O_o

[Tue Sep 28 03:23:14 2004] Can't load driver /home/karol/.vendetta/drivers/gkgl.so: libnvidia-tls.so.1: cannot handle TLS data

without LD_PRELOAD set, vs:

[Tue Sep 28 03:24:04 2004] Found driver: "OpenGL Reference GKGL driver". Type 5, Version 27.0. Load @0x082af270

with LD_PRELOAD="libGL.so". Rest of the log really seems irrelevant this time, sorry for not having spotted it earlier. :-\

roguelazer: I don't really care and I hate when some things are being done automagically. ;)
Sep 28, 2004 mr_spuck link
Ah. I had the same problem with a few apps for a while. Do xmms opengl plugins not work either?
Anyway it happens when you are running the TLS version of the nvidia drivers/libraries on a non TLS system. The Nvidia installer tries to detect during installation what its running on, but the test isn't foolproof.

There is a command line switch for the installer that forces it to install a specific set of libraries.

EDIT:

--force-tls=[TLS TYPE]
NVIDIA's OpenGL libraries are compiled with one of two
different thread local storage (TLS) mechanisms: 'classic tls'
which is used on systems with glibc 2.2 or older, and 'new tls'
which is used on systems with tls-enabled glibc 2.3 or newer.
The nvidia-installer will select the OpenGL libraries
appropriate for your system; however, you may use this option
to force the installer to install one library type or another.
Valid values for [TLS TYPE] are 'new' and 'classic'.

try one of the two...
Sep 28, 2004 Grzywacz link
Woot!
You were right. Forcing tls type to "classic" solved the problem. I guess is should be mentioned in some kind of troubleshooting guide as it's pretty obscure...
Sep 28, 2004 mr_spuck link
What kind of system are you running?
It probably only happens on some rare combinations. I think libc >= 2.3 compiled with gcc <= 3.2.* or so.
Sep 28, 2004 Grzywacz link
I've written it somewhere above: gentoo ~x86 with no special mods, so I'd consider it a fairly common configuration.
Sep 28, 2004 a1k0n link
Ahha. The difference is that Vendetta-1.0.3+ uses threads, and previous versions did not, so thread local storage was never an issue.
Sep 29, 2004 roguelazer link
Hmm. That reminds me. Has anybody compared the new Vendetta using linuxthreads and pthreads?