[Intel-gfx] Modesetting bug on 945GSE (Atom N270) with Chris Wilson drm-intel-next kernel

Simon Farnsworth simon.farnsworth at onelan.co.uk
Mon Nov 22 11:01:25 CET 2010


On Friday 19 November 2010, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> On Fri, 19 Nov 2010 17:44:49 +0000, Simon Farnsworth <simon.farnsworth at onelan.co.uk> wrote:
> > Hello,
> > 
> > I'm seeing an interesting bug on 945GSE, and I have absolutely no idea
> > where to start looking. I'm trying to deal with performance issues on
> > this platform, so I'm updating to master of as many bits as possible, to
> > see if they're better.
> 
> Do you use a lot of fences? If so the pipelined fencing may be of interest
> and also the relaxed fencing rules for i945. It would be good to get
> some feedback on those.
> 
I'm a dumb applications programmer :)

I'm seeing an OpenGL compositor (using TFP to get window contents for circa 10
windows) struggle to meet frame deadlines at 60Hz. I would therefore guess
that I do use quite a few fences, as if I've understood properly, each of the
various window contents is accessed via a fence.

> > drm-intel-next as of a17577c9 (not tried older versions yet) is
> > consistently rendering to the middle third or so of the screen only;
> > this is happening in X, as well as in inteldrmfb during boot.
> 
> Vertical or horizontal offset? Which outputs? Anything suspicious in
> intel_reg_dumper?
> -Chris
It's horizontal that's broken. I'm using VGA (but can test DVI if you think
it's output-specific). I didn't spot anything weird in intel_reg_dumper, but
there are changes:

--- regs.good   2010-11-22 09:43:22.909797682 +0000
+++ regs.bad    2010-11-22 09:59:12.088372307 +0000
@@ -22,7 +22,7 @@
        DSPCLK_GATE_D: 0x00001000 (clock gates disabled: DPLUNIT)
       RENCLK_GATE_D1: 0x00000000
       RENCLK_GATE_D2: 0x00000000
-               SDVOB: 0x80480084 (enabled, pipe A, stall disabled, detected)
+               SDVOB: 0x80480004 (enabled, pipe A, stall disabled, detected)
                SDVOC: 0x00480000 (disabled, pipe A, stall disabled, not detected)
              SDVOUDI: 0x00000020
               DSPARB: 0x00001d9c
@@ -32,21 +32,21 @@
                 ADPA: 0x00008c18 (disabled, pipe A, +hsync, +vsync)
                 LVDS: 0x40000000 (disabled, pipe B, 18 bit, 1 channel)
                 DVOA: 0x00000000 (disabled, pipe A, no stall, -hsync, -vsync)
-                DVOB: 0x80480084 (enabled, pipe A, no stall, -hsync, -vsync)
+                DVOB: 0x80480004 (enabled, pipe A, no stall, -hsync, -vsync)
                 DVOC: 0x00480000 (disabled, pipe A, no stall, -hsync, -vsync)
          DVOA_SRCDIM: 0x00000000
          DVOB_SRCDIM: 0x00000000
          DVOC_SRCDIM: 0x00000000
           PP_CONTROL: 0x00000000 (power target: off)
            PP_STATUS: 0x00000000 (off, not ready, sequencing idle)
-        PP_ON_DELAYS: 0x00000000
-       PP_OFF_DELAYS: 0x00000000
+        PP_ON_DELAYS: 0x019007d0
+       PP_OFF_DELAYS: 0x015e07d0
           PP_DIVISOR: 0x00270f04
         PFIT_CONTROL: 0x00000000
      PFIT_PGM_RATIOS: 0x00000000
      PORT_HOTPLUG_EN: 0x04000220
    PORT_HOTPLUG_STAT: 0x00000400
-            DSPACNTR: 0x41000000 (disabled, pipe B)
+            DSPACNTR: 0xc1000000 (enabled, pipe B)
           DSPASTRIDE: 0x00000c80 (3200 bytes)
              DSPAPOS: 0x00000000 (0, 0)
             DSPASIZE: 0x03ff04ff (1280, 1024)
@@ -79,10 +79,10 @@
           DSPBSTRIDE: 0x00002000 (8192 bytes)
              DSPBPOS: 0x00000000 (0, 0)
             DSPBSIZE: 0x0419068f (1680, 1050)
-            DSPBBASE: 0x07000000
+            DSPBBASE: 0x02000000
             DSPBSURF: 0x00000000
          DSPBTILEOFF: 0x00000000
-           PIPEBCONF: 0x00000000 (disabled, single-wide)
+           PIPEBCONF: 0x80000000 (enabled, single-wide)

-- 
Simon Farnsworth
Software Engineer
ONELAN Limited
http://www.onelan.com/



More information about the Intel-gfx mailing list