mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-21 18:11:39 +00:00
drm/radeon/kms/r600: fix blit dword count for non r6xx
rv6xx emits two extra dwords in the render target setup. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
This commit is contained in:
parent
7747b71304
commit
1be340563c
1 changed files with 7 additions and 2 deletions
|
@ -550,6 +550,12 @@ int r600_blit_prepare_copy(struct radeon_device *rdev, int size_bytes)
|
||||||
int r;
|
int r;
|
||||||
int ring_size;
|
int ring_size;
|
||||||
int max_size;
|
int max_size;
|
||||||
|
/* loops of emits 64 + fence emit possible */
|
||||||
|
int dwords_per_loop = 76;
|
||||||
|
|
||||||
|
/* set_render_target emits 2 extra dwords on rv6xx */
|
||||||
|
if (rdev->family > CHIP_R600 && rdev->family < CHIP_RV770)
|
||||||
|
dwords_per_loop += 2;
|
||||||
|
|
||||||
/* 8 bpp vs 32 bpp for xfer unit */
|
/* 8 bpp vs 32 bpp for xfer unit */
|
||||||
if (size_bytes & 3)
|
if (size_bytes & 3)
|
||||||
|
@ -560,8 +566,7 @@ int r600_blit_prepare_copy(struct radeon_device *rdev, int size_bytes)
|
||||||
r = r600_vb_ib_get(rdev);
|
r = r600_vb_ib_get(rdev);
|
||||||
WARN_ON(r);
|
WARN_ON(r);
|
||||||
|
|
||||||
/* loops of emits 64 + fence emit possible */
|
ring_size = ((size_bytes + max_size) / max_size) * dwords_per_loop;
|
||||||
ring_size = ((size_bytes + max_size) / max_size) * 78;
|
|
||||||
/* set default + shaders */
|
/* set default + shaders */
|
||||||
ring_size += 40; /* shaders + def state */
|
ring_size += 40; /* shaders + def state */
|
||||||
ring_size += 3; /* fence emit for VB IB */
|
ring_size += 3; /* fence emit for VB IB */
|
||||||
|
|
Loading…
Reference in a new issue