From c445d6f66e336d9486c7dfd72dbdf698de93a650 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Fri, 4 Oct 2019 13:12:44 +0300 Subject: [PATCH] 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 Gitlab: https://gitlab.freedesktop.org/mesa/mesa/issues/1872 Cc: Reviewed-by: Kenneth Graunke --- 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 d942d736290..30c98945c3f 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 -- 2.30.2