Hi,

I think I saw mentioned that EXA is disabled at the moment?
Anyway, I presume that is only temporary.

While working on the chrome driver I found a bug that (at least
looking at the code) looks like it would also affect openchrome.
The issue can be seen with icons in the GNOME fallback system tray -
they partially repeat outside their bounds. It can also be seen with a
small test app at http://dev.laptop.org/ticket/12138

The problem is that EXA asks us to work outside of the coordinates of
the source pixmap. The current driver/hardware behaviour here is
tiling: the out-of-bounds coordinate is wrapped into the bounds of the
source pixmap and that pixel value is used.

By some random messing around I found that textureModesT/textureModesS
controls what the hardware does w.r.t. out-of-bounds pixel accesses,
and actually the constant values for that field map exactly to the
pSrcPicture->repeat values from the render spec

==========
9. Source and Mask Transformations

When fetching pixels from the source or mask pictures, Render provides four
options for pixel values which fall outside the drawable (this includes
pixels within a window geometry obscured by other windows).

 +      None.  Missing values are replaced with transparent.

 +      Pad.  Replace missing pixels with the nearest available
        pixel.  Where multiple pixels are equidistant, select
        those with smallest Y and then smallest X coordinates

 +      Normal.  Select the pixel which would appear were the
        drawable tiled to enclose the missing coordinate.  If
        the tiling doesn't cover the coordinate, use the
        selected Constant or Nearest mode.

 *      Reflect.  Select the pixel which would appear were the
        drawable tiled to enclose the missing coordinate in such a
        way that tiles in even numbered columns are reflected in the Y
        axis, and tiles in even numbered rows are reflected in the X
        axis. Tiles that in both an even numbered row and an even
        numbered column are reflected in both axes.
==========

The chrome fix is here:
http://dev.laptop.org/git/users/jnettlet/xf86-video-chrome/commit/?id=6704c70744372dc8e62b8fa700f93fab2ac9504d
which can probably be applied to openchrome as well without much trouble.

Thanks
Daniel
_______________________________________________
Openchrome-devel mailing list
Openchrome-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/openchrome-devel

Reply via email to