Bug 3006 - Black screen on startup with dualhead
Status: RESOLVED INVALID
Alias: None
Product: Tremulous
Classification: Unclassified
Component: Video
Version: unspecified
Hardware: PC Linux
: P5 major
Assignee: Tremulous Bugs
QA Contact:
URL:
Depends on:
Blocks:
 
Reported: 2007-01-15 16:05 EST by Damien Laniel
Modified: 2009-02-27 17:43:08 EST
0 users

See Also:



Description Damien Laniel 2007-01-15 16:05:55 EST
Forwarding this bug reported in Debian BTS at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=395856

Tremulous starts up with a black screen (before the logo screen), and
doesn't do anything. It stays at nigh 100% cpu usage (15% user, 85%
system according to top) and the system doesn't react to any console
input except ctrl-alt-f[1-6] virtual console changes. The system does
respond to SSH, from where I diagnosed it.

If you hit ctrl-alt-f1 (or any other console) the game proceeds with
startup immetiatedly (can detect from sound starting to play), and when
you switch back to X the game proceeds nicely and everything works as
expected.

The issue seems to be related to xinerama dualhead. I'm using a Nvidia
EN7800GT with a xinerama two display configuration (separate displays
with xinerama=1, not nvidias twinview). All other software work fine
with this setup, and games run perfectly with both heads active (game
fullscreen on primary display and gnome windows on second display). If
I switch to Twinview, where the game sets a display mode with the other
display disabled, it works perfectly as expected. and the same with
single display.

>From simple strace diagnosis the game seems to be stuck in some kind of
busy idle loop.

stracing the tremulous process just shows lots of lines like this:
sched_yield()                           = 0

This is as much as I could dig up for now about the problem. If you need
any additional info I can try to find it out, if its not too much
trouble.

All libraries and packages are ones from debian testing repo, with
latest updates. Nvidia driver is their latest proprietary bin-ball.

Heres a log portion from stages before and after the freeze:
(I've removed irrelevant portions to compress it some)

tremulous 1.1.0 linux-x86_64 Oct  5 2006
----- FS_Startup -----
Current search path:
<snipped, paths>

----------------------
2080 files in pk3 files
execing default.cfg
execing autogen.cfg
couldn't exec autoexec.cfg
Hunk_Clear: reset the hunk ok
----- Client Initialization -----
----- Initializing Renderer ----
-------------------------------
----- Client Initialization Complete -----
----- R_Init -----

------- Input Initialization -------
Joystick is not active.
------------------------------------
...loading libGL.so.1:
Calling SDL_Init(SDL_INIT_VIDEO)...
SDL_Init(SDL_INIT_VIDEO) passed.
Initializing OpenGL display
...setting mode 9: 1600 1200
Using 4/4/4 Color bits, 24 depth, 0 stencil display.
GL_RENDERER: GeForce 7800 GT/PCI/SSE2
Initializing OpenGL extensions
...ignoring GL_S3_s3tc
...ignoring GL_EXT_texture_env_add
...using GL_ARB_multitexture
...using GL_EXT_compiled_vertex_array

GL_VENDOR: NVIDIA Corporation
GL_RENDERER: GeForce 7800 GT/PCI/SSE2
GL_VERSION: 2.0.2 NVIDIA 87.76
GL_EXTENSIONS: <many, snipped>
GL_MAX_TEXTURE_SIZE: 4096
GL_MAX_ACTIVE_TEXTURES_ARB: 4

PIXELFORMAT: color(32-bits) Z(24-bit) stencil(0-bits)
MODE: 9, 1600 x 1200 fullscreen hz:N/A
GAMMA: hardware w/ 0 overbright bits
CPU:
rendering primitives: single glDrawElements
texturemode: GL_LINEAR_MIPMAP_LINEAR
picmip: 0
texture bits: 32
multitexture: enabled
compiled vertex arrays: enabled
texenv add: disabled
compressed textures: disabled

< LOCKUP HERE
  the game locks up between this line and the next one,
  and proceeds only on virt console change >

Initializing Shaders
...loading 'scripts/uncreation.shader'
...loading 'scripts/q3map2_tremor.shader'
<snip, lots of shader files>
----- finished R_Init -----
------ Initializing Sound ------
<snip,OpenAL initialization>
--------------------------------
Loading vm file vm/ui.qvm...
...which has vmMagic VM_MAGIC_VER2
Loading 1075 jump table targets
compiling ui
running assembler < /tmp/ui.s_E2WiZA > /tmp/ui.o_hrl4yl
done
computing jump table
VM file ui compiled to 6261955 bytes of code (0x2aaaac019000 -
0x2aaaac611cc3)
ui loaded in 4596672 bytes on the hunk
UI menu load time = 409 milli seconds
UI menu load time = 31 milli seconds
UI menu load time = 22 milli seconds
--- Common Initialization Complete ---

and the rest is just gameplay...


-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-2-amd64
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages tremulous depends on:
ii  libc6                        2.3.6.ds1-4 GNU C Library: Shared libraries
ii  libopenal0a                  1:0.0.8-1   OpenAL is a portable library for 3
ii  libsdl1.2debian              1.2.11-4    Simple DirectMedia Layer
ii  tremulous-data               1.1.0-2     Tremulous datas

tremulous recommends no packages.

-- no debconf information
Comment 1 Chris "Lakitu7" Schwarz 2009-02-26 19:49:40 EST
Can someone with the above config please confirm whether or not this bug still occurs with svn code and if it is unique to Tremulous or actually an ioq3 bug?
Comment 2 Khalsa 2009-02-27 14:28:56 EST
Well seeing as there was no follow up to the original bug report @ 
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=395856 and it's suggested that 
it was a problem with the NVIDIA drivers from the original report, I think we 
can safely close this bug either way.
Comment 3 Chris "Lakitu7" Schwarz 2009-02-27 17:43:08 EST
Oh, okay then. Thanks.