[Savage40] More strangeness

Bjorn Knutsson bjorn+savage at update.uu.se
Sat Apr 9 19:36:47 PDT 2005


As I was playing around with partially obscured windows, I noticed
another thing I hadn't seen before with the old driver. This is sort
of long, but I'll give you an

   Executive summary: There seems to be some X/Y mixup in the new
   driver. Video overlays are always as high as they are wide (with
   the last video line copied to fill out the overlay), and that when
   the video window is partially vertically obscured, the overlay
   stays a square by reducing horizontal and vertical size
   simultaneously.


If a video window is partially obscured horizontally (and the
overlapping window obscures the entire height of the video window),
then at some point, part of the remaining visible window starts
filling in from the bottom with solid key color (blue in my case). 

I'm fairly sure this bug is due to a Height/Width mixup, because it
starts happening when the horizontal overlap exceeds (Width - Height),
and the height of the solid color is exactly equal to the number of
horizontal pixels exceeding (Width - Height) that are obscured. 
(Effectively, the visible video becomes a square, where the sides are
equal to the visible width.)

I.e., if the window is 600x400, and I obscure the leftmost 200x400
pixels, you can't see any problem. If I obscure the leftmost 300x400,
then there will be a 100 pixel wide band of solid color at the bottom
of the video window. If I then move the obscuring window so that the
leftmost 400x400 is obscured (and thus only 200 unobscured horizontal
pixels remain), then the lower 200x200 of the 200x400 visible part of
the window will be solid key color.


I also notice that if I create a window filled in with in the key
color and put below the video window, then I see that the video
"window"/overlay is actually larger than the window presented by the
player. It is in fact a square, where the height of the overlay is
equal to the width of the actual video, and the last line of the video
is copied to fill in the lower (Width - Height) lines below the
bottom. Even more interesting is that when the video window is
obscured, then these "extra" lines are the first to be filled in. (And
this, of course, also means that anything that happens to be in the
key color, and placed somewhere less than (Width - Height) pixels
below the video window will be transparent and show the copied last
line instead of the intended color.)

For example, if I again have a 600x400 video, then the overlay is
actually 600x600 with the 400th line copied 200 times at the bottom of
the overlay. If I again obscure the leftmost 200x400 pixels of the
video window (*not* the overlay, it matters if you don't obscure the
entire vertical extent of the video window, but you do not need to
obscure the entire overlay), then the 200 copied lines at the bottom
of the overlay will turn into the key color. If you only obscure the
leftmost 100x400 pixels, then the lower 100 copied lines will turn
into the key color, leaving 100 copied lines.

Perhaps this could be related to the problem reported earlier that
occurs in the version of the savage driver that comes with the last
couple of Xorg-distributions, where after susped/resume, strange
things happen and the visible video window expands to be as high as it
is wide?


Again - none of this happens with the old 1.1.27t. The overlay seems
to be exactly the size of the window, and when part of the window is
obscured, no (visible) part of it reverts to the key color.

Hope all of this makes some sort of sense to you, screenshots are out since
all you get is the key color, but if it would help, I could snap a
picture of the screen, or something?

/Bjorn


More information about the Savage40 mailing list