OSDN Git Service

VPP: Initialize the uninitialed surface to avoid NULL GPU buffer
authorZhao Yakui <yakui.zhao@intel.com>
Fri, 14 Aug 2015 04:13:13 +0000 (12:13 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Sun, 6 Sep 2015 07:13:57 +0000 (15:13 +0800)
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@free.fr>
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
(cherry picked from commit 7c47a8f74878904e0d2fbb5da966552f783d74ab)

src/i965_post_processing.c

index 7efb75b..a1c0e4d 100755 (executable)
@@ -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);