From 6cf0581159a33f3dc10be38cdc7ab94d9cbacc1e Mon Sep 17 00:00:00 2001 From: Emeric Grange Date: Mon, 12 Sep 2011 23:39:32 +0200 Subject: [PATCH] st/vdpau: Output surfaces that are too large to fit into the display target will be clipped MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Emeric Grange Reviewed-by: Christian König --- src/gallium/state_trackers/vdpau/presentation.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/gallium/state_trackers/vdpau/presentation.c b/src/gallium/state_trackers/vdpau/presentation.c index b3b543b4a80..d83dde647ee 100644 --- a/src/gallium/state_trackers/vdpau/presentation.c +++ b/src/gallium/state_trackers/vdpau/presentation.c @@ -185,6 +185,7 @@ vlVdpPresentationQueueDisplay(VdpPresentationQueue presentation_queue, vlVdpPresentationQueue *pq; vlVdpOutputSurface *surf; struct pipe_surface *drawable_surface; + struct pipe_video_rect vo_rect; pq = vlGetDataHTAB(presentation_queue); if (!pq) @@ -198,9 +199,14 @@ vlVdpPresentationQueueDisplay(VdpPresentationQueue presentation_queue, if (!surf) return VDP_STATUS_INVALID_HANDLE; + vo_rect.x = 0; + vo_rect.y = 0; + vo_rect.w = clip_width; + vo_rect.h = clip_height; + vl_compositor_clear_layers(&pq->compositor); vl_compositor_set_rgba_layer(&pq->compositor, 0, surf->sampler_view, NULL, NULL); - vl_compositor_render(&pq->compositor, drawable_surface, NULL, NULL, true); + vl_compositor_render(&pq->compositor, drawable_surface, NULL, &vo_rect, true); pq->device->context->pipe->screen->flush_frontbuffer ( -- 2.30.2