From 1f66fcf5a6df73fc9b9f0642fe6c27cb67363be5 Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Tue, 3 Aug 2021 17:01:26 -0700 Subject: [PATCH] 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: --- src/freedreno/ci/deqp-freedreno-a530-fails.txt | 10 ---------- src/gallium/drivers/freedreno/a5xx/fd5_emit.c | 12 +++++++----- .../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@nv_copy_depth_to_color@nv_copy_depth_to_color 1 0x223344ff,Crash spec@nv_copy_depth_to_color@nv_copy_depth_to_color 1 0x76356278,Crash spec@nv_copy_image@nv_copy_image-formats,Fail spec@nv_copy_image@nv_copy_image-formats@Source: GL_DEPTH32F_STENCIL8/Destination: GL_DEPTH32F_STENCIL8,Fail -spec@nv_image_formats@nv_image_formats-gles3,Crash spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3,Crash spec@oes_egl_image_external_essl3@oes_egl_image_external_essl3@oes_egl_image_external_essl3_imageLoad,Fail spec@glsl-1.30@execution@clipping@fs-clip-distance-interpolated,Crash