diff options
author | Chad Versace <[email protected]> | 2011-11-15 18:20:02 -0800 |
---|---|---|
committer | Chad Versace <[email protected]> | 2011-11-22 10:50:49 -0800 |
commit | 2945abea338031cbe90665df60152982bfca6177 (patch) | |
tree | e041a631c665cbe36c7d853bbb7f6e26dfaeb6b1 /src/mesa/drivers/dri/intel/intel_mipmap_tree.h | |
parent | cf5e08c8e41473467a8732fc834cec52f8b10dc8 (diff) |
intel: Add resolve functions for miptrees
Add functions that
- set a miptree slice as needing a resolve
- resolve a single slice of a miptree
- resolve all slices of a miptree
Reviewed-by: Eric Anholt <[email protected]>
Signed-off-by: Chad Versace <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/intel/intel_mipmap_tree.h')
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_mipmap_tree.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h index 9531f20297c..2cecd29f33e 100644 --- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h +++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h @@ -285,14 +285,71 @@ intel_miptree_s8z24_gather(struct intel_context *intel, uint32_t layer); /** + * \name Miptree HiZ functions + * \{ + * + * It is safe to call the "slice_set_need_resolve" and "slice_resolve" + * functions on a miptree without HiZ. In that case, each function is a no-op. + */ + +/** * \brief Allocate the miptree's embedded HiZ miptree. * \see intel_mipmap_tree:hiz_mt * \return false if allocation failed */ + bool intel_miptree_alloc_hiz(struct intel_context *intel, struct intel_mipmap_tree *mt); +void +intel_miptree_slice_set_needs_hiz_resolve(struct intel_mipmap_tree *mt, + uint32_t level, + uint32_t depth); +void +intel_miptree_slice_set_needs_depth_resolve(struct intel_mipmap_tree *mt, + uint32_t level, + uint32_t depth); +void +intel_miptree_all_slices_set_need_hiz_resolve(struct intel_mipmap_tree *mt); + +void +intel_miptree_all_slices_set_need_depth_resolve(struct intel_mipmap_tree *mt); + +/** + * \return false if no resolve was needed + */ +bool +intel_miptree_slice_resolve_hiz(struct intel_context *intel, + struct intel_mipmap_tree *mt, + unsigned int level, + unsigned int depth); + +/** + * \return false if no resolve was needed + */ +bool +intel_miptree_slice_resolve_depth(struct intel_context *intel, + struct intel_mipmap_tree *mt, + unsigned int level, + unsigned int depth); + +/** + * \return false if no resolve was needed + */ +bool +intel_miptree_all_slices_resolve_hiz(struct intel_context *intel, + struct intel_mipmap_tree *mt); + +/** + * \return false if no resolve was needed + */ +bool +intel_miptree_all_slices_resolve_depth(struct intel_context *intel, + struct intel_mipmap_tree *mt); + +/**\}*/ + /* i915_mipmap_tree.c: */ void i915_miptree_layout(struct intel_mipmap_tree *mt); |