summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2011-01-24 12:30:56 -0500
committerAlex Deucher <alexdeucher@gmail.com>2011-01-24 12:42:57 -0500
commit42529603ecf86fcfd0a8f3495d9db9ce1ee9b4c3 (patch)
treeb6d1f42cac9ec3af489e1fca7f18cea9732a7014
parent9b0e03e98ab739efb4031f81cc4a1a50b3d87a42 (diff)
vbo: always flush the cbuf bo in flush_indirect()
Always flush the cbuf in case we end up with a cbuf mapped in Prepare*(), but never end up issuing a draw call since the cbuf may be in use by multiple ops. The CS check for the cbuf bo is no longer necessay because the cbuf bo is NULL at this point due to the radeon_vbo_put() just prior. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=32188
-rw-r--r--src/radeon_kms.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/src/radeon_kms.c b/src/radeon_kms.c
index fbdb5309..4297f6b8 100644
--- a/src/radeon_kms.c
+++ b/src/radeon_kms.c
@@ -91,7 +91,7 @@ void radeon_cs_flush_indirect(ScrnInfoPtr pScrn)
}
/* release the current VBO so we don't block on mapping it later */
- if (info->accel_state->cbuf.vb_offset && info->accel_state->cbuf.vb_bo) {
+ if (info->accel_state->cbuf.vb_bo) {
radeon_vbo_put(pScrn, &info->accel_state->cbuf);
info->accel_state->cbuf.vb_start_op = -1;
}
@@ -108,14 +108,6 @@ void radeon_cs_flush_indirect(ScrnInfoPtr pScrn)
if (ret)
ErrorF("space check failed in flush\n");
- if (accel_state->cbuf.vb_bo) {
- ret = radeon_cs_space_check_with_bo(info->cs,
- accel_state->cbuf.vb_bo,
- RADEON_GEM_DOMAIN_GTT, 0);
- if (ret)
- ErrorF("space check failed in flush\n");
- }
-
if (info->reemit_current2d && info->state_2d.op)
info->reemit_current2d(pScrn, info->state_2d.op);