aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeil Roberts <[email protected]>2015-11-24 16:34:46 +0100
committerNeil Roberts <[email protected]>2015-12-11 18:05:56 +0000
commit0033c8134401cd4c42845a8e33c001ec62612015 (patch)
tree11797e5c1c87ecdce7fa0d5953e7e53a11036d35
parent82d459a4230c8fcb96fc5e85d00d2c2f4502d1e0 (diff)
i965/gen9: Allow fast clears for non-MSRT SRGB buffers
SRGB buffers are not marked as losslessly compressible so previously they would not be used for fast clears. However in practice the hardware will never actually see that we are using SRGB buffers for fast clears if we use the linear equivalent format when clearing and make sure to resolve the buffer as a linear format before sampling from it. This is an important use case because by default the window system framebuffers are created as SRGB so without this fast clears won't be used there. Reviewed-by: Topi Pohjolainen <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/intel_mipmap_tree.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index 87e01366932..88c0a19bed6 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -259,7 +259,8 @@ intel_miptree_supports_non_msrt_fast_clear(struct brw_context *brw,
return false;
if (brw->gen >= 9) {
- const uint32_t brw_format = brw_format_for_mesa_format(mt->format);
+ mesa_format linear_format = _mesa_get_srgb_format_linear(mt->format);
+ const uint32_t brw_format = brw_format_for_mesa_format(linear_format);
return brw_losslessly_compressible_format(brw, brw_format);
} else
return true;