summaryrefslogtreecommitdiff
path: root/src/radeon_exa_shared.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2010-08-23 18:58:12 -0400
committerAlex Deucher <alexdeucher@gmail.com>2010-08-23 18:58:12 -0400
commitf170dddd3538a587f2363ef5fa10a4b484e762da (patch)
treef69ac2e795cff6fb12802e5b21d12215d2431504 /src/radeon_exa_shared.c
parenteede93b057bbdddcde5da3220a3f8c6f73784a7e (diff)
evergreen: use vbo pool for constant buffers
Diffstat (limited to 'src/radeon_exa_shared.c')
-rw-r--r--src/radeon_exa_shared.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/radeon_exa_shared.c b/src/radeon_exa_shared.c
index 9aa4f398..2ef07511 100644
--- a/src/radeon_exa_shared.c
+++ b/src/radeon_exa_shared.c
@@ -166,6 +166,7 @@ int radeon_cp_start(ScrnInfoPtr pScrn)
}
}
accel_state->vbo.vb_start_op = accel_state->vbo.vb_offset;
+ accel_state->cbuf.vb_start_op = accel_state->cbuf.vb_offset;
return 0;
}
@@ -214,6 +215,8 @@ void radeon_ib_discard(ScrnInfoPtr pScrn)
info->accel_state->vbo.vb_offset = 0;
info->accel_state->vbo.vb_start_op = -1;
+ info->accel_state->cbuf.vb_offset = 0;
+ info->accel_state->cbuf.vb_start_op = -1;
if (CS_FULL(info->cs)) {
radeon_cs_flush_indirect(pScrn);
@@ -226,6 +229,14 @@ void radeon_ib_discard(ScrnInfoPtr pScrn)
if (ret)
ErrorF("space check failed in flush\n");
+ if (info->accel_state->cbuf.vb_bo) {
+ ret = radeon_cs_space_check_with_bo(info->cs,
+ info->accel_state->cbuf.vb_bo,
+ RADEON_GEM_DOMAIN_GTT, 0);
+ if (ret)
+ ErrorF("space check failed in flush\n");
+ }
+
out:
if (info->dri2.enabled) {
info->accel_state->XInited3D = FALSE;