diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-08-23 18:58:12 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2010-08-23 18:58:12 -0400 |
commit | f170dddd3538a587f2363ef5fa10a4b484e762da (patch) | |
tree | f69ac2e795cff6fb12802e5b21d12215d2431504 /src/radeon_exa_shared.c | |
parent | eede93b057bbdddcde5da3220a3f8c6f73784a7e (diff) |
evergreen: use vbo pool for constant buffers
Diffstat (limited to 'src/radeon_exa_shared.c')
-rw-r--r-- | src/radeon_exa_shared.c | 11 |
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; |