From 462647453ca2c245a51483f38f5fe21ea5126f80 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christian=20K=C3=B6nig?= Date: Tue, 9 Apr 2013 18:36:22 +0200 Subject: [PATCH] st/vdpau: fix subtitle related bug v2 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Drawing subtitles didn't increased the dirty area of the surface. Reported and tested by freeedrich on irc. v2: don't clear the surface Signed-off-by: Christian König --- src/gallium/state_trackers/vdpau/output.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/state_trackers/vdpau/output.c b/src/gallium/state_trackers/vdpau/output.c index 8237eaceb26..df0f45856f9 100644 --- a/src/gallium/state_trackers/vdpau/output.c +++ b/src/gallium/state_trackers/vdpau/output.c @@ -383,6 +383,7 @@ vlVdpOutputSurfacePutBitsIndexed(VdpOutputSurface surface, vl_compositor_set_palette_layer(cstate, compositor, 0, sv_idx, sv_tbl, NULL, NULL, false); vl_compositor_set_layer_dst_area(cstate, 0, RectToPipe(destination_rect, &dst_rect)); vl_compositor_render(cstate, compositor, vlsurface->surface, NULL); + vl_compositor_reset_dirty_area(&vlsurface->dirty_area); pipe_sampler_view_reference(&sv_idx, NULL); pipe_sampler_view_reference(&sv_tbl, NULL); @@ -489,6 +490,7 @@ vlVdpOutputSurfacePutBitsYCbCr(VdpOutputSurface surface, vl_compositor_set_buffer_layer(cstate, compositor, 0, vbuffer, NULL, NULL, VL_COMPOSITOR_WEAVE); vl_compositor_set_layer_dst_area(cstate, 0, RectToPipe(destination_rect, &dst_rect)); vl_compositor_render(cstate, compositor, vlsurface->surface, NULL); + vl_compositor_reset_dirty_area(&vlsurface->dirty_area); vbuffer->destroy(vbuffer); pipe_mutex_unlock(vlsurface->device->mutex); @@ -659,6 +661,7 @@ vlVdpOutputSurfaceRenderOutputSurface(VdpOutputSurface destination_surface, ColorsToPipe(colors, flags, vlcolors)); vl_compositor_set_layer_dst_area(cstate, 0, RectToPipe(destination_rect, &dst_rect)); vl_compositor_render(cstate, compositor, dst_vlsurface->surface, NULL); + vl_compositor_reset_dirty_area(&dst_vlsurface->dirty_area); context->delete_blend_state(context, blend); pipe_mutex_unlock(dst_vlsurface->device->mutex); @@ -718,6 +721,7 @@ vlVdpOutputSurfaceRenderBitmapSurface(VdpOutputSurface destination_surface, ColorsToPipe(colors, flags, vlcolors)); vl_compositor_set_layer_dst_area(cstate, 0, RectToPipe(destination_rect, &dst_rect)); vl_compositor_render(cstate, compositor, dst_vlsurface->surface, NULL); + vl_compositor_reset_dirty_area(&dst_vlsurface->dirty_area); context->delete_blend_state(context, blend); pipe_mutex_unlock(dst_vlsurface->device->mutex); -- 2.30.2