Summary: | Hard lockup with r200 DRI driver | ||
---|---|---|---|
Product: | Mesa | Reporter: | Garry Reisky <greisky> |
Component: | Drivers/DRI/r200 | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | high | CC: | pip |
Version: | git | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Bug Depends on: | 729 | ||
Bug Blocks: | |||
Attachments: | r200 filter hack |
Description
Garry Reisky
2004-07-01 03:27:21 UTC
I just read another bug like this and they said using the shock rifle produces this. Since this is my least favorite weapon I never use it. So I tested ut2003 and it locks up when you fire the shock rifle. When the computer fires it also that will lock up that way. Marking 729 as a dependency, since this one may be more general than the shock rifle issue. Could this be R200 (not the derived rv250 etc.) only? I've just played through 3 maps (with a 9000pro) using nothing but primary shock rifle fire without any lockup (it was slow though), using cvs from (earlier) today. With same CVS build for my desktop and laptop, when I host a UT2004 game (with no other players/bots) without using Shock Rifle neither will crash. However, _only_ the desktop crashes when the Shock Rifle is used. DESKTOP: 8500 (R200) [2TU] LAPTOP: Mobility 9000 (rv250) [1TU] Perhaps a problem with the second texture unit handling? (In reply to comment #4) > With same CVS build for my desktop and laptop, when I host a UT2004 game (with > no other players/bots) without using Shock Rifle neither will crash. However, > _only_ the desktop crashes when the Shock Rifle is used. Ok then, looks like the problem is indeed restricted to R200 chips. That's a start... > Perhaps a problem with the second texture unit handling? Could be (there are hardware bugs, but for these the driver code should contain the necessary bugfixes), there are certainly other differences between the chips, as far as I know for instance the TCL unit is also quite a bit different internally. Could you try without tcl (tcl_mode=0)? I put tcl_mode=0 into my ~/.drirc and ran UT2003 several times and as soon as you start firing the shock rifle same thing happens. So that doesn't help. Same problem here Created attachment 1024 [details] [review] r200 filter hack Could you try the attached patch? This will simply disable mipmapping and setting the tex filter parameters to a fixed value. It's in no way a fix and will not look good, I'd just want to figure out if the lockups might be related to the texture sampling bugs (and the code to prevent that) of the r200. Your patch does stop the shock rife lockups with UT2k4. I tested it with a FireGL 8800 and a DRI CVS checkout from September 26. Played through several maps using the shock rifle exclusively without any problems. I've tested UT2k3 and UT2k4 with latest DRI and DRM CVS with S3TC on r200, dual Athlon MP. All "shock rife lockups" are gone. GREAT work. The fix is included in the CVS or there's only that patch? (That Roland doesn't consider a fix) Thanks > The fix is included in the CVS No. > or there's only that patch? Yes. > (That Roland doesn't consider a fix) Yes, it is a 'test' patch only to get clue what's wrong. Ok, so finally we have a clue on what's wrong with Shock Rifle , so now in few time we could have a "real" fix for this , right? :) (In reply to comment #13) > Ok, so finally we have a clue on what's wrong with Shock Rifle , so now in few > time we could have a "real" fix for this , right? :) It's only a slight clue, unfortunately - Yes the lockup is somehow related to the r200 texture sampling bugs and their workarounds. This hack specifically caused workaround #1 to be never triggered and workaround #2 to be always triggered. Could you try with R200_MIN_FILTER_ANISO_LINEAR instead (just change the line in the patch "t->pp_txfilter |= R200_MIN_FILTER_LINEAR | R200_MAG_FILTER_LINEAR;" to "t->pp_txfilter |= R200_MIN_FILTER_ANISO_LINEAR | R200_MAG_FILTER_LINEAR;", that should cause both workarounds to be triggered (though I suspect that won't lockup neither). Also, could you try (after reverting those hacks) to change "dbg = 0x0" to "dbg = 0x6" (right below the "Texture cache LRU hang workaround" comment). I have no idea what this LRU hang workaround does, it might hurt texturing performance or it might not work at all if it's applied unconditionally, no idea really, I'm just fishing in the dark. I just applied this patch. I can fire the shock rifle now without the freeze! So far so good. I just played one level. I'll try more levels but this fix/hack is working. Both of the suggestions, R200_MIN_FILTER_ANISO_LINEAR and removing the patch and trying "dbg = 0x6", eliminate the shock rifle lockups in UT2K4. I can confirm that using "dbg = 0x6" does indeed eliminate the shock rifle lockup with my 8500. :) dbg = 0x06 doesn't seem to help here. After a lockup in original UT, I started playing some ut2k4demo. I'm now staring at a hung computer with a shiny shock rifle blast across the screen. dbg=0x6 here solves the issue , and I don't have particular performance losses . This have some others drawbacks? dbg=0x6 here solves the issue, too. r200, Radeon 8500 QL Tested with UT2k3 & UT2k4, but all without TCL (!???) due to latest DRI CVS changes (S3TC). dbg=0x6 is fine even with TCL. r200, Radeon 8500 QL Tested with UT2k3 & UT2k4. Finally seems that we have found a solution to this , but in what does consist this workaround? Believed to be fixed in current CVS. Please reopen if it's still an issue. Mass version move, cvs -> git |
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.