Summary: | [bisected] Half-Life 2: Deathmatch native version crashes | ||
---|---|---|---|
Product: | Mesa | Reporter: | Benjamin <brpylko> |
Component: | Drivers/Gallium/r600 | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | critical | ||
Priority: | medium | CC: | andreas.boll.dev, maraeo |
Version: | git | Keywords: | regression |
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
dmesg
Xorg.0.log gdb output possible fix |
Description
Benjamin
2013-03-20 19:55:15 UTC
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? Created attachment 76842 [details]
dmesg
Created attachment 76843 [details]
Xorg.0.log
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_vsyscall ()". 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. 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šák <maraeo@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 the 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 [details] [review] possible fix (In reply to comment #10) > 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. 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". 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 xorg-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. It fixes this issue for me too, thanks. The patch works for me. Marek, your the latest commits in master mesa git repo don't solve this problem. Fixed by commit 17003b44b76f2442a8bd795c8a314146facef3e5 |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.