summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhao Yakui <yakui.zhao@intel.com>2013-10-29 16:17:08 +0800
committerYakui Zhao <yakui.zhao@intel.com>2013-10-29 16:17:08 +0800
commit99b7f13ff4fccbfe9139bab68840ec7480888ee2 (patch)
treecd2985fd0b980513a97d4d6f9e16699b0263eee0
parent0791cc168e696c617e35a09c3b3a4896d8daebc7 (diff)
Execute the extensional VPP shader based on passed parameter
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
-rwxr-xr-xsrc/i965_drv_video.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c
index 709e74f..0ebdf7a 100755
--- a/src/i965_drv_video.c
+++ b/src/i965_drv_video.c
@@ -2328,7 +2328,19 @@ i965_EndPicture(VADriverContextP ctx, VAContextID context)
assert(obj_config);
if (obj_context->codec_type == CODEC_PROC) {
+ if (obj_context->codec_state.proc.pipeline_param &&
+ obj_context->codec_state.proc.vppext_param) {
+ WARN_ONCE("pipeline_param and vppext_param are multually exclusive\n");
+ return VA_STATUS_ERROR_INVALID_PARAMETER;
+ }
assert(VAEntrypointVideoProc == obj_config->entrypoint);
+#ifdef HAVE_OCL_VPP
+ if (obj_context->codec_state.proc.vppext_param) {
+ return vpp_opencl_execute_kernel(ctx,
+ obj_context->codec_state.proc.current_render_target,
+ obj_context->codec_state.proc.vppext_param);
+ }
+#endif
} else if (obj_context->codec_type == CODEC_ENC) {
assert(VAEntrypointEncSlice == obj_config->entrypoint);