[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#407680: pixel corruption (overflow in pixel operations, maybe Matrox driver?)



Package: xserver-xorg
Version: 7.1.0-10

When I drag a window or resize it, I get artifacts left over from that 
operation. Also, some 'normal' rendering operations are affected, I even see 
some weird light-effects in Quake 2.

Now, those artifacts are not completely random. I used an Eterm in 
Enlightenment (I normally use fluxbox, I only used E because it displays 
position and size while moving/resizing) and positioned it at different 
positions and then used the resize-handle to create the rubber-band rect that 
shows the target-size. The results are

X   Y    artifacts from
330 116  left side of rubberband
330 117  -
331 116  right side of rubberband
331 117  right side of rubberband
332 116  left side of rubberband
...

I tried some more positions, the common factor seems to be that the X position 
is odd.

Another similar effect occurs when moving a window. Just grab the window and 
wiggle it around a bit and you have the pixels all mixed up. You can still 
see the original content, so it is not a complete disaster, but nonetheless 
several pixels have weird colours.

Speaking about colours, the effect is most visible on black and white. Also, 
the artifacts when moving a window typically occur to the right of 
dark/bright or bright/dark transitions, hence my guess that there is some 
kind of overflow or underflow in blitting operations.

Note that these artifacts are removed when the area is redrawn, e.g. by moving 
another window over it. It isn't redrawn when just moving the mouse over it, 
even though I have the option "HWcursor" set to "off" in xorg.conf. Also, 
those artifacts are really there, i.e. not just something that is outside of 
X's control. What I mean is that when using Xmag, changing the resolution 
(with Ctrl-Alt-+/-) or scrolling the viewport those artifacts remain. This 
might give a hint where these operations take place that create the 
artifacts.

Talking about Xmag, I took a closer look at the pixel values of those 
artifacts (I assume that when you click a pixel there that it displays the 
RGB values). I have a background with a single colour (white, RGB 0xffffff). 
Looking at the pixel-values of the artefact, I see following colours:
fff9bf
ffd9ff
ffbfff
fff8ff
ffc8ff
ffefff
ffeeff
ff7fff
ff3fff
ff37ff
ffceff

As you can see, typically the G channel is affected, resulting in magenta 
artifacts on the white background. This runs along the behaviour on black 
background, where the artifacts are typically green.

Note that these artifacts only occur on every fourth vertical line of pixels. 
AFAICT (It's hard to measure this precisely) it occurs on the third, seventh, 
eleventh ... lines.

Further, I'm also running a Matrox card. There are a handful of bugreports in 
the BTS that talk about Matrox cards and display problems. I'm not sure if 
those are related to what I am seeing, as they lack a precise description.

In case that isn't clear, the artifacts don't have anything to do with window 
resizing/moving per se. I also see them right now while typing some text 
black on white. The point is just that e.g. the rubberband resizing makes 
this effect much more apparent.

Uli



Reply to: