On 29 November 2017 at 22:46, Gert Wollny <gw.foss...@gmail.com> wrote: > Am Mittwoch, den 29.11.2017, 14:36 +1000 schrieb Dave Airlie: >> This set of patches enables compute shaders on r600 and exposes GLSL >> 4.30 support. They are pretty alpha level, but I'd like to land some >> of them (maybe disabled) so I can avoid the rebasing fun with the >> more intrusive ones. >> >> It is based on the previous ssbo support patch. >> >> It may not be stable, I have a few patches sitting on top locally >> for flushing various things I want to figure out if they are required >> or if I can fix things properly. >> > > I run the arb_compute_shader piglits on BARTS, the piglits > > basic-texelfetch > border-color > multiple-workgroups > basic-uniform-access > multiple-texture-reading > simple-barrier > > result in GPU lockups and, consequently, fail. The other 20 tests pass.
Does the attached patch help with the lockups at all? Dave.
From 3aa8b83628190d452639810d2dbaea8aae8a104d Mon Sep 17 00:00:00 2001 From: Dave Airlie <airl...@redhat.com> Date: Fri, 3 Nov 2017 15:44:51 +1000 Subject: [PATCH] r600/cs more flushes add some missing flushes --- src/gallium/drivers/r600/evergreen_compute.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c index 4c888a2..ec77bb0 100644 --- a/src/gallium/drivers/r600/evergreen_compute.c +++ b/src/gallium/drivers/r600/evergreen_compute.c @@ -799,13 +799,21 @@ static void compute_emit_cs(struct r600_context *rctx, /* Emit dispatch state and dispatch packet */ evergreen_emit_dispatch(rctx, info); + radeon_emit(cs, PKT3(PKT3_EVENT_WRITE, 0, 0)); + radeon_emit(cs, EVENT_TYPE(0x6)); + radeon_emit(cs, PKT3(PKT3_EVENT_WRITE, 0, 0)); + radeon_emit(cs, EVENT_TYPE(EVENT_TYPE_PS_PARTIAL_FLUSH) | EVENT_INDEX(4)); + radeon_emit(cs, PKT3(PKT3_EVENT_WRITE, 0, 0)); + radeon_emit(cs, EVENT_TYPE(EVENT_TYPE_CS_PARTIAL_FLUSH) | EVENT_INDEX(4)); if (rctx->cs_shader_state.shader->ir_type == PIPE_SHADER_IR_TGSI) evergreen_emit_atomic_buffer_save(rctx, true, combined_atomics, &atomic_used_mask); /* XXX evergreen_flush_emit() hardcodes the CP_COHER_SIZE to 0xffffffff */ rctx->b.flags |= R600_CONTEXT_INV_CONST_CACHE | R600_CONTEXT_INV_VERTEX_CACHE | - R600_CONTEXT_INV_TEX_CACHE; + R600_CONTEXT_INV_TEX_CACHE | + R600_CONTEXT_PS_PARTIAL_FLUSH | + R600_CONTEXT_FLUSH_AND_INV_CB; r600_flush_emit(rctx); rctx->b.flags = 0; -- 2.9.5
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev