summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2011-11-30 08:41:52 -0800
committerEric Anholt <[email protected]>2011-12-07 13:38:54 -0800
commit5b27e44652119fd01fe93759e2c82348f4b6d707 (patch)
tree17786e3c3b38ee9d744d6493e25d77b983c0e72c /src
parent96159c37e3e8c966dba7cf7fe70875372dd12293 (diff)
intel: Update comment about how depth/stencil miptrees are handled.
This evolved over several commits, and I also wanted to document some new information about how we handle formats. Reviewed-by: Chad Versace <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/intel/intel_mipmap_tree.h24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
index aa95f7b9e77..24c00ac1071 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
@@ -139,6 +139,19 @@ struct intel_mipmap_tree
/* Effectively the key:
*/
GLenum target;
+
+ /**
+ * Generally, this is just the same as the gl_texture_image->TexFormat or
+ * gl_renderbuffer->Format.
+ *
+ * However, for textures and renderbuffers with packed depth/stencil formats
+ * on hardware where we want or need to use separate stencil, there will be
+ * two miptrees for storing the data. If the depthstencil texture or rb is
+ * MESA_FORMAT_Z32_FLOAT_X24S8, then mt->format will be
+ * MESA_FORMAT_Z32_FLOAT, otherwise for MESA_FORMAT_S8_Z24 objects it will be
+ * MESA_FORMAT_S8_Z24 (textures) or MESA_FORMAT_X8_Z24 (renderbuffers).
+ * mt->stencil_mt->format will always be MESA_FORMAT_S8.
+ */
gl_format format;
/**
@@ -191,13 +204,12 @@ struct intel_mipmap_tree
/**
* \brief Stencil miptree for depthstencil textures.
*
- * This miptree is used for depthstencil textures that require separate
- * stencil. The stencil miptree's data is the golden copy of the
- * parent miptree's stencil bits. When necessary, we scatter/gather the
- * stencil bits between the parent miptree and the stencil miptree.
+ * This miptree is used for depthstencil textures and renderbuffers that
+ * require separate stencil. It always has the true copy of the stencil
+ * bits, regardless of mt->format.
*
- * \see intel_miptree_s8z24_scatter()
- * \see intel_miptree_s8z24_gather()
+ * \see intel_miptree_map_depthstencil()
+ * \see intel_miptree_unmap_depthstencil()
*/
struct intel_mipmap_tree *stencil_mt;