On Sat, 14 Mar 2015 23:24:53 +1100 Jonathan Gray <[email protected]> wrote: > On Sat, Mar 14, 2015 at 08:02:09AM -0400, dan mclaughlin wrote: > > On Sat, 14 Mar 2015 20:58:32 +1100 > > Mon Dec 10 10:49:46 2012 -0600 Jonathan Gray <[email protected]> wrote: > > > On Tue, Mar 10, 2015 at 07:14:28AM -0400, dan mclaughlin wrote: > > > > > > > > that did do something. before the screen would just freeze with its > > > > contents. > > > > now it freezes like that for a second, and then goes blank. i > > > > reproduced it > > > > twice. the first time took about the same amount of time as before, the > > > > second > > > > went a bit longer before hanging. it seems there is also enough time > > > > before it > > > > freezes to get error messages now. the first time i got the expected > > > > messages: > > > > > > > > Mar 9 17:15:48 node02 /bsd: error: [drm:pid2359:i915_hangcheck_hung] > > > > *ERROR* Ha > > > > ngcheck timer elapsed... GPU hung > > > > Mar 9 17:15:48 node02 /bsd: error: [drm:pid11430:i915_reset] *ERROR* > > > > Failed to > > > > reset chip. > > > > > > > > the second time though i got this though: > > > > > > > > Mar 10 06:37:01 node02 /bsd: error: > > > > [drm:pid27180:i915_get_vblank_timestamp] *ER > > > > ROR* Invalid crtc 1 > > > > Mar 10 06:37:01 node02 /bsd: uvm_fault(0xd5c34634, 0x80038000, 0, 1) -> > > > > e > > > > > > > > i do get occational vblank_timestamp errors but they have never seemed > > > > to cause > > > > any significant problem before (although i don't use graphics too > > > > intensely). > > > > > > The 845g hardware has a single display pipe. I had hoped the problems > > > people had encountered with it were gone when the 'pipe a force' quirks > > > were removed for it. > > > > > > I'm not entirely sure where to look for the source of getting the pipe > > > wrong. > > > > > > I would be interested to hear if the following diff makes any difference. > > > From: > > > > > > commit 21a245d2d62ef617978316203af032d499805cd2 > > > Author: Rob Clark <[email protected]> > > > Date: Mon Dec 10 10:49:46 2012 -0600 > > > > > > drm: small fix in drm_send_vblank_event() > > > > > > Initialize e->pipe.. some drivers set this themselves, others do not. > > > Setting it in drm_send_vblank_event() should help ensure more > > > consistent > > > behavior with the different drivers. > > > > > > Index: sys/dev/pci/drm/drm_irq.c > > > =================================================================== > > > RCS file: /cvs/src/sys/dev/pci/drm/drm_irq.c,v > > > retrieving revision 1.59 > > > diff -u -p -r1.59 drm_irq.c > > > --- sys/dev/pci/drm/drm_irq.c 12 Feb 2015 08:48:32 -0000 1.59 > > > +++ sys/dev/pci/drm/drm_irq.c 12 Mar 2015 12:50:29 -0000 > > > @@ -885,6 +885,7 @@ void drm_send_vblank_event(struct drm_de > > > > > > now = get_drm_timestamp(); > > > } > > > + e->pipe = crtc; > > > send_vblank_event(dev, e, seq, &now); > > > } > > > EXPORT_SYMBOL(drm_send_vblank_event); > > > > no luck. > > > > i was using qiv, and when changing a picture, it paused for a second or two > > (no response) and then resumed, showing some blue lines across the middle > > for > > a fraction of a second. everything was fine for a few more seconds, and > > then i > > tried to use fullscreen, and it froze after blanking. > > > > i got a few errors, but don't know exactly what caused them. > > > > Mar 14 07:35:50 node02 /bsd: error: > > [drm:pid16745:i915_get_vblank_timestamp] *ERROR* Invalid crtc 1 > > Mar 14 07:35:59 node02 /bsd: error: [drm:pid31156:i915_hangcheck_hung] > > *ERROR* Hangcheck timer elapsed... GPU hung > > Mar 14 07:35:59 node02 /bsd: error: [drm:pid11046:i915_reset] *ERROR* > > Failed to reset chip. > > > > BTW, this was with the other patch applied as well. > > > > Do you still see the hangs with vblank timestamping disabled? > > Index: sys/dev/pci/drm/i915/i915_irq.c > =================================================================== > RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_irq.c,v > retrieving revision 1.21 > diff -u -p -r1.21 i915_irq.c > --- sys/dev/pci/drm/i915/i915_irq.c 12 Feb 2015 11:11:45 -0000 1.21 > +++ sys/dev/pci/drm/i915/i915_irq.c 14 Mar 2015 12:14:03 -0000 > @@ -2719,7 +2719,8 @@ void intel_irq_init(struct drm_device *d > dev->driver->get_vblank_counter = gm45_get_vblank_counter; > } > > - if (drm_core_check_feature(dev, DRIVER_MODESET)) > + if (drm_core_check_feature(dev, DRIVER_MODESET) && > + INTEL_INFO(dev)->num_pipes > 1) > dev->driver->get_vblank_timestamp = i915_get_vblank_timestamp; > else > dev->driver->get_vblank_timestamp = NULL; >
even quicker than before! using qiv again (it seems to trigger it more than feh) and the screen blanked and froze. no error messages this time (system froze too quickly i guess).
