On July 17, 2017 11:17:43 AM "Pohjolainen, Topi"
<topi.pohjolai...@gmail.com> wrote:
On Mon, Jul 17, 2017 at 09:11:53AM -0700, Jason Ekstrand wrote:
On Mon, Jul 17, 2017 at 6:34 AM, Topi Pohjolainen <
topi.pohjolai...@gmail.com> wrote:
> This helps to drop dependency to miptree::total_height which is
> used in brw_miptree_get_vertical_slice_pitch().
>
> This is also readily compatible once miptree itself is isl
> based.
>
> Signed-off-by: Topi Pohjolainen <topi.pohjolai...@intel.com>
> ---
> src/mesa/drivers/dri/i965/brw_tex_layout.c | 2 +-
> src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 24
> ++++++++++++++++++++++--
> src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 9 ---------
> 3 files changed, 23 insertions(+), 12 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_tex_layout.c
> b/src/mesa/drivers/dri/i965/brw_tex_layout.c
> index d06d654797..c76e87bc06 100644
> --- a/src/mesa/drivers/dri/i965/brw_tex_layout.c
> +++ b/src/mesa/drivers/dri/i965/brw_tex_layout.c
> @@ -309,7 +309,7 @@ brw_miptree_get_horizontal_slice_pitch(const struct
> brw_context *brw,
> }
> }
>
> -unsigned
> +static unsigned
> brw_miptree_get_vertical_slice_pitch(const struct brw_context *brw,
> const struct intel_mipmap_tree *mt,
> unsigned level)
> diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> index da5c5128c1..55bb61b598 100644
> --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> @@ -1632,6 +1632,27 @@ update_buffer_image_param(struct brw_context *brw,
> param->stride[0] = _mesa_get_format_bytes(u->_ActualFormat);
> }
>
> +static unsigned
> +get_vertical_slice_pitch(const struct brw_context *brw,
> + const struct intel_mipmap_tree *mt,
> + unsigned level)
> +{
> + struct isl_surf surf;
> +
> + intel_miptree_get_isl_surf(brw, mt, &surf);
> +
> + if ((brw->gen < 9 && mt->target == GL_TEXTURE_3D) ||
> + (brw->gen == 4 && mt->target == GL_TEXTURE_CUBE_MAP)) {
> + const struct isl_extent3d image_align_sa =
> + isl_surf_get_image_alignment_sa(&surf);
> +
> + return ALIGN_NPOT(minify(surf.phys_level0_sa.height, level),
> + image_align_sa.h);
> + }
> +
> + return surf.array_pitch_el_rows;
> +}
>
Why not just switch us over to using isl_surf_fill_image_param? I was
meaning to do that but it just never happened.
I was somewhat hesitant to do that - I was wondering what the isl_view would
need to look like for the "format == ISL_FORMAT_RAW" branch in
update_image_surface().
Should look the same as for the other case. Vulkan just calls it and
doesn't care. Take a look at anv_CreateImageView
> static void
> update_texture_image_param(struct brw_context *brw,
> struct gl_image_unit *u,
> @@ -1658,8 +1679,7 @@ update_texture_image_param(struct brw_context *brw,
> param->stride[1] = mt->pitch / mt->cpp;
> param->stride[2] =
> brw_miptree_get_horizontal_slice_pitch(brw, mt, u->Level);
> - param->stride[3] =
> - brw_miptree_get_vertical_slice_pitch(brw, mt, u->Level);
> + param->stride[3] = get_vertical_slice_pitch(brw, mt, u->Level);
>
> if (mt->tiling == I915_TILING_X) {
> /* An X tile is a rectangular block of 512x8 bytes. */
> diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> index 9098c39116..291050d72e 100644
> --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
> @@ -986,15 +986,6 @@ brw_miptree_get_horizontal_slice_pitch(const struct
> brw_context *brw,
> const struct intel_mipmap_tree *mt,
> unsigned level);
>
> -/**
> - * Vertical distance from one slice to the next in the two-dimensional
> miptree
> - * layout.
> - */
> -unsigned
> -brw_miptree_get_vertical_slice_pitch(const struct brw_context *brw,
> - const struct intel_mipmap_tree *mt,
> - unsigned level);
> -
> bool
> brw_miptree_layout(struct brw_context *brw,
> struct intel_mipmap_tree *mt,
> --
> 2.11.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev