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. > 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