screen update problems with Intel HD 4600 + virtual screen

Chris Wilson chris at chris-wilson.co.uk
Mon Jun 23 03:02:02 PDT 2014


On Mon, Jun 23, 2014 at 11:33:52AM +0200, Krzysztof Halasa wrote:
> Chris Wilson <chris at chris-wilson.co.uk> writes:
> 
> >> switch to mode 1920x1200 at 60.0 on pipe 0 using HDMI1, position (2176, 7), rotation normal
> >> 
> >> Now I scroll down 1 pixel:
> >> switch to mode 1920x1200 at 60.0 on pipe 0 using HDMI1, position (2176, 8), rotation normal
> >> 
> >> and immediately screen isn't updated correctly. For example, an
> >> application window is created normally, but when I move it (the app
> >> window) down, the top part of the window, max 8 pixels, is left on the
> >> screen (the moved window is ok). It almost looks like the code somewhere
> >> adds the vertical screen offset twice.
> >
> > 8 is significant as it is the tile row height. The kernel tries to be
> > smart and extract the panning from the surface address so that we can
> > display a larger virtual framebuffer than the hardware can actually use.
> >
> > Can you reproduce the about sequence with drm.debug=6 dmesg (i.e.
> > echo 6 > /sys/module/drm/parameters/debug ; xrandr --panning... ;
> > dmesg)?
> 
> I'm panning with the mouse. Doesn't look like a lot of output:
> 
> no problem yet:
> [617996.928] (II) intel(0): switch to mode 1920x1200 at 60.0 on pipe 0 using HDMI1, position (2176, 7), rotation normal
> 
> [618556.836459] [drm:drm_mode_setcrtc], [CRTC:3]
> [618556.836472] [drm:drm_mode_setcrtc], [CONNECTOR:12:HDMI-A-1]
> [618556.836478] [drm:intel_crtc_set_config], [CRTC:3] [FB:55] #connectors=1 (x y) (2176 7)
> [618556.836484] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:3], mode_changed=0, fb_changed=1
> [618556.836489] [drm:intel_modeset_stage_output_state], [CONNECTOR:12:HDMI-A-1] to [CRTC:3]
> [618556.836500] [drm:ironlake_update_plane], Writing base 013CA000 0000D200 0 7 16384
> [618556.836511] [drm:i915_setup_compression], reserved 39583744 bytes of contiguous stolen space for FBC
> [618556.836515] [drm:intel_update_fbc], disabling active FBC for update
> [618556.836520] [drm:ironlake_disable_fbc], disabled FBC
> [618556.836594] [drm:intel_crtc_cursor_set], cursor off
> [618556.885876] [drm:gen7_enable_fbc], enabled fbc on plane A
> [618565.988566] [drm:intel_crtc_cursor_set], cursor off
> 
> 
> problems:
> [618016.920] (II) intel(0): switch to mode 1920x1200 at 60.0 on pipe 0 using HDMI1, position (2176, 8), rotation normal
> 
> [618576.846085] [drm:drm_mode_setcrtc], [CRTC:3]
> [618576.846094] [drm:drm_mode_setcrtc], [CONNECTOR:12:HDMI-A-1]
> [618576.846098] [drm:intel_crtc_set_config], [CRTC:3] [FB:55] #connectors=1 (x y) (2176 8)
> [618576.846103] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:3], mode_changed=0, fb_changed=1
> [618576.846106] [drm:intel_modeset_stage_output_state], [CONNECTOR:12:HDMI-A-1] to [CRTC:3]
> [618576.846114] [drm:ironlake_update_plane], Writing base 013CA000 FFFFFFFFFFFF1200 0 0 16384
> [618576.846122] [drm:i915_setup_compression], reserved 39583744 bytes of contiguous stolen space for FBC
> [618576.846125] [drm:intel_update_fbc], disabling active FBC for update
> [618576.846128] [drm:ironlake_disable_fbc], disabled FBC
> [618576.846181] [drm:intel_crtc_cursor_set], cursor off
> [618576.895986] [drm:gen7_enable_fbc], enabled fbc on plane A
> [618588.640637] [drm:intel_crtc_cursor_set], cursor off

Hmm. Whilst it seems odd to have a negative linear offset, I have seen
it work elsewhere. Could you try setting
  options i915 i915_enable_fbc=0 enable_fbc=0
in /etc/modprobe.conf/intel.conf and rebuilding your initramfs?
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the xorg mailing list