From: Marek Olšák Date: Sun, 12 Feb 2017 14:48:48 +0000 (+0100) Subject: vdpau: skip vlVdpOutputSurfacePutBitsNative with a zero-area rectangle X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0561b3c75af2e4bb216b686bf62ae9d89c584dc8;p=mesa.git vdpau: skip vlVdpOutputSurfacePutBitsNative with a zero-area rectangle This prevents errors: "EE r600_texture.c:1571 r600_texture_transfer_map - failed to create temporary texture to hold untiled copy" Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99542 Tested-by: Kai Wasserbäch Reviewed-by: Kai Wasserbäch Reviewed-by: Christian König --- diff --git a/src/gallium/state_trackers/vdpau/output.c b/src/gallium/state_trackers/vdpau/output.c index 8b26f7a81ab..650628014bd 100644 --- a/src/gallium/state_trackers/vdpau/output.c +++ b/src/gallium/state_trackers/vdpau/output.c @@ -263,6 +263,13 @@ vlVdpOutputSurfacePutBitsNative(VdpOutputSurface surface, pipe_mutex_lock(vlsurface->device->mutex); dst_box = RectToPipeBox(destination_rect, vlsurface->sampler_view->texture); + + /* Check for a no-op. (application bug?) */ + if (!dst_box.width || !dst_box.height) { + pipe_mutex_unlock(vlsurface->device->mutex); + return VDP_STATUS_OK; + } + pipe->texture_subdata(pipe, vlsurface->sampler_view->texture, 0, PIPE_TRANSFER_WRITE, &dst_box, *source_data, *source_pitches, 0);