Module: Mesa Branch: master Commit: 189a59751352208cb0386131f9ad82256ec9bed9 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=189a59751352208cb0386131f9ad82256ec9bed9
Author: Dave Airlie <[email protected]> Date: Fri Sep 17 12:51:04 2010 +1000 r600g: use malloc bufmgr for constant buffers --- src/gallium/winsys/r600/drm/radeon.c | 7 +++++++ src/gallium/winsys/r600/drm/radeon_priv.h | 1 + src/gallium/winsys/r600/drm/radeon_ws_bo.c | 2 +- 3 files changed, 9 insertions(+), 1 deletions(-) diff --git a/src/gallium/winsys/r600/drm/radeon.c b/src/gallium/winsys/r600/drm/radeon.c index 2135b07..7b88075 100644 --- a/src/gallium/winsys/r600/drm/radeon.c +++ b/src/gallium/winsys/r600/drm/radeon.c @@ -20,6 +20,7 @@ #include <unistd.h> #include <string.h> #include <errno.h> +#include <pipebuffer/pb_bufmgr.h> #include "xf86drm.h" #include "radeon_priv.h" #include "radeon_drm.h" @@ -125,6 +126,10 @@ struct radeon *radeon_new(int fd, unsigned device) __func__, radeon->device); break; } + + radeon->mman = pb_malloc_bufmgr_create(); + if (!radeon->mman) + return NULL; return radeon; } @@ -143,6 +148,8 @@ struct radeon *radeon_decref(struct radeon *radeon) if (--radeon->refcount > 0) { return NULL; } + + radeon->mman->destroy(radeon->mman); drmClose(radeon->fd); free(radeon); return NULL; diff --git a/src/gallium/winsys/r600/drm/radeon_priv.h b/src/gallium/winsys/r600/drm/radeon_priv.h index 49fe1a6..cb18d15 100644 --- a/src/gallium/winsys/r600/drm/radeon_priv.h +++ b/src/gallium/winsys/r600/drm/radeon_priv.h @@ -87,6 +87,7 @@ struct radeon { struct radeon_stype_info *stype; unsigned max_states; boolean use_mem_constant; /* true for evergreen */ + struct pb_manager *mman; /* malloc manager */ }; struct radeon_ws_bo { diff --git a/src/gallium/winsys/r600/drm/radeon_ws_bo.c b/src/gallium/winsys/r600/drm/radeon_ws_bo.c index 422e298..09e379f 100644 --- a/src/gallium/winsys/r600/drm/radeon_ws_bo.c +++ b/src/gallium/winsys/r600/drm/radeon_ws_bo.c @@ -12,7 +12,7 @@ struct radeon_ws_bo *radeon_ws_bo(struct radeon *radeon, if (radeon->use_mem_constant && (usage & PIPE_BIND_CONSTANT_BUFFER)) { desc.alignment = alignment; desc.usage = usage; - ws_bo->pb = pb_malloc_buffer_create(size, &desc); + ws_bo->pb = radeon->mman->create_buffer(radeon->mman, size, &desc); if (ws_bo->pb == NULL) { free(ws_bo); return NULL; _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
