diff --git a/src/gallium/auxiliary/vl/vl_compositor_cs.c b/src/gallium/auxiliary/vl/vl_compositor_cs.c index 0706cc84dad..029449f9dd1 100644 --- a/src/gallium/auxiliary/vl/vl_compositor_cs.c +++ b/src/gallium/auxiliary/vl/vl_compositor_cs.c @@ -711,10 +711,12 @@ draw_layers(struct vl_compositor *c, drawn.area = calc_drawn_area(s, layer); drawn.scale_x = layer->viewport.scale[0] / - (float)layer->sampler_views[0]->texture->width0; + (float)layer->sampler_views[0]->texture->width0 * + (layer->src.br.x - layer->src.tl.x); drawn.scale_y = layer->viewport.scale[1] / ((float)layer->sampler_views[0]->texture->height0 * - (s->interlaced ? 2.0 : 1.0)); + (s->interlaced ? 2.0 : 1.0) * + (layer->src.br.y - layer->src.tl.y)); drawn.translate_x = (int)layer->viewport.translate[0]; drawn.translate_y = (int)layer->viewport.translate[1];