Mesa (main): freedreno/a5xx: Don't try to emit FS images in binning command streams.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Aug 4 17:39:01 UTC 2021


Module: Mesa
Branch: main
Commit: 1f66fcf5a6df73fc9b9f0642fe6c27cb67363be5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1f66fcf5a6df73fc9b9f0642fe6c27cb67363be5

Author: Emma Anholt <emma at anholt.net>
Date:   Tue Aug  3 17:01:26 2021 -0700

freedreno/a5xx: Don't try to emit FS images in binning command streams.

We don't have a compiled FS in that case, so the shader deref fails.  We
don't need the state, anyway.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12192>

---

 src/freedreno/ci/deqp-freedreno-a530-fails.txt               | 10 ----------
 src/gallium/drivers/freedreno/a5xx/fd5_emit.c                | 12 +++++++-----
 .../drivers/freedreno/ci/piglit-freedreno-a530-fails.txt     |  1 -
 3 files changed, 7 insertions(+), 16 deletions(-)

diff --git a/src/freedreno/ci/deqp-freedreno-a530-fails.txt b/src/freedreno/ci/deqp-freedreno-a530-fails.txt
index 9b5a94d1d48..5b3c54406b4 100644
--- a/src/freedreno/ci/deqp-freedreno-a530-fails.txt
+++ b/src/freedreno/ci/deqp-freedreno-a530-fails.txt
@@ -6,16 +6,6 @@ dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner,Fail
 dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_center,Fail
 dEQP-GLES3.functional.clipping.point.wide_point_clip,Fail
 dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_corner,Fail
-dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_stencil,Crash
-dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_stencil_fbo,Crash
-dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_stencil_fbo_with_no_stencil,Crash
-dEQP-GLES31.functional.image_load_store.early_fragment_tests.no_early_fragment_tests_stencil,Crash
-dEQP-GLES31.functional.image_load_store.early_fragment_tests.no_early_fragment_tests_stencil_fbo,Crash
-dEQP-GLES31.functional.image_load_store.early_fragment_tests.no_early_fragment_tests_stencil_fbo_with_no_stencil,Crash
-dEQP-GLES31.functional.layout_binding.image.image2d.fragment_binding_array,Crash
-dEQP-GLES31.functional.layout_binding.image.image2d.fragment_binding_max,Crash
-dEQP-GLES31.functional.layout_binding.image.image3d.fragment_binding_array,Crash
-dEQP-GLES31.functional.layout_binding.image.image3d.fragment_binding_max,Crash
 dEQP-GLES31.functional.texture.border_clamp.depth_compare_mode.depth24_stencil8.gather_size_pot,Fail
 dEQP-GLES31.functional.texture.border_clamp.depth_compare_mode.depth32f_stencil8.gather_size_pot,Fail
 dEQP-GLES31.functional.texture.border_clamp.depth_compare_mode.depth32f_stencil8.linear_size_pot,Fail
diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_emit.c b/src/gallium/drivers/freedreno/a5xx/fd5_emit.c
index 5476f5bd3a4..b98608c10b9 100644
--- a/src/gallium/drivers/freedreno/a5xx/fd5_emit.c
+++ b/src/gallium/drivers/freedreno/a5xx/fd5_emit.c
@@ -873,12 +873,14 @@ fd5_emit_state(struct fd_context *ctx, struct fd_ringbuffer *ring,
    if (needs_border)
       emit_border_color(ctx, ring);
 
-   if (ctx->dirty_shader[PIPE_SHADER_FRAGMENT] & FD_DIRTY_SHADER_SSBO)
-      emit_ssbos(ctx, ring, SB4_SSBO, &ctx->shaderbuf[PIPE_SHADER_FRAGMENT],
-                 fp);
+   if (!emit->binning_pass) {
+      if (ctx->dirty_shader[PIPE_SHADER_FRAGMENT] & FD_DIRTY_SHADER_SSBO)
+         emit_ssbos(ctx, ring, SB4_SSBO, &ctx->shaderbuf[PIPE_SHADER_FRAGMENT],
+                  fp);
 
-   if (ctx->dirty_shader[PIPE_SHADER_FRAGMENT] & FD_DIRTY_SHADER_IMAGE)
-      fd5_emit_images(ctx, ring, PIPE_SHADER_FRAGMENT, fp);
+      if (ctx->dirty_shader[PIPE_SHADER_FRAGMENT] & FD_DIRTY_SHADER_IMAGE)
+         fd5_emit_images(ctx, ring, PIPE_SHADER_FRAGMENT, fp);
+   }
 }
 
 void
diff --git a/src/gallium/drivers/freedreno/ci/piglit-freedreno-a530-fails.txt b/src/gallium/drivers/freedreno/ci/piglit-freedreno-a530-fails.txt
index 309075ee4ca..d6a44470b43 100644
--- a/src/gallium/drivers/freedreno/ci/piglit-freedreno-a530-fails.txt
+++ b/src/gallium/drivers/freedreno/ci/piglit-freedreno-a530-fails.txt
@@ -321,7 +321,6 @@ spec at nv_copy_depth_to_color@nv_copy_depth_to_color 1 0x223344ff,Crash
 spec at nv_copy_depth_to_color@nv_copy_depth_to_color 1 0x76356278,Crash
 spec at nv_copy_image@nv_copy_image-formats,Fail
 spec at nv_copy_image@nv_copy_image-formats at Source: GL_DEPTH32F_STENCIL8/Destination: GL_DEPTH32F_STENCIL8,Fail
-spec at nv_image_formats@nv_image_formats-gles3,Crash
 spec at oes_egl_image_external_essl3@oes_egl_image_external_essl3,Crash
 spec at oes_egl_image_external_essl3@oes_egl_image_external_essl3 at oes_egl_image_external_essl3_imageLoad,Fail
 spec at glsl-1.30@execution at clipping@fs-clip-distance-interpolated,Crash



More information about the mesa-commit mailing list