On Tue, May 30, 2017 at 12:34 AM, Pohjolainen, Topi < topi.pohjolai...@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@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