aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
diff options
context:
space:
mode:
authorTopi Pohjolainen <[email protected]>2016-06-10 11:09:53 +0300
committerTopi Pohjolainen <[email protected]>2016-11-25 16:57:07 +0200
commitd41fc8dc9f17aa04000586f01fe543c690cf2c8e (patch)
tree6be90b9b5dcee3976e1f6dc1c1d4b444d45c8ce5 /src/mesa/drivers/dri/i965/intel_mipmap_tree.h
parent28dc3f6199e72af815d214b40f8b56cde5c6bdfa (diff)
i965: Track fast color clear state in level/layer granularity
Note that RESOLVED is not tracked in the map explicitly. Absence of item implicitly means RESOLVED state. v2: Added intel_resolve_map_clear() into intel_miptree_release() v3 (Jason): Properly handle the assumption of resolve map not containing any items with state RESOLVED. Removed unnecessary intel_miptree_set_fast_clear_state() call in brw_blorp_resolve_color() preventing intel_miptree_set_fast_clear_state() from asserting against RESOLVED. Signed-off-by: Topi Pohjolainen <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/intel_mipmap_tree.h')
-rw-r--r--src/mesa/drivers/dri/i965/intel_mipmap_tree.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
index 02f131c7316..29d0e2fac65 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
@@ -554,15 +554,22 @@ struct intel_mipmap_tree
struct intel_miptree_hiz_buffer *hiz_buf;
/**
- * \brief Map of miptree slices to needed resolves.
+ * \brief Maps of miptree slices to needed resolves.
*
- * This is used only when the miptree has a child HiZ miptree.
+ * hiz_map is used only when the miptree has a child HiZ miptree.
*
* Let \c mt be a depth miptree with HiZ enabled. Then the resolve map is
* \c mt->hiz_map. The resolve map of the child HiZ miptree, \c
* mt->hiz_mt->hiz_map, is unused.
+ *
+ *
+ * color_resolve_map is used only when the miptree uses fast clear (Gen7+)
+ * lossless compression (Gen9+). It should be noted that absence in the
+ * map means implicitly RESOLVED state. If item is found it always
+ * indicates state other than RESOLVED.
*/
struct exec_list hiz_map; /* List of intel_resolve_map. */
+ struct exec_list color_resolve_map; /* List of intel_resolve_map. */
/**
* \brief Stencil miptree for depthstencil textures.
@@ -606,11 +613,6 @@ struct intel_mipmap_tree
struct intel_mipmap_tree *plane[2];
/**
- * Fast clear state for this buffer.
- */
- enum intel_fast_clear_state fast_clear_state;
-
- /**
* The SURFACE_STATE bits associated with the last fast color clear to this
* color mipmap tree, if any.
*