[Mesa-dev] [PATCH 03/12] i965/fs: Disable SIMD16 when a sampler message would be too long

Neil Roberts neil at linux.intel.com
Thu Sep 17 09:00:05 PDT 2015


The maximum message length for a send message is 11. Some of the
sampler message types have more than 5 arguments which means when they
are doubled to accomodate the SIMD16 register size then the message is
too long. This is important for the ld2dms_w message which will be
used in a later patch because it up to 7 arguments.
---
 src/mesa/drivers/dri/i965/brw_fs.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index b4d0567..32a2adf 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -4100,6 +4100,11 @@ fs_visitor::lower_logical_sends()
          continue;
       }
 
+      if (dispatch_width < 16 &&
+          (inst->mlen - inst->header_size) * 2 + inst->header_size >
+          MAX_SAMPLER_MESSAGE_SIZE)
+         no16("Sampler message would be too long in SIMD16 mode\n");
+
       progress = true;
    }
 
-- 
1.9.3



More information about the mesa-dev mailing list