[Bug 60802] Corruption with DMA ring on cayman

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Comment # 53 on bug 60802 from
(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:
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux