[Libva] [PATCH v4 intel-driver 08/11] render: don't deallocate surface storage of displayed frames.

Gwenole Beauchesne gb.devel at gmail.com
Thu Jun 5 16:46:31 PDT 2014


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.beauchesne at 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



More information about the Libva mailing list