[PATCH 3/5] drm: plane src coords are 16.16 fixed point

Jesse Barnes jbarnes at virtuousgeek.org
Tue Mar 20 10:48:55 PDT 2012


On Sun, 11 Mar 2012 19:48:43 -0500
Rob Clark <rob.clark at linaro.org> wrote:

> From: Rob Clark <rob at ti.com>
> 
> ---
>  src/compositor-drm.c |    9 ++++-----
>  1 files changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/src/compositor-drm.c b/src/compositor-drm.c
> index 500ec15..cf9a937 100644
> --- a/src/compositor-drm.c
> +++ b/src/compositor-drm.c
> @@ -538,13 +538,12 @@ drm_output_prepare_overlay_surface(struct weston_output *output_base,
>  				  &output_base->region);
>  	pixman_region32_translate(&src_rect, -es->geometry.x, -es->geometry.y);
>  	box = pixman_region32_extents(&src_rect);
> -	s->src_x = box->x1;
> -	s->src_y = box->y1;
> -	s->src_w = box->x2 - box->x1;
> -	s->src_h = box->y2 - box->y1;
> +	s->src_x = box->x1 << 16;
> +	s->src_y = box->y1 << 16;
> +	s->src_w = (box->x2 - box->x1) << 16;
> +	s->src_h = (box->y2 - box->y1) << 16;
>  	pixman_region32_fini(&src_rect);
>  
> -
>  	wl_list_insert(es->buffer->resource.destroy_listener_list.prev,
>  		       &s->pending_destroy_listener.link);
>  	return 0;

This is correct, but why hasn't testing shown this to be broken?  We've
tested windows with a nonzero width & height, and also partially
offscreen windows, and they worked...

Somewhere must be ignoring the shifts, but it looks like we honor them
in i915... ah no it looks like we don't treat src_w/src_h that way,
just x & y.

Guess we should fix the kernel driver before we have hardware that
actually supports alpha so this will work nicely!

-- 
Jesse Barnes, Intel Open Source Technology Center
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20120320/7cef7525/attachment-0001.pgp>


More information about the wayland-devel mailing list