https://bugs.freedesktop.org/show_bug.cgi?id=60802 --- Comment #53 from Alexandre Demers --- (In reply to comment #50) > I believe I have the source of the bug, it appears that there is a special > case for Caymen GPUs that isn't handled in the DMA code path. In > evergreen_state.c within the method evergreen_create_sampler_view_custom > there is the chunk of code > > /* 128 bit formats require tile type = 1 */ > if (rscreen->chip_class == CAYMAN) { > if (util_format_get_blocksize(pipe_format) >= 16) > non_disp_tiling = 1; > } > > however, within evergreen_dma_copy_tile in the same source file no such code > exists. I tested whether this was the case or not by placing the lines of > code > > if (util_format_get_blocksize(dst->format) >= 16) { > printf("Caymen non disp tiling skipping dma tile\n"); > return FALSE; > } > > before the call to evergreen_dma_copy_tile in evergreen_dma_blit, and the > corruption no longer appeared. (having this checks skips the DMA path for > this case and goes through the normal path, which would be > evergreen_create_sampler_view_custom I believe) > > I'm not sure which bits in the DMA packet control this setting. Your observations are right, using your trick does indeed remove the corruptions. -- You are receiving this mail because: You are the assignee for the bug.