>From 1999443c55a989969ef0a9cc12167c058142ad3c Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexdeuc...@gmail.com>
Date: Fri, 11 Sep 2009 12:02:03 -0400
Subject: [PATCH] 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 <alexdeuc...@gmail.com>
---
 drivers/gpu/drm/radeon/r600_blit_kms.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/radeon/r600_blit_kms.c
b/drivers/gpu/drm/radeon/r600_blit_kms.c
index bbb0d61..1ebfd5a 100644
--- a/drivers/gpu/drm/radeon/r600_blit_kms.c
+++ b/drivers/gpu/drm/radeon/r600_blit_kms.c
@@ -550,6 +550,12 @@ int r600_blit_prepare_copy(struct radeon_device
*rdev, int size_bytes)
        int r;
        int ring_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 */
        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);
        WARN_ON(r);

-       /* loops of emits 64 + fence emit possible */
-       ring_size = ((size_bytes + max_size) / max_size) * 78;
+       ring_size = ((size_bytes + max_size) / max_size) * dwords_per_loop;
        /* set default  + shaders */
        ring_size += 40; /* shaders + def state */
        ring_size += 3; /* fence emit for VB IB */
-- 
1.5.6.3
From 1999443c55a989969ef0a9cc12167c058142ad3c Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexdeuc...@gmail.com>
Date: Fri, 11 Sep 2009 12:02:03 -0400
Subject: [PATCH] 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 <alexdeuc...@gmail.com>
---
 drivers/gpu/drm/radeon/r600_blit_kms.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/radeon/r600_blit_kms.c b/drivers/gpu/drm/radeon/r600_blit_kms.c
index bbb0d61..1ebfd5a 100644
--- a/drivers/gpu/drm/radeon/r600_blit_kms.c
+++ b/drivers/gpu/drm/radeon/r600_blit_kms.c
@@ -550,6 +550,12 @@ int r600_blit_prepare_copy(struct radeon_device *rdev, int size_bytes)
 	int r;
 	int ring_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 */
 	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);
 	WARN_ON(r);
 
-	/* loops of emits 64 + fence emit possible */
-	ring_size = ((size_bytes + max_size) / max_size) * 78;
+	ring_size = ((size_bytes + max_size) / max_size) * dwords_per_loop;
 	/* set default  + shaders */
 	ring_size += 40; /* shaders + def state */
 	ring_size += 3; /* fence emit for VB IB */
-- 
1.5.6.3

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to