Hi, Does the attached patch fix it?
Marek On Mon, Aug 29, 2016 at 8:13 AM, Michel Dänzer <mic...@daenzer.net> wrote: > On 26/08/16 10:53 PM, Marek =?UNKNOWN?B?T2zFocOhaw==?= wrote: >> Module: Mesa >> Branch: master >> Commit: 0241d8300f66ee2c6c2c55fe64ac88d76440c591 >> URL: >> http://cgit.freedesktop.org/mesa/mesa/commit/?id=0241d8300f66ee2c6c2c55fe64ac88d76440c591 >> >> Author: Marek Olšák <marek.ol...@amd.com> >> Date: Thu Aug 18 13:03:26 2016 +0200 >> >> radeonsi: enable SDMA on CIK >> >> It passes R600_DEBUG=testdma on Bonaire/radeon. > > This broke the piglit test clear-accum on my Kaveri: > > clear-accum: ../../../../../src/gallium/drivers/radeon/r600_texture.c:100: > r600_prepare_for_dma_blit: Assertion `!(rdst->dirty_level_mask & (1 << > dst_level))' failed. > > Thread 1 "clear-accum" received signal SIGABRT, Aborted. > 0x00007ffff56021c8 in __GI_raise (sig=sig@entry=6) at > ../sysdeps/unix/sysv/linux/raise.c:54 > 54 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. > (gdb) bt > #0 0x00007ffff56021c8 in __GI_raise (sig=sig@entry=6) at > ../sysdeps/unix/sysv/linux/raise.c:54 > #1 0x00007ffff560364a in __GI_abort () at abort.c:89 > #2 0x00007ffff55fb107 in __assert_fail_base (fmt=<optimized out>, > assertion=assertion@entry=0x7ffff1008940 "!(rdst->dirty_level_mask & (1 << > dst_level))", file=file@entry=0x7ffff1008770 > "../../../../../src/gallium/drivers/radeon/r600_texture.c", > line=line@entry=100, function=function@entry=0x7ffff1009a30 > <__PRETTY_FUNCTION__.11967> "r600_prepare_for_dma_blit") at assert.c:92 > #3 0x00007ffff55fb1b2 in __GI___assert_fail > (assertion=assertion@entry=0x7ffff1008940 "!(rdst->dirty_level_mask & (1 << > dst_level))", file=file@entry=0x7ffff1008770 > "../../../../../src/gallium/drivers/radeon/r600_texture.c", > line=line@entry=100, > function=function@entry=0x7ffff1009a30 <__PRETTY_FUNCTION__.11967> > "r600_prepare_for_dma_blit") at assert.c:101 > #4 0x00007ffff0ec820f in r600_prepare_for_dma_blit > (rctx=rctx@entry=0x62d760, rdst=rdst@entry=0x7f44c0, > dst_level=dst_level@entry=0, dstx=<optimized out>, dstx@entry=0, > dsty=dsty@entry=0, dstz=dstz@entry=0, rsrc=0x8146f0, src_level=0, > src_box=0x7fffffffe430) > at ../../../../../src/gallium/drivers/radeon/r600_texture.c:100 > #5 0x00007ffff0de69f3 in cik_sdma_copy_texture (src_box=0x7fffffffe430, > src_level=0, src=0x8146f0, dstz=0, dsty=0, dstx=0, dst_level=0, dst=0x7f44c0, > sctx=0x62d760) at ../../../../../src/gallium/drivers/radeonsi/cik_sdma.c:168 > #6 cik_sdma_copy (ctx=0x62d760, dst=0x7f44c0, dst_level=0, dstx=0, dsty=0, > dstz=0, src=0x8146f0, src_level=0, src_box=0x7fffffffe430) at > ../../../../../src/gallium/drivers/radeonsi/cik_sdma.c:525 > #7 0x00007ffff0ec6ffe in r600_copy_from_staging_texture (rtransfer=0x813860, > ctx=0x62d760) at ../../../../../src/gallium/drivers/radeon/r600_texture.c:175 > #8 r600_texture_transfer_unmap (ctx=0x62d760, transfer=0x813860) at > ../../../../../src/gallium/drivers/radeon/r600_texture.c:1622 > #9 0x00007ffff09092c7 in pipe_transfer_unmap (transfer=<optimized out>, > context=<optimized out>) at > ../../../src/gallium/auxiliary/util/u_inlines.h:455 > #10 st_UnmapRenderbuffer (ctx=<optimized out>, rb=0x7f3940) at > ../../../src/mesa/state_tracker/st_cb_fbo.c:832 > #11 0x00007ffff063c7ec in accum_return (height=200, width=400, ypos=0, > xpos=0, value=<optimized out>, ctx=<optimized out>) at > ../../../src/mesa/main/accum.c:426 > #12 _mesa_accum (ctx=<optimized out>, op=<optimized out>, value=<optimized > out>) at ../../../src/mesa/main/accum.c:477 > #13 0x00007ffff7a962e3 in stub_glAccum (op=258, value=1) at > tests/util/piglit-dispatch-gen.c:44 > #14 0x0000000000400d06 in piglit_init (argc=1, argv=0x7fffffffe788) at > tests/general/clear-accum.c:59 > #15 0x00007ffff7b38b2f in run_test (gl_fw=0x614c20, argc=1, > argv=0x7fffffffe788) at > tests/util/piglit-framework-gl/piglit_winsys_framework.c:73 > #16 0x00007ffff7b1d647 in piglit_gl_test_run (argc=1, argv=0x7fffffffe788, > config=0x7fffffffe650) at tests/util/piglit-framework-gl.c:199 > #17 0x0000000000400c8e in main (argc=1, argv=0x7fffffffe788) at > tests/general/clear-accum.c:43 > > > > -- > Earthling Michel Dänzer | http://www.amd.com > Libre software enthusiast | Mesa and X developer
From 392de056009cf16e61adeb6ad4f87cb11e34d422 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= <marek.ol...@amd.com> Date: Sat, 20 Aug 2016 01:22:39 +0200 Subject: [PATCH] gallium/radeon: clear dirty_level_mask when discarding CMASK This fixes: GL45-CTS.texture_barrier.* --- src/gallium/drivers/radeon/r600_texture.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c index ac7b565..7bdceb1 100644 --- a/src/gallium/drivers/radeon/r600_texture.c +++ b/src/gallium/drivers/radeon/r600_texture.c @@ -367,6 +367,7 @@ static void r600_texture_discard_cmask(struct r600_common_screen *rscreen, /* Disable CMASK. */ memset(&rtex->cmask, 0, sizeof(rtex->cmask)); rtex->cmask.base_address_reg = rtex->resource.gpu_address >> 8; + rtex->dirty_level_mask = 0; if (rscreen->chip_class >= SI) rtex->cb_color_info &= ~SI_S_028C70_FAST_CLEAR(1); -- 2.7.4
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev