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

Reply via email to