r600g: add support for kernel bo
[mesa.git] / src / gallium / winsys / r600 / drm / radeon.c
index 2135b07ab639f781b3c44709726b22f90c6b992f..8a5acf6256207777ebc4dc43ed31c59ff92f265f 100644 (file)
@@ -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,13 @@ struct radeon *radeon_new(int fd, unsigned device)
                        __func__, radeon->device);
                break;
        }
+
+       radeon->mman = pb_malloc_bufmgr_create();
+       if (!radeon->mman)
+               return NULL;
+       radeon->kman = radeon_bo_pbmgr_create(radeon);
+       if (!radeon->kman)
+               return NULL;
        return radeon;
 }
 
@@ -143,6 +151,9 @@ struct radeon *radeon_decref(struct radeon *radeon)
        if (--radeon->refcount > 0) {
                return NULL;
        }
+
+       radeon->mman->destroy(radeon->mman);
+       radeon->kman->destroy(radeon->kman);
        drmClose(radeon->fd);
        free(radeon);
        return NULL;