Summary: | Cripling Dota 2 freeze with Morphling at hero selection or loadout | ||
---|---|---|---|
Product: | Mesa | Reporter: | Kevin McCormack <harlemsquirrel> |
Component: | Drivers/Gallium/radeonsi | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED FIXED | QA Contact: | Default DRI bug account <dri-devel> |
Severity: | normal | ||
Priority: | medium | CC: | dogmadefe, harlemsquirrel, hypnodreams, jarkko_korpi, kontakt, snowman.sp |
Version: | 10.5 | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
journalctl output
dmesg output Xorg.0.log glxinfo kernel messages dmesg output with R600_DEBUG journalctl output with R600_DEBUG All output when running Dota Possible fix |
Description
Kevin McCormack
2015-03-19 23:21:07 UTC
Created attachment 114624 [details]
journalctl output
Created attachment 114625 [details]
dmesg output
Can you run the game with R600_DEBUG=ps,vs,gs and post the output? I got same issue when using llvm-3.6.0. With llvm-3.5.0 works perfect. AMD R9 280X with linux 3.19.3 Created attachment 114857 [details]
Xorg.0.log
Created attachment 114858 [details]
glxinfo
Created attachment 114859 [details]
kernel messages
(In reply to Tom Stellard from comment #3) > Can you run the game with R600_DEBUG=ps,vs,gs and post the output? OK, sorry, I just saw this. So I know some of what I'm doing by not a lot. I do `export R600_DEBUG=ps,vs,gs` and then run the game? Where and how do I get output? dmesg? jounralctl? Something else? I think this may be the problem and solution. I see there is a patch but I'm not sure how to test it. Is this patch currently part of mesa git? Will this patch be coming to mesa 10.5.3? https://bugs.freedesktop.org/show_bug.cgi?id=89746 (In reply to Kevin from comment #9) > (In reply to Tom Stellard from comment #3) > > Can you run the game with R600_DEBUG=ps,vs,gs and post the output? > > OK, sorry, I just saw this. So I know some of what I'm doing by not a lot. I > do `export R600_DEBUG=ps,vs,gs` and then run the game? Where and how do I > get output? dmesg? jounralctl? Something else? I'm not sure if this is what you are looking for, but I am attaching new journalctl and dmesg outputs after enabling R600_DEBUG=ps,vs,gs Created attachment 114868 [details]
dmesg output with R600_DEBUG
Created attachment 114869 [details]
journalctl output with R600_DEBUG
(In reply to Kevin from comment #9) > I do `export R600_DEBUG=ps,vs,gs` and then run the game? Where and how do I > get output? dmesg? jounralctl? Something else? It should be in the stderr output of the game. Make sure you launch steam / the game from a terminal so you can see it, or maybe just capture it to a file with 2>/path/to/file.txt. I'm assuming that this patch http://cgit.freedesktop.org/mesa/mesa/commit/?id=d64adc3a79e419062432cfa8d1cbc437676a3fbd has been incorporated to mesa by 10.5.4 and I can report that I still have the same issue. I also built mesa from git in Arch Linux using the AUR mesa-git and lib32-mesa-git tarballs, installed, and tried Dota with no success. Created attachment 115420 [details]
All output when running Dota
Arch Linux 64-bit with kernel 4.0.0-rc7-gf22e6e8 and mesa 10.5.4
I ran these commands
export R600_DEBUG=ps,vs,gs
steam steam://rungameid/570 >~/Desktop/steamlog--2015-04-28.txt
Created attachment 115421 [details] [review] Possible fix Does this patch help? Tom, thank you for your help! I'm new to testing patches so this is what I did. I am using Arch and used the mesa-git in the AUR to build mesa from git. I did the following and got this message so I did not attempt to compile. cd ~/builds/mesa-git/src/mesa $ patch -pl < ~/Downloads/0001-R600-SI-Add-VCC-as-an-implict-def-of-SI_KILL.patch patch: **** strip count l is not a number OK, I now see that I am dumb and I typed -pl instead of p1. I downloaded mesa-10.5.4.tar.gz from ftp://ftp.freedesktop.org/pub/mesa/10.5.4/ and unpacked it. I then tried to patch but it seems the file needed is missing. Sorry for my noobness, I am trying to learn. $ patch -p1 < ~/Downloads/0001-R600-SI-Add-VCC-as-an-implict-def-of-SI_KILL.patch can't find file to patch at input line 16 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |From 36d89bfaa834151adbc56315c771e1ba7fa12c7f Mon Sep 17 00:00:00 2001 |From: Tom Stellard <thomas.stellard@amd.com> |Date: Tue, 31 Mar 2015 17:52:24 +0000 |Subject: [PATCH] R600/SI: Add VCC as an implict def of SI_KILL | |When SI_KILL has a register operand, its lowered form writes to vcc. |--- | lib/Target/R600/SIInstructions.td | 9 ++++++--- | test/CodeGen/R600/llvm.AMDGPU.kill.ll | 16 ++++++++++++++++ | 2 files changed, 22 insertions(+), 3 deletions(-) | |diff --git a/lib/Target/R600/SIInstructions.td b/lib/Target/R600/SIInstructions.td |index 95b2470..d1db4ab 100644 |--- a/lib/Target/R600/SIInstructions.td |+++ b/lib/Target/R600/SIInstructions.td -------------------------- File to patch: ^C OK, so I just realized this patch needs to be applied against llvm...so I have downloaded 3.6.0 from http://llvm.org/releases/download.html#3.6.0 and applied your patch. I am now attempting to compile. $ patch -p1 < ~/Downloads/0001-R600-SI-Add-VCC-as-an-implict-def-of-SI_KILL.patch patching file lib/Target/R600/SIInstructions.td Hunk #1 succeeded at 1809 (offset -86 lines). Hunk #2 succeeded at 1867 (offset -86 lines). patching file test/CodeGen/R600/llvm.AMDGPU.kill.ll Hunk #1 succeeded at 15 (offset -1 lines). Alright, so I think I did this correctly, but it did not help. This is what I did... cd ~/Downloads/llvm-3.6.0.src/ patch -p1 < ~/Downloads/0001-R600-SI-Add-VCC-as-an-implict-def-of-SI_KILL.patch cd ~/Downloads/llvm-cmake/ cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=prefix=/usr/local ~/Downloads/llvm-3.6.0.src/ make sudo make install Then I rebooted and ran Dota 2 and tried to view Morphling in the loadout screen and my system froze the same as before. So I am thinking since Steam runs everything in 32-bit, that perhaps I need to apply this patch somehow to lib32-llvm? Sorry again for not knowing how to do this properly. Today I tried building and installing llvm from git but I still have the issue. Could anyone tell me if it looks like I did this correctly? Do I need to do anything special for 32-bit vs 64-bit support? Should I remove llvm installed from Arch Linux repo before this? mkdir llvm-git cd llvm-git/ git clone http://llvm.org/git/llvm.git cmake ~/builds/llvm-git/llvm/ cmake --build . sudo cmake --build . --target install Tom, thank you for your patch. I can confirm that this does indeed fix my issue. I was able to build and test it with ABS. https://bbs.archlinux.org/viewtopic.php?pid=1525699#p1525699 *** Bug 90421 has been marked as a duplicate of this bug. *** *** Bug 89059 has been marked as a duplicate of this bug. *** *** Bug 89659 has been marked as a duplicate of this bug. *** *** Bug 89954 has been marked as a duplicate of this bug. *** |
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.