Can you test the attached patch? Marek
On Wed, Oct 17, 2018 at 9:31 AM Michel Dänzer <mic...@daenzer.net> wrote: > On 2018-10-07 9:05 a.m., Marek Olšák wrote: > > From: Marek Olšák <marek.ol...@amd.com> > > > > Fast color clears should be much faster. Also, fast color clears on > > evicted buffers should be 200x faster on GFX8 and older. > > Nice! Unfortunately, this broke clover with radeonsi. Everything using > OpenCL seems to hang, see e.g. the attached backtraces from clinfo. > > > -- > Earthling Michel Dänzer | http://www.amd.com > Libre software enthusiast | Mesa and X developer >
From f0978b2afae808edf4ac281b14cd371305a5164b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= <marek.ol...@amd.com> Date: Wed, 17 Oct 2018 12:41:38 -0400 Subject: [PATCH] radeonsi: fix a deadlock due to partially-initialized context on CI --- src/gallium/drivers/radeonsi/si_pipe.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index 59e41c53300..06740bd0f5c 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -575,12 +575,6 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, &sctx->null_const_buf); si_set_rw_buffer(sctx, SI_PS_CONST_SAMPLE_POSITIONS, &sctx->null_const_buf); - - /* Clear the NULL constant buffer, because loads should return zeros. */ - uint32_t clear_value = 0; - si_clear_buffer(sctx, sctx->null_const_buf.buffer, 0, - sctx->null_const_buf.buffer->width0, - &clear_value, 4, SI_COHERENCY_SHADER); } uint64_t max_threads_per_block; @@ -625,6 +619,14 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, /* this must be last */ si_begin_new_gfx_cs(sctx); + + if (sctx->chip_class == CIK) { + /* Clear the NULL constant buffer, because loads should return zeros. */ + uint32_t clear_value = 0; + si_clear_buffer(sctx, sctx->null_const_buf.buffer, 0, + sctx->null_const_buf.buffer->width0, + &clear_value, 4, SI_COHERENCY_SHADER); + } return &sctx->b; fail: fprintf(stderr, "radeonsi: Failed to create a context.\n"); -- 2.17.1
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev