From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 62573] New: Half-Life 2: Deathmatch native version crashes
Date: Wed, 20 Mar 2013 19:55:15 +0000
Message-ID:
Priority
medium
Bug ID
62573
Assignee
dri-devel@lists.freedesktop.org
Summary
Half-Life 2: Deathmatch native version crashes
Severity
normal
Classification
Unclassified
OS
Linux (All)
Reporter
brpylko@gmail.com
Hardware
x86-64 (AMD64)
Status
NEW
Version
git
Component
Drivers/Gallium/r600
Product
Mesa
As the title says, the native version of HL2:DM crashes on joining or creating
a server (when it loads a map I think). This does not happen under Wine nor
TF2. On the github page ValveSoftware/Source-1-Games I was told that the
problem lies in libgallium.
glxinfo reports the renderer as "Gallium 0.4 on AMD PALM", the version as "3.0
Mesa 9.2-devel", and the shading language version as "1.30" on my machine.
Would it help to post more output from glxinfo?
Please attach your xorg log and dmesg output. Also is this a 32-bit game running on a 64-bit distro? What do you mean by crash? segfault? system hangs? If it's a segfault or something like that can you get a backtrace with gdb?
Yeah, it's segfaulting. It is 32-bit running on 64-bit Ubuntu, but I do have multiarch support (and TF2 works fine, which is nearly the same engine and also 32-bit).
If I am debugging it with gdb, it won't go past the loading screen for the main menu. The last thing gdb says is "0xf776e425 in __kernel_vsyscall () ". I don't know what that means.
Is the libgl1-mesa-dri:i386 package installed on your system? (In reply to comment #5) > If I am debugging it with gdb, it won't go past = the loading screen for the > main menu. The last thing gdb says is "0xf776e425 in __kernel_vsy= scall ()". That's too little information. If you don't know which output from gdb is relevant, please just attach all of it.
That package is installed. I should have been more clearer, that was the only thing it outputted besides it informing me that it's loading debugging symbols. Oops.... I made a mistake when using gdb. I'll post the corrected information shortly.
| What | Removed | Added |
|---|---|---|
| Severity | normal | critical |
| CC | andreas.boll.dev@gmail.com, maraeo@gmail.com | |
| Summary | Half-Life 2: Deathmatch native version crashes | [bisected] Half-Life 2: Deathmatch native version crashes |
| Keywords | regression |
I can reproduce this bug on rv770. It works fine on mesa 9.0.3 and 9.1.1 I've bisected to this commit: ea63491629f48099371f725e7c3779f2982d7a52 is the first bad commit commit ea63491629f48099371f725e7c3779f2982d7a52 Author: Marek Ol=C5=A1=C3=A1k <m= araeo@gmail.com> Date: Thu Feb 7 04:36:33 2013 +0100 st/mesa: accelerate glGetTexImage for all formats using a blit This commit allows using glGetTexImage during rendering and still maintain interactive framerates. This improves performance of WarCraft 3 under Wine. The framerate is improved from 25 fps to 39 fps in the main menu, and from 0.5 fps to 32 fps in t= he game. v2: fix choosing the format for decompression
(gdb) bt full
#0 0xb48d8ebb in st_GetTexImage (ctx=0x80e44e0, format=32992, type=5121,
pixels=0x17d59208, texImage=0x17d58e50)
at ../../src/mesa/state_tracker/st_cb_texture.c:662
st = 0x80f2908
pipe = 0x815c578
screen = 0x80a9878
width = 64
height = 2
depth = 1
src = 0x0
dst = 0x0
dst_templ = {reference = {count = 2},
screen = 0xb482b04c <_mesa_image_offset+124>, target = 32992, format
= 5121,
width0 = 3221208592, height0 = 3086507199, depth0 = 3221208592,
array_size = 2904027824, last_level = 60, nr_samples = 191, usage =
255,
bind = 64, flags = 3}
dst_format = <optimized out>
src_format = 3086455916
mesa_format = <optimized out>
gl_target = 3553
pipe_target = <optimized out>
blit = {dst = {resource = 0x0, level = 0, box = {x = 0, y =
-1261735936,
z = 268719712, width = 149, height = -1261735936, depth = 0},
format = 2147483647}, src = {resource = 0x0, level = 3028636484,
box = {x = 2,
y = 135176152, z = 64, width = -1208460097, height = 32992, depth
= 5121},
format = PIPE_FORMAT_NONE}, mask = 1, filter = 64,
scissor_enable = 224 '\340', scissor = {minx = 28672, miny = 46283,
maxx = 34124, maxy = 46215}}
bind = 1024
tex_xfer = <optimized out>
map = 0x0
done = 0 '\000'
#1 0xb4876d15 in _mesa_GetnTexImageARB (target=target@entry=3553,
level=level@entry=0,
format=format@entry=32992, type=type@entry=5121,
bufSize=bufSize@entry=2147483647,
pixels=pixels@entry=0x17d59208) at ../../src/mesa/main/texgetimage.c:928
texObj = <optimized out>
texImage = 0x17d58e50
ctx = 0x80e44e0
#2 0xb4876df7 in _mesa_GetTexImage (target=3553, level=0, format=32992,
type=5121,
pixels=0x17d59208) at ../../src/mesa/main/texgetimage.c:938
No locals.
#3 0xb73fa65a in ?? ()
from /home/aboll/.local/share/Steam/SteamApps/common/Half-Life 2
Deathmatch/bin/libtogl.so
No symbol table info available.
.....
Created attachment 76882 [details]
gdb output
The interesting stuff is near the bottom. It segfaults on st_GetTexImage in
st_cb_texture.c on line 895, which makes considering Andreas' post about
Warcraft III in Wine.
*makes sense, I meant to say makes sense. It's interesting that it's segfaulting in different places for each of us.
Created attachment 76887 [de= tails] [review] possible fix (In reply to comment #10) > Created attachment 76882<= /a> [details] > gdb output >=20 > The interesting stuff is near the bottom. It segfaults on st_GetTexIma= ge in > st_cb_texture.c on line 895, which makes considering Andreas' post abo= ut > Warcraft III in Wine. Could you please try this patch?
Comment on attachment 76887 [details] [review] possible fix Which package is this? Is it libgl1-mesa-dri?
It's a git patch for Mesa, applicable using "git am -3&qu= ot;. Of course it's the DRI driver.
Since I'm using xorg-edgers, do I need to check out from git or can I just use apt-get source?
Sorry I don't really know what needs to be done if you have xo= rg-edgers. The patch is supposed to be applied using the git command, so you basically need the whole Mesa git repository.
I checked out from git and applied the patch, BUT autogen.sh exits with code 1, configure has a syntax error, and make says there is nothing to do.
Please attach the output from autogen.sh / configure. There's = no point running make until those have succeeded.
Thanks Marek, your patch fixes the segfault. Feel free to add my Tested-by on the patch.
Marek, your the latest commits in master mesa git repo don't solve this problem.
| What | Removed | Added |
|---|---|---|
| Status | NEW | RESOLVED |
| Resolution | --- | FIXED |
Fixed by commit 17003b44b76f2442a8bd795c8a314146facef3e5