[PATCH weston 0/8] Fix pixman-renderer cropping

Derek Foreman derekf at osg.samsung.com
Fri Mar 6 12:08:50 PST 2015


On 06/03/15 05:03 AM, Pekka Paalanen wrote:
> From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> 
> Hi,
> 
> this is a series of relatively small changes to the Pixman-renderer, with the
> major goals of a) clean up the draw_view/repaint_region machinery, and b)
> properly implement source clipping. This is a follow-up to
> http://lists.freedesktop.org/archives/wayland-devel/2015-March/020354.html

Really good stuff here.

Replied to some individual patches with suggestions.

Reviewed-By: Derek Foreman <derekf at osg.samsung.com>

For all except 2, 5, 6.

Would like to see 6 split into refactor + functional.

Would like to see the unimplemented bits of 5 moved to 7 where they're
implemented.

Don't like 2 because I think it's already been done better and I'll just
have to rebase a bunch of stuff because of it.  ;)

> Before this series, you can see misrending in a particular case: launch Weston
> with any visible backend using the Pixman-renderer, start weston-scaler and
> rotate its window. Weston-scaler uses wl_viewport to crop the buffer so that no
> red should appear. When rotated, Pixman-renderer fails to crop properly, and
> the red area becomes visible.
> 
> This series fixes that case, and as a last step also implements the view
> scissor for weston_view_set_mask() to be used by ivi-shell.
> 
> The patch series can be found at:
> http://cgit.collabora.com/git/user/pq/weston.git/log/?h=pixmancomplex-2
> 
> I have tested that branch to show correct rendering all the cases:
> - weston-terminal (has blended and opaque regions)
> - weston-scaler (uses wl_viewport cropping)
> while their windows are:
> - in a normal state
> - translucent (Mod+Alt+MouseWheel)
> - rotated (Mod+RightButtonDrag)
> - rotated and translucent
> So all the combinations of those appear drawn right.
> 
> Additionally, I have tested that hacking ivi-shell to clip a window works
> right.  This test was done with the branch:
> http://cgit.collabora.com/git/user/pq/weston.git/log/?h=viewclip-5
> which contains the non-upstreamable hacks. I ran Weston with Pixman-renderer
> and ivi-shell, and then started a clipped app with:
> 	$ IVI_ID=555 ./weston-clickdot
> This triggers the hacked hardcoded view clip.
> 
> 
> Thanks,
> pq
> 
> Pekka Paalanen (8):
>   compositor: add weston_surface_to_buffer_region()
>   pixman-renderer: put transformation computation into function
>   pixman-renderer: refactor into region_intersect_only_translation()
>   pixman-renderer: add view_transformation_is_translation()
>   pixman-renderer: change repaint_region() arguments
>   pixman-renderer: move code to draw_view_translated()
>   pixman-renderer: implement source clipping
>   pixman-renderer: implement view scissor
> 
>  src/compositor.c      |  36 ++++++
>  src/compositor.h      |   5 +
>  src/pixman-renderer.c | 342 +++++++++++++++++++++++++++++++++++++++-----------
>  3 files changed, 308 insertions(+), 75 deletions(-)
> 



More information about the wayland-devel mailing list