mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 04:10:09 +01:00
i965: Add helper for detecting lossless compression
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
This commit is contained in:
parent
36b7c0dad9
commit
4b801116d3
2 changed files with 30 additions and 0 deletions
|
|
@ -266,6 +266,32 @@ intel_miptree_supports_non_msrt_fast_clear(struct brw_context *brw,
|
|||
return true;
|
||||
}
|
||||
|
||||
/* On Gen9 support for color buffer compression was extended to single
|
||||
* sampled surfaces. This is a helper considering both auxiliary buffer
|
||||
* type and number of samples telling if the given miptree represents
|
||||
* the new single sampled case - also called lossless compression.
|
||||
*/
|
||||
bool
|
||||
intel_miptree_is_lossless_compressed(const struct brw_context *brw,
|
||||
const struct intel_mipmap_tree *mt)
|
||||
{
|
||||
/* Only available from Gen9 onwards. */
|
||||
if (brw->gen < 9)
|
||||
return false;
|
||||
|
||||
/* Compression always requires auxiliary buffer. */
|
||||
if (!mt->mcs_mt)
|
||||
return false;
|
||||
|
||||
/* Single sample compression is represented re-using msaa compression
|
||||
* layout type: "Compressed Multisampled Surfaces".
|
||||
*/
|
||||
if (mt->msaa_layout != INTEL_MSAA_LAYOUT_CMS)
|
||||
return false;
|
||||
|
||||
/* And finally distinguish between msaa and single sample case. */
|
||||
return mt->num_samples <= 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine depth format corresponding to a depth+stencil format,
|
||||
|
|
|
|||
|
|
@ -666,6 +666,10 @@ void
|
|||
intel_get_non_msrt_mcs_alignment(struct intel_mipmap_tree *mt,
|
||||
unsigned *width_px, unsigned *height);
|
||||
|
||||
bool
|
||||
intel_miptree_is_lossless_compressed(const struct brw_context *brw,
|
||||
const struct intel_mipmap_tree *mt);
|
||||
|
||||
bool
|
||||
intel_miptree_alloc_non_msrt_mcs(struct brw_context *brw,
|
||||
struct intel_mipmap_tree *mt);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue