[Mesa-dev] [PATCH 06/15] intel: Add intel_mipmap_tree::singlesample_mt
Chad Versace
chad.versace at linux.intel.com
Sat Jul 21 17:36:45 PDT 2012
This miptree will be used only for storing the singlesample data of
multisample window system buffers.
CC: Eric Anholt <eric at anholt.net>
CC: Paul Berry <stereotype441 at gmail.com>
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
---
src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 1 +
src/mesa/drivers/dri/intel/intel_mipmap_tree.h | 23 +++++++++++++++++++++++
2 files changed, 24 insertions(+)
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index d6572cd..56e936e 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -435,6 +435,7 @@ intel_miptree_release(struct intel_mipmap_tree **mt)
intel_miptree_release(&(*mt)->stencil_mt);
intel_miptree_release(&(*mt)->hiz_mt);
intel_miptree_release(&(*mt)->mcs_mt);
+ intel_miptree_release(&(*mt)->singlesample_mt);
intel_resolve_map_clear(&(*mt)->hiz_map);
for (i = 0; i < MAX_TEXTURE_LEVELS; i++) {
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
index cfd671e..e5e89f0 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.h
@@ -248,6 +248,29 @@ struct intel_mipmap_tree
uint32_t offset;
/**
+ * \brief Singlesample miptree.
+ *
+ * This is used only for multisample window system front and back buffers.
+ *
+ * Suppose that the window system FBO was created with a multisample
+ * config. Let back_rb be the intel_renderbuffer for the FBO's back
+ * buffer. Then back_rb contains two miptrees: a parent multisample miptree
+ * (back_rb->mt) and a child singlesample miptree
+ * (back_rb->mt->singlesample_mt). The DRM buffer shared with DRI2 belongs
+ * to back_rb->mt->singlesample_mt and contains singlesample data.
+ *
+ * When access to the singlesample data is needed, such as at
+ * eglSwapBuffers and glReadPixels, an automatic downsample occurs from
+ * back_rb->mt to back_rb->mt->singlesample_mt when necessary.
+ */
+ struct intel_mipmap_tree *singlesample_mt;
+
+ /**
+ * \brief A downsample is needed from this miptree to singlesample_mt.
+ */
+ bool need_downsample;
+
+ /**
* \brief HiZ miptree
*
* This is non-null only if HiZ is enabled for this miptree.
--
1.7.11.2
More information about the mesa-dev
mailing list