LGTM.
> Signed-off-by: Zhao Yakui <[email protected]> > --- > 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_ */ _______________________________________________ Libva mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libva
