[Libva] [PATCH 3/8] Add one API to initialize MEDIA_OBJECT_WALKER parameter for video post-processing

Sean V Kelley sean.v.kelley at intel.com
Mon Nov 14 22:14:45 UTC 2016


On Wed, Nov 9, 2016 at 11:39 AM, Zhao Yakui <yakui.zhao at intel.com> wrote:
> Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>


lgtm

Sean

> ---
>  src/i965_gpe_utils.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
>  src/i965_gpe_utils.h | 14 ++++++++++++++
>  2 files changed, 62 insertions(+)
>
> diff --git a/src/i965_gpe_utils.c b/src/i965_gpe_utils.c
> index 3cd41e8..30529e1 100644
> --- a/src/i965_gpe_utils.c
> +++ b/src/i965_gpe_utils.c
> @@ -2082,3 +2082,51 @@ gen9_gpe_media_object_walker(VADriverContextP ctx,
>
>      ADVANCE_BATCH(batch);
>  }
> +
> +
> +void
> +intel_vpp_init_media_object_walker_parameter(struct intel_vpp_kernel_walker_parameter *kernel_walker_param,
> +                                        struct gpe_media_object_walker_parameter *walker_param)
> +{
> +    memset(walker_param, 0, sizeof(*walker_param));
> +
> +    walker_param->use_scoreboard = kernel_walker_param->use_scoreboard;
> +
> +    walker_param->block_resolution.x = kernel_walker_param->resolution_x;
> +    walker_param->block_resolution.y = kernel_walker_param->resolution_y;
> +
> +    walker_param->global_resolution.x = kernel_walker_param->resolution_x;
> +    walker_param->global_resolution.y = kernel_walker_param->resolution_y;
> +
> +    walker_param->global_outer_loop_stride.x = kernel_walker_param->resolution_x;
> +    walker_param->global_outer_loop_stride.y = 0;
> +
> +    walker_param->global_inner_loop_unit.x = 0;
> +    walker_param->global_inner_loop_unit.y = kernel_walker_param->resolution_y;
> +
> +    walker_param->local_loop_exec_count = 0xFFFF;  //MAX VALUE
> +    walker_param->global_loop_exec_count = 0xFFFF;  //MAX VALUE
> +
> +    if (kernel_walker_param->no_dependency) {
> +        /* The no_dependency is used for VPP */
> +        walker_param->scoreboard_mask = 0;
> +        walker_param->use_scoreboard = 0;
> +        // Raster scan walking pattern
> +        walker_param->local_outer_loop_stride.x = 0;
> +        walker_param->local_outer_loop_stride.y = 1;
> +        walker_param->local_inner_loop_unit.x = 1;
> +        walker_param->local_inner_loop_unit.y = 0;
> +        walker_param->local_end.x = kernel_walker_param->resolution_x - 1;
> +        walker_param->local_end.y = 0;
> +    } else {
> +        walker_param->local_end.x = 0;
> +        walker_param->local_end.y = 0;
> +
> +        // 26 degree
> +        walker_param->scoreboard_mask = 0x0F;
> +        walker_param->local_outer_loop_stride.x = 1;
> +        walker_param->local_outer_loop_stride.y = 0;
> +        walker_param->local_inner_loop_unit.x = -2;
> +        walker_param->local_inner_loop_unit.y = 1;
> +    }
> +}
> diff --git a/src/i965_gpe_utils.h b/src/i965_gpe_utils.h
> index c56d3d5..383fcdf 100644
> --- a/src/i965_gpe_utils.h
> +++ b/src/i965_gpe_utils.h
> @@ -508,4 +508,18 @@ gen9_gpe_media_object_walker(VADriverContextP ctx,
>                               struct intel_batchbuffer *batch,
>                               struct gpe_media_object_walker_parameter *param);
>
> +
> +struct intel_vpp_kernel_walker_parameter
> +{
> +    unsigned int                use_scoreboard;
> +    unsigned int                scoreboard_mask;
> +    unsigned int                no_dependency;
> +    unsigned int                resolution_x;
> +    unsigned int                resolution_y;
> +};
> +
> +extern void
> +intel_vpp_init_media_object_walker_parameter(struct intel_vpp_kernel_walker_parameter *kernel_walker_param,
> +                                             struct gpe_media_object_walker_parameter *walker_param);
> +
>  #endif /* _I965_GPE_UTILS_H_ */
> --
> 2.8.3
>
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libva



-- 
Sean V. Kelley <sean.v.kelley at intel.com>
Open Source Technology Center / SSG
Intel Corp.


More information about the Libva mailing list