xf86-video-ati: Branch 'master'
Alex Deucher
agd5f at kemper.freedesktop.org
Fri Jan 21 14:35:16 PST 2011
src/radeon_vbo.c | 8 +++++++-
src/radeon_vbo.h | 16 +++-------------
2 files changed, 10 insertions(+), 14 deletions(-)
New commits:
commit fadee0409a8e13b78bbccb83dd70f590fee23d57
Author: Alex Deucher <alexdeucher at gmail.com>
Date: Fri Jan 21 17:30:28 2011 -0500
vbo: balance radeon_vbo_get() and radeon_vbo_put()
bo_ref() and bo_map() in radeon_vbo_get()
bo_unmap() and bo_unref() in radeon_vbo_put()
rather than doing the bo_map() separately in
radeon_vbo_space().
diff --git a/src/radeon_vbo.c b/src/radeon_vbo.c
index c0a668f..a72224f 100644
--- a/src/radeon_vbo.c
+++ b/src/radeon_vbo.c
@@ -56,8 +56,15 @@ void radeon_vbo_put(ScrnInfoPtr pScrn, struct radeon_vbo_object *vbo)
void radeon_vbo_get(ScrnInfoPtr pScrn, struct radeon_vbo_object *vbo)
{
+ int ret;
vbo->vb_bo = radeon_vbo_get_bo(pScrn);
+ if (vbo->vb_bo) {
+ radeon_bo_ref(vbo->vb_bo);
+ ret = radeon_bo_map(vbo->vb_bo, 1);
+ if (ret)
+ FatalError("Failed to map vb %d\n", ret);
+ }
vbo->vb_total = VBO_SIZE;
vbo->vb_offset = 0;
@@ -195,7 +202,6 @@ again_alloc:
}
bo = first_elem(&accel_state->bo_reserved)->bo;
- radeon_bo_ref(bo);
return bo;
}
diff --git a/src/radeon_vbo.h b/src/radeon_vbo.h
index f64930e..583f262 100644
--- a/src/radeon_vbo.h
+++ b/src/radeon_vbo.h
@@ -35,19 +35,9 @@ radeon_vbo_space(ScrnInfoPtr pScrn,
vbo->vb_op_vert_size = vert_size;
#if defined(XF86DRM_MODE)
- if (info->cs) {
- int ret;
- struct radeon_bo *bo = vbo->vb_bo;
-
- if (!bo->ptr) {
- ret = radeon_bo_map(bo, 1);
- if (ret) {
- FatalError("Failed to map vb %d\n", ret);
- return NULL;
- }
- }
- vb = (pointer)((char *)bo->ptr + vbo->vb_offset);
- } else
+ if (info->cs)
+ vb = (pointer)((char *)vbo->vb_bo->ptr + vbo->vb_offset);
+ else
#endif
vb = (pointer)((char *)vbo->vb_ptr + vbo->vb_offset);
return vb;
More information about the xorg-commit
mailing list