Signed-off-by: Topi Pohjolainen <topi.pohjolai...@intel.com> --- src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 21 +++++++++++++++++++++ src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 3 +++ 2 files changed, 24 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c index 1fd2654..59961f2 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c @@ -270,6 +270,27 @@ intel_miptree_supports_non_msrt_fast_clear(struct brw_context *brw, return true; } +bool +intel_miptree_supports_lossless_compressed(mesa_format format) +{ + /* For now compression is only enabled for integer formats even though + * there exist supported floating point formats also. This is a heuristic + * decision based on current public benchmarks. In none of the cases these + * formats provided any improvement but a few cases were seen to regress. + * Hence these are left to to be enabled in the future when they are known + * to improve things. + */ + if (!_mesa_is_format_integer_color(format)) + return false; + + /* In principle, fast clear mechanism and lossless compression go hand in + * hand. However, fast clear can be also used to clear srgb surfaces by + * using equivalent linear format. This trick, however, can't be extended + * to be used with lossless compression and therefore a check is needed to + * see if the format really is linear. + */ + return _mesa_get_srgb_format_linear(format) == format; +} /** * Determine depth format corresponding to a depth+stencil format, diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h index f05436d..3a1ecd2 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h @@ -684,6 +684,9 @@ intel_miptree_supports_non_msrt_fast_clear(struct brw_context *brw, const struct intel_mipmap_tree *mt); bool +intel_miptree_supports_lossless_compressed(mesa_format format); + +bool intel_miptree_alloc_non_msrt_mcs(struct brw_context *brw, struct intel_mipmap_tree *mt); -- 2.5.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev