[Mesa-dev] [PATCH 05/30] i965/miptree: Clean up the depth resolve helpers a little
Jason Ekstrand
jason at jlekstrand.net
Wed May 31 17:25:51 UTC 2017
On Tue, May 30, 2017 at 12:34 AM, Pohjolainen, Topi <
topi.pohjolainen at gmail.com> wrote:
> On Fri, May 26, 2017 at 04:30:09PM -0700, Jason Ekstrand wrote:
> > ---
> > src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 70
> ++++++++++++---------------
> > 1 file changed, 30 insertions(+), 40 deletions(-)
> >
> > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> > index 2701201..3a4fd89 100644
> > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> > @@ -1978,23 +1978,30 @@ intel_miptree_set_all_slices_need_depth_resolve(struct
> intel_mipmap_tree *mt,
> > }
> >
> > static bool
> > -intel_miptree_slice_resolve(struct brw_context *brw,
> > - struct intel_mipmap_tree *mt,
> > - uint32_t level,
> > - uint32_t layer,
> > - enum blorp_hiz_op need)
> > +intel_miptree_depth_hiz_resolve(struct brw_context *brw,
> > + struct intel_mipmap_tree *mt,
> > + uint32_t start_level, uint32_t
> num_levels,
> > + uint32_t start_layer, uint32_t
> num_layers,
> > + enum blorp_hiz_op need)
> > {
> > - intel_miptree_check_level_layer(mt, level, layer);
> > + bool did_resolve = false;
> >
> > - struct intel_resolve_map *item =
> > - intel_resolve_map_get(&mt->hiz_map, level, layer);
> > + foreach_list_typed_safe(struct intel_resolve_map, map, link,
> &mt->hiz_map) {
> > + if (map->level < start_level ||
> > + map->level >= (start_level + num_levels) ||
> > + map->layer < start_layer ||
> > + map->layer >= (start_layer + num_layers))
> > + continue;
> >
> > - if (!item || item->need != need)
> > - return false;
> > + if (map->need != need)
> > + continue;
>
> Indentation looks a little odd here.
>
A tab snuck in there somehow. Fixed.
> >
> > - intel_hiz_exec(brw, mt, level, layer, need);
> > - intel_resolve_map_remove(item);
> > - return true;
> > + intel_hiz_exec(brw, mt, map->level, map->layer, need);
> > + intel_resolve_map_remove(map);
> > + did_resolve = true;
> > + }
> > +
> > + return did_resolve;
> > }
> >
> > bool
> > @@ -2003,8 +2010,8 @@ intel_miptree_slice_resolve_hiz(struct
> brw_context *brw,
> > uint32_t level,
> > uint32_t layer)
> > {
> > - return intel_miptree_slice_resolve(brw, mt, level, layer,
> > - BLORP_HIZ_OP_HIZ_RESOLVE);
> > + return intel_miptree_depth_hiz_resolve(brw, mt, level, 1, layer, 1,
> > + BLORP_HIZ_OP_HIZ_RESOLVE);
> > }
> >
> > bool
> > @@ -2013,43 +2020,26 @@ intel_miptree_slice_resolve_depth(struct
> brw_context *brw,
> > uint32_t level,
> > uint32_t layer)
> > {
> > - return intel_miptree_slice_resolve(brw, mt, level, layer,
> > - BLORP_HIZ_OP_DEPTH_RESOLVE);
> > -}
> > -
> > -static bool
> > -intel_miptree_all_slices_resolve(struct brw_context *brw,
> > - struct intel_mipmap_tree *mt,
> > - enum blorp_hiz_op need)
> > -{
> > - bool did_resolve = false;
> > -
> > - foreach_list_typed_safe(struct intel_resolve_map, map, link,
> &mt->hiz_map) {
> > - if (map->need != need)
> > - continue;
> > -
> > - intel_hiz_exec(brw, mt, map->level, map->layer, need);
> > - intel_resolve_map_remove(map);
> > - did_resolve = true;
> > - }
> > -
> > - return did_resolve;
> > + return intel_miptree_depth_hiz_resolve(brw, mt, level, 1, layer, 1,
> > + BLORP_HIZ_OP_DEPTH_RESOLVE);
> > }
> >
> > bool
> > intel_miptree_all_slices_resolve_hiz(struct brw_context *brw,
> > struct intel_mipmap_tree *mt)
> > {
> > - return intel_miptree_all_slices_resolve(brw, mt,
> > - BLORP_HIZ_OP_HIZ_RESOLVE);
> > + return intel_miptree_depth_hiz_resolve(brw, mt,
> > + 0, UINT32_MAX, 0, UINT32_MAX,
> > + BLORP_HIZ_OP_HIZ_RESOLVE);
> > }
> >
> > bool
> > intel_miptree_all_slices_resolve_depth(struct brw_context *brw,
> > struct intel_mipmap_tree *mt)
> > {
> > - return intel_miptree_all_slices_resolve(brw, mt,
> > - BLORP_HIZ_OP_DEPTH_RESOLVE);
> > + return intel_miptree_depth_hiz_resolve(brw, mt,
> > + 0, UINT32_MAX, 0, UINT32_MAX,
> > + BLORP_HIZ_OP_DEPTH_RESOLVE);
> > }
> >
> > enum intel_fast_clear_state
> > --
> > 2.5.0.400.gff86faf
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170531/b28b4e00/attachment.html>
More information about the mesa-dev
mailing list