[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