diff options
author | Eric Anholt <eric@anholt.net> | 2020-12-17 12:30:16 -0800 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2020-12-18 15:11:22 -0800 |
commit | 50b977737e656259407bb966e9063cd9e11eb2dc (patch) | |
tree | 11414ea2a72b0832bfe78c4927504571cfad4a77 | |
parent | d54de72aa0e8f6c0b52a235f951a032053ec53bd (diff) |
freedreno/a6xx: Flush depth at the end of bypass rendering, too.
We apparently don't have anything else making sure that it's flushed in
between use as a render target and use as a texture source, so bypass-mode
depth texture sampling could get stale data.
Fixes consistent (as far as I could see) failures in FD_MESA_DEBUG=nogmem
on:
dEQP-GLES31.functional.texture.multisample.samples_*.use_texture_depth_2d
dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8146>
(cherry picked from commit e4cdbeab814bdc2b468ec2375a74fc961a423213)
-rw-r--r-- | .gitlab-ci/deqp-freedreno-a630-bypass-fails.txt | 3 | ||||
-rw-r--r-- | .gitlab-ci/deqp-freedreno-a630-flakes.txt | 5 | ||||
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/gallium/drivers/freedreno/a6xx/fd6_gmem.c | 1 |
4 files changed, 2 insertions, 9 deletions
diff --git a/.gitlab-ci/deqp-freedreno-a630-bypass-fails.txt b/.gitlab-ci/deqp-freedreno-a630-bypass-fails.txt index c9c043a8458..e5eff322eb1 100644 --- a/.gitlab-ci/deqp-freedreno-a630-bypass-fails.txt +++ b/.gitlab-ci/deqp-freedreno-a630-bypass-fails.txt @@ -72,7 +72,6 @@ dEQP-GLES31.functional.ssbo.layout.3_level_array.std140.column_major_mat4x2,Fail dEQP-GLES31.functional.ssbo.layout.3_level_unsized_array.std430.mat3,Fail dEQP-GLES31.functional.ssbo.layout.random.arrays_of_arrays.6,Fail dEQP-GLES31.functional.ssbo.layout.unsized_struct_array.per_block_buffer.shared_instance_array,Fail -dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw,Fail dEQP-GLES31.functional.stencil_texturing.render.depth32f_stencil8_clear,Fail dEQP-GLES31.functional.stencil_texturing.render.depth32f_stencil8_draw,Fail dEQP-GLES31.functional.tessellation.invariance.inner_triangle_set.quads_fractional_even_spacing,Fail @@ -81,7 +80,5 @@ dEQP-GLES31.functional.texture.multisample.samples_1.use_texture_depth_2d,Fail dEQP-GLES31.functional.texture.multisample.samples_1.use_texture_depth_2d_array,Fail dEQP-GLES31.functional.texture.multisample.samples_2.use_texture_depth_2d,Fail dEQP-GLES31.functional.texture.multisample.samples_2.use_texture_depth_2d_array,Fail -dEQP-GLES31.functional.texture.multisample.samples_3.use_texture_depth_2d,Fail dEQP-GLES31.functional.texture.multisample.samples_3.use_texture_depth_2d_array,Fail dEQP-GLES31.functional.texture.multisample.samples_4.use_texture_depth_2d,Fail -dEQP-GLES31.functional.texture.multisample.samples_4.use_texture_depth_2d_array,Fail diff --git a/.gitlab-ci/deqp-freedreno-a630-flakes.txt b/.gitlab-ci/deqp-freedreno-a630-flakes.txt index 93d3e93ffc4..da401078b9f 100644 --- a/.gitlab-ci/deqp-freedreno-a630-flakes.txt +++ b/.gitlab-ci/deqp-freedreno-a630-flakes.txt @@ -25,11 +25,6 @@ dEQP-GLES31.functional.ssbo.atomic.compswap.mediump_uint # Non-sysmem flakes dEQP-VK.pipeline.spec_constant.compute.composite.matrix.mat3x2 -# Sysmem flakes -dEQP-GLES31.functional.texture.multisample.samples_3.use_texture_depth_2d -dEQP-GLES31.functional.texture.multisample.samples_4.use_texture_depth_2d_array -dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw - # Fails NIR_VALIDATE so probably flaky dEQP-VK.memory_model.write_after_read.core11.u32.coherent.fence_fence.atomicwrite.workgroup.payload_nonlocal.workgroup.guard_local.buffer.comp diff --git a/.pick_status.json b/.pick_status.json index 05d707607ce..ac40dae8887 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -328,7 +328,7 @@ "description": "freedreno/a6xx: Flush depth at the end of bypass rendering, too.", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c index 47fe1307ef1..110060c99b4 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c @@ -1447,6 +1447,7 @@ fd6_emit_sysmem_fini(struct fd_batch *batch) fd6_emit_lrz_flush(ring); fd6_event_write(batch, ring, PC_CCU_FLUSH_COLOR_TS, true); + fd6_event_write(batch, ring, PC_CCU_FLUSH_DEPTH_TS, true); } void |