[Bug 60802] Corruption with DMA ring on cayman
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Thu Mar 14 18:32:44 PDT 2013
https://bugs.freedesktop.org/show_bug.cgi?id=60802
--- Comment #53 from Alexandre Demers <alexandre.f.demers at gmail.com> ---
(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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20130315/8a302b29/attachment.html>
More information about the dri-devel
mailing list