[Mesa-dev] [PATCH 09/12] intel/blorp: Internally expose surf_convert_to_uncompressed
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Tue Sep 19 13:53:44 UTC 2017
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
On 15/09/17 17:01, Jason Ekstrand wrote:
> ---
> src/intel/blorp/blorp_blit.c | 29 ++++++++++++++++-------------
> src/intel/blorp/blorp_priv.h | 5 +++++
> 2 files changed, 21 insertions(+), 13 deletions(-)
>
> diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c
> index 9c921cc..11c2116a 100644
> --- a/src/intel/blorp/blorp_blit.c
> +++ b/src/intel/blorp/blorp_blit.c
> @@ -2325,11 +2325,11 @@ bitcast_color_value_to_uint(union isl_color_value color,
> return bits;
> }
>
> -static void
> -surf_convert_to_uncompressed(const struct isl_device *isl_dev,
> - struct brw_blorp_surface_info *info,
> - uint32_t *x, uint32_t *y,
> - uint32_t *width, uint32_t *height)
> +void
> +blorp_surf_convert_to_uncompressed(const struct isl_device *isl_dev,
> + struct brw_blorp_surface_info *info,
> + uint32_t *x, uint32_t *y,
> + uint32_t *width, uint32_t *height)
> {
> const struct isl_format_layout *fmtl =
> isl_format_get_layout(info->surf.format);
> @@ -2356,10 +2356,12 @@ surf_convert_to_uncompressed(const struct isl_device *isl_dev,
> *height = DIV_ROUND_UP(*height, fmtl->bh);
> }
>
> - assert(*x % fmtl->bw == 0);
> - assert(*y % fmtl->bh == 0);
> - *x /= fmtl->bw;
> - *y /= fmtl->bh;
> + if (x || y) {
> + assert(*x % fmtl->bw == 0);
> + assert(*y % fmtl->bh == 0);
> + *x /= fmtl->bw;
> + *y /= fmtl->bh;
> + }
>
> info->surf.logical_level0_px.width =
> DIV_ROUND_UP(info->surf.logical_level0_px.width, fmtl->bw);
> @@ -2477,14 +2479,15 @@ blorp_copy(struct blorp_batch *batch,
> isl_format_get_layout(params.dst.view.format)->channels.r.bits;
>
> if (src_fmtl->bw > 1 || src_fmtl->bh > 1) {
> - surf_convert_to_uncompressed(batch->blorp->isl_dev, ¶ms.src,
> - &src_x, &src_y, &src_width, &src_height);
> + blorp_surf_convert_to_uncompressed(batch->blorp->isl_dev, ¶ms.src,
> + &src_x, &src_y,
> + &src_width, &src_height);
> wm_prog_key.need_src_offset = true;
> }
>
> if (dst_fmtl->bw > 1 || dst_fmtl->bh > 1) {
> - surf_convert_to_uncompressed(batch->blorp->isl_dev, ¶ms.dst,
> - &dst_x, &dst_y, NULL, NULL);
> + blorp_surf_convert_to_uncompressed(batch->blorp->isl_dev, ¶ms.dst,
> + &dst_x, &dst_y, NULL, NULL);
> wm_prog_key.need_dst_offset = true;
> }
>
> diff --git a/src/intel/blorp/blorp_priv.h b/src/intel/blorp/blorp_priv.h
> index 81bf8c6..7bbf0f0 100644
> --- a/src/intel/blorp/blorp_priv.h
> +++ b/src/intel/blorp/blorp_priv.h
> @@ -74,6 +74,11 @@ brw_blorp_surface_info_init(struct blorp_context *blorp,
> void
> blorp_surf_convert_to_single_slice(const struct isl_device *isl_dev,
> struct brw_blorp_surface_info *info);
> +void
> +blorp_surf_convert_to_uncompressed(const struct isl_device *isl_dev,
> + struct brw_blorp_surface_info *info,
> + uint32_t *x, uint32_t *y,
> + uint32_t *width, uint32_t *height);
>
>
> struct brw_blorp_coord_transform
More information about the mesa-dev
mailing list