diff options
author | Topi Pohjolainen <[email protected]> | 2016-06-10 11:09:53 +0300 |
---|---|---|
committer | Topi Pohjolainen <[email protected]> | 2016-11-25 16:57:07 +0200 |
commit | d41fc8dc9f17aa04000586f01fe543c690cf2c8e (patch) | |
tree | 6be90b9b5dcee3976e1f6dc1c1d4b444d45c8ce5 /src/mesa/drivers/dri/i965/intel_mipmap_tree.h | |
parent | 28dc3f6199e72af815d214b40f8b56cde5c6bdfa (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.h | 16 |
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. * |