aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/r600_blit_kms.c
diff options
context:
space:
mode:
authorJerome Glisse <jglisse@redhat.com>2011-10-26 11:41:22 -0400
committerDave Airlie <airlied@redhat.com>2011-11-01 12:02:07 -0400
commit77b1bad423599c9841ea282a82172f039bb2ff92 (patch)
tree289bc45bf7cd81361ac2a8aa97a0ef44e6a57cf9 /drivers/gpu/drm/radeon/r600_blit_kms.c
parent8ab250d4484b72ccc78e34276c5ffa84c1d41303 (diff)
drm/radeon: flush read cache for gtt with fence on r6xx and newer GPU V3
Cayman seems to be particularly sensitive to read cache returning old data after bind/unbind to GTT. Flush read cache for GTT range with each fences for all new hw. Should fix several rendering glitches. Like V2 flush whole address space V3 also flush shader read cache https://bugs.freedesktop.org/show_bug.cgi?id=40221 https://bugs.freedesktop.org/show_bug.cgi?id=38022 https://bugzilla.redhat.com/show_bug.cgi?id=738790 Signed-off-by: Jerome Glisse <jglisse@redhat.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/r600_blit_kms.c')
-rw-r--r--drivers/gpu/drm/radeon/r600_blit_kms.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/r600_blit_kms.c b/drivers/gpu/drm/radeon/r600_blit_kms.c
index ff36532734b7..e09d2818f949 100644
--- a/drivers/gpu/drm/radeon/r600_blit_kms.c
+++ b/drivers/gpu/drm/radeon/r600_blit_kms.c
@@ -503,9 +503,9 @@ int r600_blit_init(struct radeon_device *rdev)
503 rdev->r600_blit.primitives.set_default_state = set_default_state; 503 rdev->r600_blit.primitives.set_default_state = set_default_state;
504 504
505 rdev->r600_blit.ring_size_common = 40; /* shaders + def state */ 505 rdev->r600_blit.ring_size_common = 40; /* shaders + def state */
506 rdev->r600_blit.ring_size_common += 10; /* fence emit for VB IB */ 506 rdev->r600_blit.ring_size_common += 16; /* fence emit for VB IB */
507 rdev->r600_blit.ring_size_common += 5; /* done copy */ 507 rdev->r600_blit.ring_size_common += 5; /* done copy */
508 rdev->r600_blit.ring_size_common += 10; /* fence emit for done copy */ 508 rdev->r600_blit.ring_size_common += 16; /* fence emit for done copy */
509 509
510 rdev->r600_blit.ring_size_per_loop = 76; 510 rdev->r600_blit.ring_size_per_loop = 76;
511 /* set_render_target emits 2 extra dwords on rv6xx */ 511 /* set_render_target emits 2 extra dwords on rv6xx */