Keep the VA surface storage live until it is explicitly scheduled
for destruction through vaDestroySurfaces() interface. Otherwise,
subsequent vaPutSurface() calls would have no effect.

This fixes various use cases like: display of interlaced frames
that are not marked for reference, multiple rendering to Pixmap
for EXT_texture_from_pixmap and more precisely interlaced streams.

Signed-off-by: Gwenole Beauchesne <gwenole.beauche...@intel.com>
---
 src/i965_output_dri.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/src/i965_output_dri.c b/src/i965_output_dri.c
index fdd69ce..8102e83 100644
--- a/src/i965_output_dri.c
+++ b/src/i965_output_dri.c
@@ -208,11 +208,6 @@ i965_put_surface_dri(
         dri_vtable->swap_buffer(ctx, dri_drawable);
     obj_surface->flags |= SURFACE_DISPLAYED;
 
-    if ((obj_surface->flags & SURFACE_ALL_MASK) == SURFACE_DISPLAYED) {
-        obj_surface->flags &= ~SURFACE_REF_DIS_MASK;
-        i965_destroy_surface_storage(obj_surface);
-    }
-
     _i965UnlockMutex(&i965->render_mutex);
 
     return VA_STATUS_SUCCESS;
-- 
1.9.1

_______________________________________________
Libva mailing list
Libva@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libva

Reply via email to