gallium: unify transfer functions
[mesa.git] / src / gallium / state_trackers / vdpau / output.c
index 5b25e63d28e48703dd382563619b638be6922862..dd3c1a834bba84c371cdfb7f3239038305019f64 100644 (file)
@@ -207,15 +207,8 @@ vlVdpOutputSurfaceGetBitsNative(VdpOutputSurface surface,
 
    res = vlsurface->sampler_view->texture;
    box = RectToPipeBox(source_rect, res);
-   transfer = pipe->get_transfer(pipe, res, 0, PIPE_TRANSFER_READ, &box);
-   if (transfer == NULL) {
-      pipe_mutex_unlock(vlsurface->device->mutex);
-      return VDP_STATUS_RESOURCES;
-   }
-
-   map = pipe_transfer_map(pipe, transfer);
-   if (map == NULL) {
-      pipe_transfer_destroy(pipe, transfer);
+   map = pipe->transfer_map(pipe, res, 0, PIPE_TRANSFER_READ, &box, &transfer);
+   if (!map) {
       pipe_mutex_unlock(vlsurface->device->mutex);
       return VDP_STATUS_RESOURCES;
    }
@@ -224,7 +217,6 @@ vlVdpOutputSurfaceGetBitsNative(VdpOutputSurface surface,
                   box.width, box.height, map, transfer->stride, 0, 0);
 
    pipe_transfer_unmap(pipe, transfer);
-   pipe_transfer_destroy(pipe, transfer);
    pipe_mutex_unlock(vlsurface->device->mutex);
 
    return VDP_STATUS_OK;