[Mesa-dev] [PATCH 39/64] isl/state: Add support for OffsetX/Y in surface state
Chad Versace
chad.versace at intel.com
Mon Jun 20 23:46:53 UTC 2016
On Sat 11 Jun 2016, Jason Ekstrand wrote:
> ---
> src/intel/isl/isl.h | 3 +++
> src/intel/isl/isl_surface_state.c | 9 +++++++++
> 2 files changed, 12 insertions(+)
>
> diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h
> index a987482..4dd4a2f 100644
> --- a/src/intel/isl/isl.h
> +++ b/src/intel/isl/isl.h
> @@ -844,6 +844,9 @@ struct isl_surf_fill_state_info {
> * Valid values depend on hardware generation.
> */
> union isl_color_value clear_color;
> +
> + /* Intra-tile offset */
> + uint16_t x_offset, y_offset;
> };
>
> struct isl_buffer_fill_state_info {
> diff --git a/src/intel/isl/isl_surface_state.c b/src/intel/isl/isl_surface_state.c
> index 9bfc55f..65e4b8e 100644
> --- a/src/intel/isl/isl_surface_state.c
> +++ b/src/intel/isl/isl_surface_state.c
> @@ -401,6 +401,15 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state,
> s.MOCS = info->mocs;
> #endif
>
> +#if GEN_GEN > 4 || GEN_IS_G4X
> + const unsigned x_div = 4;
> + const unsigned y_div = GEN_GEN >= 8 ? 4 : 2;
> + assert(info->x_offset % x_div == 0);
> + assert(info->y_offset % y_div == 0);
> + s.XOffset = info->x_offset / x_div;
> + s.YOffset = info->y_offset / y_div;
> +#endif
Perhaps add...
#else
assert(info->x_offset == 0);
assert(info->y_offset == 0);
#endif
Or maybe not. You've thought about it more than I have.
Either way, patch 39 is
Reviewed-by: Chad Versace <chad.versace at intel.com>
More information about the mesa-dev
mailing list