[RFC weston] compositor: optimize/simplify shaders
Pekka Paalanen
ppaalanen at gmail.com
Fri Aug 31 02:27:38 PDT 2012
On Thu, 30 Aug 2012 12:15:52 -0500
Rob Clark <rob.clark at linaro.org> wrote:
> On Thu, Aug 30, 2012 at 6:11 AM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> > Hi Rob,
> >
> > that's definitely interesting. I'm working based on your 'pq' branch,
> > though, because you missed these commits:
> >
> > 1e17e4a compositor: fix blending for full-surface alpha
> > 87af9c8 compositor: specialised fragment shader for RGBX
> > 0c37514 compositor: re-enable full-surface alpha
> > 82ffb58 compositor: fix build against WL_bind_wayland_display extension
>
> oh woops, I quickly pushed 'em to my master branch.. would be a good
> idea to double check that there is nothing missing.
Yup, I can't see anything really missing in the diff.
> > and it seems the 'pq' branch is up to date still.
> >
> > I got these with your 'pq' branch:
> >
> > http://people.collabora.com/~pq/geometry-debug-6.png
> > It appears the clean-up painting paints something wrong, but I haven't
> > been able to reproduce that otherwise. The flower is rotated about 45
> > degrees. Notice the three green pixels down from the word "Thu" in the
> > panel clock. Those pixels flicker when I move the mouse cursor, even
> > though there should not be damage anywhere near. The green pixels are
> > where the surface's top-left corner is.
>
> three green pixels sound like some garbage left on one of the
> flipchain buffers.. I guess that itself is just from the debug lines,
> although the flower itself looks a bit messed up.
No, they flash and are very consistent, and follow the flower, even
when there is no real triangle reaching that point, when I stop
moving. I suspect there is a tiny bunch of at least three vertices.
I will try to reproduce it with the cliptest program, or least verify
with prints if there are extra vertices.
> > http://people.collabora.com/~pq/geometry-debug-7.png
> > This shows a problem with screen-aligned surfaces. The center vertex is
> > not in the center, implying that there are duplicate vertices. Good
> > thing I didn't remove the center vertex yet.
>
> hmm, yeah, this stuff is kinda relying on the duplicate vertex check
> in append_vertex()..
>
> if (x1 == x2) {
> append_vertex(clip(x1, cx1, cx2), clip(y1, cy1, cy2));
> append_vertex(clip(x2, cx1, cx2), clip(y2, cy1, cy2));
> } else if (y1 == y2) {
> append_vertex(clip(x1, cx1, cx2), clip(y1, cy1, cy2));
> append_vertex(clip(x2, cx1, cx2), clip(y2, cy1, cy2));
> } else {
>
> but I guess maybe we end up w/ a duplicate vertex which isn't the last
> vertex.. so this part is probably still not right..
Yeah, I'll try to reproduce problems with cliptest, and get you
screenshots.
Thanks,
pq
More information about the wayland-devel
mailing list