summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/va/surface.c
diff options
context:
space:
mode:
authorEmil Velikov <[email protected]>2015-11-09 11:23:37 +0000
committerEmil Velikov <[email protected]>2015-11-20 10:58:45 +0000
commit422356ed2f05ef0f5bcdac13899a529df5497357 (patch)
tree15afa10c8f631eca5dcdd59ffac4f6e8a3ccf71c /src/gallium/state_trackers/va/surface.c
parent9eb109f4d3b3b145c544eb69ac21cb69e0a5e2be (diff)
st/va: use the vl_screen dispatch
Signed-off-by: Emil Velikov <[email protected]> Acked-by: Alex Deucher <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/va/surface.c')
-rw-r--r--src/gallium/state_trackers/va/surface.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/gallium/state_trackers/va/surface.c b/src/gallium/state_trackers/va/surface.c
index 589d6860b6a..c052c8f2284 100644
--- a/src/gallium/state_trackers/va/surface.c
+++ b/src/gallium/state_trackers/va/surface.c
@@ -229,6 +229,7 @@ vlVaPutSurface(VADriverContextP ctx, VASurfaceID surface_id, void* draw, short s
struct pipe_screen *screen;
struct pipe_resource *tex;
struct pipe_surface surf_templ, *surf_draw;
+ struct vl_screen *vscreen;
struct u_rect src_rect, *dirty_area;
struct u_rect dst_rect = {destx, destx + destw, desty, desty + desth};
VAStatus status;
@@ -242,17 +243,18 @@ vlVaPutSurface(VADriverContextP ctx, VASurfaceID surface_id, void* draw, short s
return VA_STATUS_ERROR_INVALID_SURFACE;
screen = drv->pipe->screen;
+ vscreen = drv->vscreen;
if(surf->fence) {
screen->fence_finish(screen, surf->fence, PIPE_TIMEOUT_INFINITE);
screen->fence_reference(screen, &surf->fence, NULL);
}
- tex = vl_screen_texture_from_drawable(drv->vscreen, (Drawable)draw);
+ tex = vscreen->texture_from_drawable(vscreen, draw);
if (!tex)
return VA_STATUS_ERROR_INVALID_DISPLAY;
- dirty_area = vl_screen_get_dirty_area(drv->vscreen);
+ dirty_area = vscreen->get_dirty_area(vscreen);
memset(&surf_templ, 0, sizeof(surf_templ));
surf_templ.format = tex->format;
@@ -276,11 +278,8 @@ vlVaPutSurface(VADriverContextP ctx, VASurfaceID surface_id, void* draw, short s
if (status)
return status;
- screen->flush_frontbuffer
- (
- screen, tex, 0, 0,
- vl_screen_get_private(drv->vscreen), NULL
- );
+ screen->flush_frontbuffer(screen, tex, 0, 0,
+ vscreen->get_private(vscreen), NULL);
screen->fence_reference(screen, &surf->fence, NULL);
drv->pipe->flush(drv->pipe, &surf->fence, 0);