Lines Matching refs:pvr_bo
29 #include "pvr_bo.h"
77 struct pvr_bo **const pvr_bo_out)
80 struct pvr_bo *pvr_bo;
84 pvr_bo = vk_alloc(&device->vk.alloc,
85 sizeof(*pvr_bo),
88 if (!pvr_bo)
96 &pvr_bo->bo);
101 void *map = device->ws->ops->buffer_map(pvr_bo->bo);
108 pvr_bo->vma = device->ws->ops->heap_alloc(heap, size, alignment);
109 if (!pvr_bo->vma) {
114 addr = device->ws->ops->vma_map(pvr_bo->vma, pvr_bo->bo, 0, size);
120 *pvr_bo_out = pvr_bo;
125 device->ws->ops->heap_free(pvr_bo->vma);
129 device->ws->ops->buffer_unmap(pvr_bo->bo);
132 device->ws->ops->buffer_destroy(pvr_bo->bo);
135 vk_free(&device->vk.alloc, pvr_bo);
148 * \param[in] pvr_bo Buffer to map.
153 void *pvr_bo_cpu_map(struct pvr_device *device, struct pvr_bo *pvr_bo)
155 assert(!pvr_bo->bo->map);
157 return device->ws->ops->buffer_map(pvr_bo->bo);
170 * \param[in] pvr_bo Buffer to unmap.
172 void pvr_bo_cpu_unmap(struct pvr_device *device, struct pvr_bo *pvr_bo)
174 assert(pvr_bo->bo->map);
175 device->ws->ops->buffer_unmap(pvr_bo->bo);
182 * \param[in] pvr_bo Buffer to free.
186 void pvr_bo_free(struct pvr_device *device, struct pvr_bo *pvr_bo)
188 if (!pvr_bo)
191 device->ws->ops->vma_unmap(pvr_bo->vma);
192 device->ws->ops->heap_free(pvr_bo->vma);
194 if (pvr_bo->bo->map)
195 device->ws->ops->buffer_unmap(pvr_bo->bo);
197 device->ws->ops->buffer_destroy(pvr_bo->bo);
199 vk_free(&device->vk.alloc, pvr_bo);