X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fdrivers%2Fdri%2Fintel%2Fintel_mipmap_tree.h;h=b7376e03055f22c0d5baa7f0a71cbd3a77ba6569;hb=bdf13dc8324c391b7d34f8bdaea72c4452ab7edb;hp=96be87a3598cf81318abf77ade24871ebc72d40b;hpb=6d6bd2ac7ccf4e78f857cc114c04a840ba6785dd;p=mesa.git diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h index 96be87a3598..b7376e03055 100644 --- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h +++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h @@ -152,6 +152,15 @@ struct intel_mipmap_level * intel_miptree_map/unmap on this slice. */ struct intel_miptree_map *map; + + /** + * \brief Is HiZ enabled for this slice? + * + * If \c mt->level[l].slice[s].has_hiz is set, then (1) \c mt->hiz_mt + * has been allocated and (2) the HiZ memory corresponding to this slice + * resides at \c mt->hiz_mt->level[l].slice[s]. + */ + bool has_hiz; } *slice; }; @@ -333,9 +342,11 @@ struct intel_mipmap_tree /** * \brief HiZ miptree * - * This is non-null only if HiZ is enabled for this miptree. + * The hiz miptree contains the miptree's hiz buffer. To allocate the hiz + * miptree, use intel_miptree_alloc_hiz(). * - * \see intel_miptree_alloc_hiz() + * To determine if hiz is enabled, do not check this pointer. Instead, use + * intel_miptree_slice_has_hiz(). */ struct intel_mipmap_tree *hiz_mt; @@ -482,7 +493,7 @@ void intel_miptree_set_image_offset(struct intel_mipmap_tree *mt, void intel_miptree_copy_teximage(struct intel_context *intel, struct intel_texture_image *intelImage, - struct intel_mipmap_tree *dst_mt); + struct intel_mipmap_tree *dst_mt, bool invalidate); /** * Copy the stencil data from \c mt->stencil_mt->region to \c mt->region for @@ -529,8 +540,12 @@ intel_miptree_alloc_mcs(struct intel_context *intel, bool intel_miptree_alloc_hiz(struct intel_context *intel, - struct intel_mipmap_tree *mt, - GLuint num_samples); + struct intel_mipmap_tree *mt); + +bool +intel_miptree_slice_has_hiz(struct intel_mipmap_tree *mt, + uint32_t level, + uint32_t layer); void intel_miptree_slice_set_needs_hiz_resolve(struct intel_mipmap_tree *mt, @@ -590,6 +605,12 @@ void i945_miptree_layout(struct intel_mipmap_tree *mt); void brw_miptree_layout(struct intel_context *intel, struct intel_mipmap_tree *mt); +void *intel_miptree_map_raw(struct intel_context *intel, + struct intel_mipmap_tree *mt); + +void intel_miptree_unmap_raw(struct intel_context *intel, + struct intel_mipmap_tree *mt); + void intel_miptree_map(struct intel_context *intel, struct intel_mipmap_tree *mt,