[Help][RS780E][mipsel]Screen corruption sometimes
alexdeucher at gmail.com
Mon Sep 12 22:33:55 PDT 2011
2011/9/13 Chen Jie <chenj at lemote.com>:
> 2011/9/7 Michel Dänzer <michel at daenzer.net>
>> What if you only comment out one of the invocations? Do you get
>> corruption in one case but not the other one?
> I got corruption in either case.
> We got a patch from the BSP team of the CPU vendor, which seems solved
> the problem.
> The patch replaces both RADEON_GPU_PAGE_SIZE in function
> r600_copy_blit() with PAGE_SIZE. (We use 16K PAGE_SIZE, and
> RADEON_GPU_PAGE_SIZE is 4K)
> Any idea? If it had copy problems, why bo moving test couldn't detect
> it? Also, after applied the patch, the bo moving test was still
> passed, curious.
The patch is correct. r600_copy_blit() takes CPU pages as a
parameter and the r600_blit_*_copy() functions take bytes as a
parameter. evergreen_copy_blit() needs a similar fix.
> BTW, if the patch was correct, then it seems more suitable to be fixed
> in radeon_move_blit():
> * The num_pages field of ttm_mem_reg need to be changed if moved
> between VRAM and GTT && PAGE != RADEON_GPU_PAGE_SIZE.
There may be other places where we are using the wrong page size for
GPU vs CPU pages.
> * What is a drm_mm_node? Represent a block resides at VRAM/GTT/System Mem?
drm_mm is basically a set of helper functions for managing address ranges.
More information about the xorg-driver-ati