https://bugs.freedesktop.org/show_bug.cgi?id=40767
Summary: [r600g] This commit is crashing World of Warcraft at start-up Product: Mesa Version: git Platform: x86-64 (AMD64) OS/Version: Linux (All) Status: NEW Severity: major Priority: medium Component: Drivers/Gallium/r600 AssignedTo: dri-devel@lists.freedesktop.org ReportedBy: rankincj@googlemail.com
I've noticed that World of Warcraft has started crashing with my HD4890, although not with my RV350. (WoW complains about reading invalid memory). I've run several git bisects, and they have all indicated that the first bad commit is:
commit b94a926f396d366b6bb5d24b32dd93ffb7609205 Author: Brian Paul brianp@vmware.com Date: Fri Sep 9 08:06:29 2011 -0600
st/mesa: init program MaxLocalParams, MaxEnvParams limits
Use the same limit for all parameter classes.
https://bugs.freedesktop.org/show_bug.cgi?id=40767
--- Comment #1 from Marek Olšák maraeo@gmail.com 2011-09-10 23:36:35 PDT --- Could you attach the backtrace where the crash occurs?
https://bugs.freedesktop.org/show_bug.cgi?id=40767
--- Comment #2 from Chris Rankin rankincj@googlemail.com 2011-09-11 05:56:45 PDT --- Created an attachment (id=51051) --> (https://bugs.freedesktop.org/attachment.cgi?id=51051) WoW crash dump file (text)
This is WoW's own crash file, and so probably contains far more information than you need. But it does also contain a stack trace mentioning vbo_exec_DrawRangeElements().
https://bugs.freedesktop.org/show_bug.cgi?id=40767
--- Comment #3 from Marek Olšák maraeo@gmail.com 2011-09-11 06:28:03 PDT --- The backtrace doesn't show the exact line where it crashes. Can you make an apitrace record?
https://bugs.freedesktop.org/show_bug.cgi?id=40767
--- Comment #4 from Marek Olšák maraeo@gmail.com 2011-09-11 06:33:55 PDT --- Created an attachment (id=51052) View: https://bugs.freedesktop.org/attachment.cgi?id=51052 Review: https://bugs.freedesktop.org/review?bug=40767&attachment=51052
possible fix
Can you try this patch?
https://bugs.freedesktop.org/show_bug.cgi?id=40767
--- Comment #5 from Marek Olšák maraeo@gmail.com 2011-09-11 07:04:44 PDT --- Ignore that patch, it breaks everything.
https://bugs.freedesktop.org/show_bug.cgi?id=40767
--- Comment #6 from Chris Rankin rankincj@googlemail.com 2011-09-11 09:16:17 PDT --- (In reply to comment #3)
The backtrace doesn't show the exact line where it crashes. Can you make an apitrace record?
Dunno, what's an "apitrace record" :-)? It's probably easier to add fprintf() statements to _mesa_update_state_locked() and examine the carnage...
https://bugs.freedesktop.org/show_bug.cgi?id=40767
--- Comment #7 from Marek Olšák maraeo@gmail.com 2011-09-11 09:23:41 PDT --- Apitrace can record and replay OpenGL commands. You can get it here: https://github.com/apitrace/apitrace
There is more info in this blogpost: http://zrusin.blogspot.com/2011/04/apitrace.html
https://bugs.freedesktop.org/show_bug.cgi?id=40767
--- Comment #8 from Chris Rankin rankincj@googlemail.com 2011-09-11 15:55:58 PDT --- (In reply to comment #6)
It's probably easier to add fprintf() statements to _mesa_update_state_locked() and examine the carnage...
My crude debugging has revealed that the following line in update_program_enables() is reading invalid memory:
ctx->FragmentProgram._Enabled = ctx->FragmentProgram.Enabled && ctx->FragmentProgram.Current->Base.Instructions;
It looks like ctx->FragmentProgram.Current is pointing to somewhere strange.
https://bugs.freedesktop.org/show_bug.cgi?id=40767
--- Comment #9 from Chris Rankin rankincj@googlemail.com 2011-09-12 02:52:19 PDT --- (In reply to comment #7)
Apitrace can record and replay OpenGL commands. You can get it here: https://github.com/apitrace/apitrace
There is more info in this blogpost: http://zrusin.blogspot.com/2011/04/apitrace.html
Hmm, got any hints for how to apitrace a 32 bit executable running on a 64 bit machine under Wine, please? I've already guessed that I need a 32 bit glxtrace.so, but it's still crashing as it tries to trace wine-preloader.
https://bugs.freedesktop.org/show_bug.cgi?id=40767
--- Comment #10 from Marek Olšák maraeo@gmail.com 2011-09-12 03:50:12 PDT --- Created an attachment (id=51066) View: https://bugs.freedesktop.org/attachment.cgi?id=51066 Review: https://bugs.freedesktop.org/review?bug=40767&attachment=51066
possible fix 2
Can you try this patch?
https://bugs.freedesktop.org/show_bug.cgi?id=40767
--- Comment #11 from Chris Rankin rankincj@googlemail.com 2011-09-12 04:35:39 PDT --- (In reply to comment #10)
Can you try this patch?
Yes, that patch seems to work. I've tried printing out the values of pc->MaxParameters, MAX_PROGRAM_LOCAL_PARAMS and MAX_PROGRAM_ENV_PARAMS, and I'm seeing lines like these:
pc->MaxParameters=4096, MAX_LOCAL=4096, MAX_ENV=256 pc->MaxParameters=96, MAX_LOCAL=4096, MAX_ENV=256
I'm guessing the first example is likely to be causing problems.
https://bugs.freedesktop.org/show_bug.cgi?id=40767
Marek Olšák maraeo@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #12 from Marek Olšák maraeo@gmail.com 2011-09-12 07:57:51 PDT --- I pushed the patch. Closing.
dri-devel@lists.freedesktop.org