Mesa (staging/19.2): intel/isl: Set null surface format to R32_UINT

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Oct 7 17:55:28 UTC 2019


Module: Mesa
Branch: staging/19.2
Commit: 85193e808aa3cd9991d3c4dff21282c13b93af7a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=85193e808aa3cd9991d3c4dff21282c13b93af7a

Author: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Date:   Fri Oct  4 13:12:44 2019 +0300

intel/isl: Set null surface format to R32_UINT

It appears we never had a test in piglit or deqp sampling from a null
surface...

It turns out this triggers a hang on IVB only. Updating the null
surface format to R32_UINT fixes the hang on ivb and doesn't affect
other platforms, so set it by default for all platforms.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/issues/1872
Cc: <mesa-stable at lists.freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
(cherry picked from commit c445d6f66e336d9486c7dfd72dbdf698de93a650)

---

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

diff --git a/src/intel/isl/isl_surface_state.c b/src/intel/isl/isl_surface_state.c
index c7d617fe911..3bb03ef09e0 100644
--- a/src/intel/isl/isl_surface_state.c
+++ b/src/intel/isl/isl_surface_state.c
@@ -789,7 +789,12 @@ isl_genX(null_fill_state)(void *state, struct isl_extent3d size)
 {
    struct GENX(RENDER_SURFACE_STATE) s = {
       .SurfaceType = SURFTYPE_NULL,
-      .SurfaceFormat = ISL_FORMAT_B8G8R8A8_UNORM,
+      /* We previously had this format set to B8G8R8A8_UNORM but ran into
+       * hangs on IVB. R32_UINT seems to work for everybody.
+       *
+       * https://gitlab.freedesktop.org/mesa/mesa/issues/1872
+       */
+      .SurfaceFormat = ISL_FORMAT_R32_UINT,
 #if GEN_GEN >= 7
       .SurfaceArray = size.depth > 0,
 #endif




More information about the mesa-commit mailing list