[Mesa-dev] [PATCH 36/36] isl/state: Add an assertion for IVB multisample array textures

Jason Ekstrand jason at jlekstrand.net
Thu Jun 30 00:37:55 UTC 2016


---
 src/intel/isl/isl_surface_state.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/intel/isl/isl_surface_state.c b/src/intel/isl/isl_surface_state.c
index 0a2d877..e7f9101 100644
--- a/src/intel/isl/isl_surface_state.c
+++ b/src/intel/isl/isl_surface_state.c
@@ -263,6 +263,19 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state,
    switch (s.SurfaceType) {
    case SURFTYPE_1D:
    case SURFTYPE_2D:
+      /* From the Ivy Bridge PRM >> RENDER_SURFACE_STATE::MinimumArrayElement:
+       *
+       *    "If Number of Multisamples is not MULTISAMPLECOUNT_1, this field
+       *    must be set to zero if this surface is used with sampling engine
+       *    messages."
+       *
+       * This restriction appears to exist only on Ivy Bridge.
+       */
+      if (GEN_GEN == 7 && !GEN_IS_HASWELL && !ISL_DEV_IS_BAYTRAIL(dev) &&
+          (info->view->usage & ISL_SURF_USAGE_TEXTURE_BIT) &&
+          info->surf->samples > 1)
+         assert(info->view->base_array_layer == 0);
+
       s.MinimumArrayElement = info->view->base_array_layer;
 
       /* From the Broadwell PRM >> RENDER_SURFACE_STATE::Depth:
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list