diff options
author | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2014-05-09 14:53:30 +0200 |
---|---|---|
committer | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2014-06-06 14:32:41 +0200 |
commit | a840e6403071d397a33e127e8058881a3ef50077 (patch) | |
tree | 93d5118a5b3dbeb57e23e9491555b27ffa96c659 | |
parent | 1f244834dedb7b46863b315a898d8649d01c5f58 (diff) |
render: don't deallocate surface storage of displayed frames.
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@intel.com>
-rw-r--r-- | src/i965_output_dri.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/src/i965_output_dri.c b/src/i965_output_dri.c index 2a812d3..3b24534 100644 --- a/src/i965_output_dri.c +++ b/src/i965_output_dri.c @@ -207,11 +207,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; |