fprintf(stderr, " BOs cached: %d\n", cache_count);
fprintf(stderr, " BOs cached size: %dkb\n", cache_size / 1024);
- if (!list_empty(&cache->time_list)) {
+ if (!list_is_empty(&cache->time_list)) {
struct v3d_bo *first = list_first_entry(&cache->time_list,
struct v3d_bo,
time_list);
struct v3d_bo *bo = NULL;
mtx_lock(&cache->lock);
- if (!list_empty(&cache->size_list[page_index])) {
+ if (!list_is_empty(&cache->size_list[page_index])) {
bo = list_first_entry(&cache->size_list[page_index],
struct v3d_bo, size_list);
struct v3d_bo *bo;
int ret;
+ /* The CLIF dumping requires that there is no whitespace in the name.
+ */
+ assert(!strchr(name, ' '));
+
size = align(size, 4096);
bo = v3d_bo_from_cache(screen, size, name);
bo->offset = create.offset;
if (ret != 0) {
- if (!list_empty(&screen->bo_cache.time_list) &&
+ if (!list_is_empty(&screen->bo_cache.time_list) &&
!cleared_and_retried) {
cleared_and_retried = true;
v3d_bo_cache_free_all(&screen->bo_cache);
*/
for (int i = 0; i < cache->size_list_size; i++) {
struct list_head *old_head = &cache->size_list[i];
- if (list_empty(old_head))
+ if (list_is_empty(old_head))
list_inithead(&new_list[i]);
else {
new_list[i].next = old_head->next;
static struct v3d_bo *
v3d_bo_open_handle(struct v3d_screen *screen,
- uint32_t winsys_stride,
uint32_t handle, uint32_t size)
{
struct v3d_bo *bo;
bo->private = false;
#ifdef USE_V3D_SIMULATOR
- v3d_simulator_open_from_handle(screen->fd, winsys_stride,
- bo->handle, bo->size);
+ v3d_simulator_open_from_handle(screen->fd, bo->handle, bo->size);
bo->map = malloc(bo->size);
#endif
util_hash_table_set(screen->bo_handles, (void *)(uintptr_t)handle, bo);
+ screen->bo_count++;
+ screen->bo_size += bo->size;
+
done:
mtx_unlock(&screen->bo_handles_mutex);
return bo;
}
struct v3d_bo *
-v3d_bo_open_name(struct v3d_screen *screen, uint32_t name,
- uint32_t winsys_stride)
+v3d_bo_open_name(struct v3d_screen *screen, uint32_t name)
{
struct drm_gem_open o = {
.name = name
return NULL;
}
- return v3d_bo_open_handle(screen, winsys_stride, o.handle, o.size);
+ return v3d_bo_open_handle(screen, o.handle, o.size);
}
struct v3d_bo *
-v3d_bo_open_dmabuf(struct v3d_screen *screen, int fd, uint32_t winsys_stride)
+v3d_bo_open_dmabuf(struct v3d_screen *screen, int fd)
{
uint32_t handle;
int ret = drmPrimeFDToHandle(screen->fd, fd, &handle);
return NULL;
}
- return v3d_bo_open_handle(screen, winsys_stride, handle, size);
+ return v3d_bo_open_handle(screen, handle, size);
}
int