[PATCH 00/15] weston scaling support

Kristian Høgsberg hoegsberg at gmail.com
Wed May 22 17:57:47 PDT 2013


On Wed, May 22, 2013 at 02:41:24PM +0200, alexl at redhat.com wrote:
> From: Alexander Larsson <alexl at redhat.com>
> 
> This adds support to weston (X11 and DRM backends) for output
> scale and buffer_scale. It also contains some work on the
> example clients to make them support buffer scaling.
> 
> I think the support is fairly comprehensive, although I'm aware of
> a few outstanding issues:
> 
> * The drm backend doesn't upscale pointers on the DRM backend
> * There is no support in the desktop shell for setting up a higher resolution
>   cursor image on scaled outputs
> * I did not yet look at the screenshoter/read_pixels APIs

Two more: 

 * window.c pre-renders decorations at a fixed 1-to-1 pixel size which
   then get scaled up.  The rounded corners look blocky when you use a
   scale > 1.

 * Don't send out new wl_output events to clients that bind with
   version 1.  For this I think we want to extend wl_resource with an
   int version; field.

> Overall I think the approach is working out well, but an obvious
> issue is how we handle scaling wrt modes. I'll bring this up in
> another mail.

I read through the latest wayland protocol patches and the discussion
around them and didn't seen anything I didn't like.  I think the
approach here is good and agree with the consensus.  This patch series
looks great too and I like the improvements to the pixman renderer and
the compositor-x11.c optimization.

I've applied both wayland and weston patches.  The protocol is not set
in stone, but the 1.2 release is coming up end of June, and which
point we lock it down.  So we can tweak it further, but at least the
bulk of the work is now landed.

thanks,
Kristian

> The series is also availible in the scale branch here: (eventually)
>  http://cgit.freedesktop.org/~alexl/weston/
> 
> Alexander Larsson (15):
>   window: Support transform in widget_cairo_create()
>   transformed: Rely on transformation in widget_cairo_create
>   window: Track output scales
>   window: allow setting a buffer scale on a window
>   window: Apply buffer_scale automatically in widget_cairo_create
>   transformed: Use the scale factor from the output
>   window: Store server_allocation in surface size
>   desktop-shell: Respect output scale and translate
>   window: Add window_get_output_scale()
>   terminal: Handle output transform
>   transformed: Add keyboard shortcuts to change transform
>   pixman-renderer: Fix up transform handling
>   compositor: Support output/buffer scaling
>   compositor-x11: Only repaint the damaged region
>   compositor-drm: Support output scaling
> 
>  clients/desktop-shell.c   |  75 ++++++--
>  clients/terminal.c        |  13 +-
>  clients/transformed.c     | 124 ++++++-------
>  clients/window.c          | 237 ++++++++++++++++++++++---
>  clients/window.h          |  13 ++
>  src/compositor-drm.c      |  88 +++++++---
>  src/compositor-fbdev.c    |   3 +-
>  src/compositor-headless.c |   2 +-
>  src/compositor-rpi.c      |   3 +-
>  src/compositor-wayland.c  |   2 +-
>  src/compositor-x11.c      | 166 ++++++++++++++++--
>  src/compositor.c          | 110 +++++++++---
>  src/compositor.h          |  18 +-
>  src/gl-renderer.c         |  21 +--
>  src/pixman-renderer.c     | 436 ++++++++++++++++++++++++++++++----------------
>  15 files changed, 977 insertions(+), 334 deletions(-)
> 
> -- 
> 1.8.1.4
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list