Lines Matching refs:screen
44 v3d_bo_dump_stats(struct v3d_screen *screen)
46 struct v3d_bo_cache *cache = &screen->bo_cache;
55 fprintf(stderr, " BOs allocated: %d\n", screen->bo_count);
56 fprintf(stderr, " BOs size: %dkb\n", screen->bo_size / 1024);
88 v3d_bo_from_cache(struct v3d_screen *screen, uint32_t size, const char *name)
90 struct v3d_bo_cache *cache = &screen->bo_cache;
121 v3d_bo_alloc(struct v3d_screen *screen, uint32_t size, const char *name)
132 bo = v3d_bo_from_cache(screen, size, name);
137 v3d_bo_dump_stats(screen);
147 bo->screen = screen;
160 ret = v3d_ioctl(screen->fd, DRM_IOCTL_V3D_CREATE_BO, &create);
165 if (!list_is_empty(&screen->bo_cache.time_list) &&
168 v3d_bo_cache_free_all(&screen->bo_cache);
176 screen->bo_count++;
177 screen->bo_size += bo->size;
180 v3d_bo_dump_stats(screen);
189 struct v3d_screen *screen = bo->screen;
193 mtx_lock(&screen->bo_cache.lock);
195 mtx_unlock(&screen->bo_cache.lock);
201 struct v3d_screen *screen = bo->screen;
216 int ret = v3d_ioctl(screen->fd, DRM_IOCTL_GEM_CLOSE, &c);
220 screen->bo_count--;
221 screen->bo_size -= bo->size;
228 v3d_bo_dump_stats(screen);
235 free_stale_bos(struct v3d_screen *screen, time_t time)
237 struct v3d_bo_cache *cache = &screen->bo_cache;
246 v3d_bo_dump_stats(screen);
258 v3d_bo_dump_stats(screen);
277 struct v3d_screen *screen = bo->screen;
278 struct v3d_bo_cache *cache = &screen->bo_cache;
288 ralloc_array(screen, struct list_head, page_index + 1);
317 v3d_bo_dump_stats(screen);
321 free_stale_bos(screen, time);
325 v3d_bo_open_handle(struct v3d_screen *screen,
332 mtx_lock(&screen->bo_handles_mutex);
334 bo = util_hash_table_get(screen->bo_handles, (void*)(uintptr_t)handle);
342 bo->screen = screen;
349 v3d_simulator_open_from_handle(screen->fd, bo->handle, bo->size);
356 int ret = v3d_ioctl(screen->fd, DRM_IOCTL_V3D_GET_BO_OFFSET, &get);
368 _mesa_hash_table_insert(screen->bo_handles, (void *)(uintptr_t)handle, bo);
370 screen->bo_count++;
371 screen->bo_size += bo->size;
374 mtx_unlock(&screen->bo_handles_mutex);
379 v3d_bo_open_name(struct v3d_screen *screen, uint32_t name)
384 int ret = v3d_ioctl(screen->fd, DRM_IOCTL_GEM_OPEN, &o);
391 return v3d_bo_open_handle(screen, o.handle, o.size);
395 v3d_bo_open_dmabuf(struct v3d_screen *screen, int fd)
398 int ret = drmPrimeFDToHandle(screen->fd, fd, &handle);
412 return v3d_bo_open_handle(screen, handle, size);
419 int ret = drmPrimeHandleToFD(bo->screen->fd, bo->handle,
427 mtx_lock(&bo->screen->bo_handles_mutex);
429 _mesa_hash_table_insert(bo->screen->bo_handles, (void *)(uintptr_t)bo->handle, bo);
430 mtx_unlock(&bo->screen->bo_handles_mutex);
441 int ret = v3d_ioctl(bo->screen->fd, DRM_IOCTL_GEM_FLINK, &flink);
472 struct v3d_screen *screen = bo->screen;
475 if (v3d_wait_bo_ioctl(screen->fd, bo->handle, 0) == -ETIME) {
481 int ret = v3d_wait_bo_ioctl(screen->fd, bo->handle, timeout_ns);
506 ret = v3d_ioctl(bo->screen->fd, DRM_IOCTL_V3D_MMAP_BO, &map);
514 bo->screen->fd, offset);
542 struct v3d_screen *screen = v3d_screen(pscreen);
543 struct v3d_bo_cache *cache = &screen->bo_cache;
548 fprintf(stderr, "BO stats after screen destroy:\n");
549 v3d_bo_dump_stats(screen);