[i810] xv seemingly trashes random pixmap memory

Bug #12128 reported by j^
8
Affects Status Importance Assigned to Milestone
xorg (Ubuntu)
Fix Released
High
Daniel Stone

Bug Description

watching video with mplayer/totem/hxplay with xv enabled, after some time
artifacts show up on the screen. this started with switching to the new xorg
xserver.

it is not related to the drm module(i915), it happens both with and without it.

the problem can be triggert reliably by toggeling fullscreen mode on and off.
once that started there will also be pink artifacts in the video window, containing
parts of the gnome-terminal text or other areas of the screen.

output of lspci -vv -s 00:02:
0000:00:02.0 VGA compatible controller: Intel Corp. 82830 CGC [Chipset Graphics
Controller] (rev 04) (prog-if 00 [VGA])
        Subsystem: IBM ThinkPad A/T/X Series
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
        Latency: 0
        Interrupt: pin A routed to IRQ 7
        Region 0: Memory at e0000000 (32-bit, prefetchable) [size=128M]
        Region 1: Memory at d0000000 (32-bit, non-prefetchable) [size=512K]
        Capabilities: [d0] Power Management version 1
                Flags: PMEClk- DSI+ D1+ D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

0000:00:02.1 Display controller: Intel Corp. 82830 CGC [Chipset Graphics Controller]
        Subsystem: IBM ThinkPad A/T/X Series
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
        Region 0: Memory at e8000000 (32-bit, prefetchable) [size=128M]
        Region 1: Memory at d0080000 (32-bit, non-prefetchable) [size=512K]
        Capabilities: [d0] Power Management version 1
                Flags: PMEClk- DSI+ D1+ D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

Revision history for this message
j^ (j) wrote :

Created an attachment (id=1101)
screenshot of the artifacts

Revision history for this message
Daniel Stone (daniels) wrote :

Yeah, it looks like random pixmaps are somehow wandering in (the corruption
certainly looks like RGB/YUV buggery), and I've seen this one, too, but hard to
reproduce. Looks like random weird memory allocation doing the wrong thing.
Mine are usually either random chunks of Firefox (or whatever) overlaid on to
the video, or vice-versa (either way, usually with a totally whacked colourspace).

Revision history for this message
Daniel Stone (daniels) wrote :

Does this work with 6.8.1-1ubuntu11? If not, I'll be uploading 6.8.1-1ubuntu12
today, which might also fix it.

Revision history for this message
Remy Maucherat (remy-maucherat) wrote :

6.8.1-1ubuntu12 (maybe 11 was ok too, but I didn't test it) fixed the issue for
me (i855 with a banias), which I was only experiencing in Totem (mplayer has
always been ok, somehow), and the artifacts were never of the magnitude shown in
the screenshot. There's only a flash of garbling when resizing the overlay now
(but I've never seen zero artifact overlay handling on any graphics card, so
...). The update also provided a large performance boost to GL performance (from
unbearable to not very good). 2D performance seems unchanged.

Revision history for this message
j^ (j) wrote :

the problem still exists for me with an i830m and xorg 6.8.1-1ubuntu12

Revision history for this message
Daniel Stone (daniels) wrote :

CVSROOT: /cvs/xorg
Module name: xc
Changes by: <email address hidden> 05/02/10 02:41:20

Log message:
  2005-02-10 Alan Hourihane <email address hidden>
        * xc/programs/Xserver/hw/xfree86/drivers/i810/i830_video.c
        Fix pixmap cache corruption when Xv was in use due to a memory
        allocator calculation problem.

Modified files:
      ./:
        ChangeLog
      xc/programs/Xserver/hw/xfree86/drivers/i810/:
        i830_video.c

  Revision Changes Path
  1.763 +6 -1 xc/ChangeLog
  1.9 +0 -4 xc/programs/Xserver/hw/xfree86/drivers/i810/i830_video.c

Revision history for this message
j^ (j) wrote :

ok i downloaded
http://dri.freedesktop.org/snapshots/i810-20050225-linux.i386.tar.bz2
and installed
i915_dri.so to /usr/X11R6/lib/modules/dri/i915_dri.so
and
i810_drv.o to /usr/X11R6/lib/modules/drivers/i810_drv.o

and indeed the problem is solved.
hope its in the next version of the debs.

Revision history for this message
Daniel Stone (daniels) wrote :

 xorg (6.8.2-1) hoary; urgency=low
 .
   * New upstream version (update from 6.8.1.904).
     + Contains AMD64 PCIE BAR fix (closes: Ubuntu#6085).
     + Remove patches which were applied upstream, reshuffle others.
     + Rename 000_stolen_from_6.8_branch_benh_ati.diff to #022 to better
       reflect its status; it did not make 6.8.2 and will probably not make
       6.8.3, either. Update with a fix from benh to ensure that the PLL
       dividers were always taken from the BIOS if we need to use them (closes:
       Ubuntu#6223).
     + Revert RADEONSetFBLocation() breakage that crept into 6.8.2 shortly
       before release.
     + Update Via driver from unichrome.sf.net (closes: Ubuntu#6887).
     + Update i810 driver from HEAD, which fixes video artifacts among other
       things (closes: Ubuntu#5738). CRT mode validation still broken.
   * Allow XORG_CONFIG="custom" to be passed to Debconfiscation. Leaves
     xorg.conf alone. Source variables from /etc/default/xorg, which doesn't
     exist by default.
   * Add some more r128 chip identifiers to our special sync range
     blacklisting.
   * Fix extraneous quoting in xvfb-run, again (closes: Ubuntu#5531).
   * Fix second TMDS head initialisation on r3xx (closes: Ubuntu#4343).
   * Ensure sync ranges are written out if we ask the user for them (closes:
     Ubuntu#6184).
   * Add 1920x1200 modes, sans sync ranges for now (closes: Ubuntu#6252).
   * Remove #031 (glxinfo_makefile) as it was incorrect, per upstream, and
     just ensure that libGLU is linked against libstdc++ instead.
   * Patches #054 and #055 (evdev keyboard/mouse): change "Device" to "Dev
     Device" in the options section. The configuration parser thoughtfully
     puts a default of /dev/psaux for the mouse's Device, thus making it
     impossible to specify Dev Name/Dev Phys and not Device.
   * Fix numerous interactions with dpkg-reconfigure and
     xserver-xorg.config.in, so it should now just preserve configuration
     changes on upgrades, and probe and write upgrades when invoked via
     dpkg-reconfigure and the first time (closes: Ubuntu#6484).
   * Silently migrate server symlink from /usr/X11R6/bin/Xorg to
     /usr/bin/X11/Xorg, which should silence a few errors.
   * Strip .UTF-8 and @euro from the end of $LANG in xserver-xorg.config.in,
     to fix the $LANG->keyboard layout problem (closes: Ubuntu#6270).
   * Change 'xfree86' to 'xorg' in keyboard ruleset template (closes:
     Ubuntu#6477).
   * Change the default bitdepth on Savage to 24 (closes: Ubuntu#6127).
   * Ensure that we prompt at priority critical if we can't properly guess the
     keyboard layout, although we shouldn't have to guess.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.