summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2020-12-17 12:30:16 -0800
committerDylan Baker <dylan.c.baker@intel.com>2020-12-18 15:11:22 -0800
commit50b977737e656259407bb966e9063cd9e11eb2dc (patch)
tree11414ea2a72b0832bfe78c4927504571cfad4a77
parentd54de72aa0e8f6c0b52a235f951a032053ec53bd (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.txt3
-rw-r--r--.gitlab-ci/deqp-freedreno-a630-flakes.txt5
-rw-r--r--.pick_status.json2
-rw-r--r--src/gallium/drivers/freedreno/a6xx/fd6_gmem.c1
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