Mesa (master): i965: Don't allocate an MCS for 16x MSAA and width > 8192.

Kenneth Graunke kwg at kemper.freedesktop.org
Thu Dec 14 08:37:45 UTC 2017


Module: Mesa
Branch: master
Commit: fd3fc5f5479410ffc87852c7d3a391e3ec548009
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=fd3fc5f5479410ffc87852c7d3a391e3ec548009

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed Dec 13 09:45:49 2017 -0800

i965: Don't allocate an MCS for 16x MSAA and width > 8192.

The hardware doesn't support this, and isl_surf_get_mcs_surf will fail.

I feel a bit bad replicating this logic, but we want to decide up front.

This fixes the following test when run with --deqp-surface-width=16384:
- GTF-GL46.gtf30.GL3Tests.framebuffer_blit.framebuffer_blit_error_blitframebuffer_multisampled_framebuffers_different_sample_count

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>

---

 src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index c1a4ce184f..ead0c359c0 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -73,6 +73,10 @@ intel_miptree_supports_mcs(struct brw_context *brw,
    if (devinfo->gen < 7)
       return false;
 
+   /* See isl_surf_get_mcs_surf for details. */
+   if (mt->surf.samples == 16 && mt->surf.logical_level0_px.width > 8192)
+      return false;
+
    /* In Gen7, IMS layout is only used for depth and stencil buffers. */
    switch (_mesa_get_format_base_format(mt->format)) {
    case GL_DEPTH_COMPONENT:




More information about the mesa-commit mailing list