On Sun, 11 Mar 2012 19:48:43 -0500
Rob Clark <[email protected]> wrote:

> From: Rob Clark <[email protected]>
> 
> ---
>  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

Attachment: signature.asc
Description: PGP signature

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to