[Libva] [PATCH 2/2] VPP: Initialize the uninitialed surface to avoid NULL GPU buffer

Zhao Yakui yakui.zhao at intel.com
Thu Aug 13 23:55:51 PDT 2015


Sometimes the surface allocation is deferred. In such case it should be
checked correctly before it is using. Otherwise the corresponding
GPU buffer is NULL.
This is to fix the regression issue reported by XBMC.

Tested-by: Zaverel <zaverel at free.fr>
Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
---
 src/i965_post_processing.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/i965_post_processing.c b/src/i965_post_processing.c
index 7efb75b..a1c0e4d 100755
--- a/src/i965_post_processing.c
+++ b/src/i965_post_processing.c
@@ -5953,6 +5953,12 @@ i965_proc_picture(VADriverContextP ctx,
         unsigned int saved_filter_flag;
         struct i965_post_processing_context *i965pp_context = i965->pp_context;
 
+        if (obj_surface->fourcc == 0) {
+            i965_check_alloc_surface_bo(ctx, obj_surface, 1,
+                                        VA_FOURCC_NV12,
+                                        SUBSAMPLE_YUV420);
+        }
+
         i965_vpp_clear_surface(ctx, &proc_context->pp_context,
                                obj_surface,
                                pipeline_param->output_background_color);
-- 
1.9.1



More information about the Libva mailing list