Lines Matching refs:screen
52 vc4_bo_label(struct vc4_screen *screen, struct vc4_bo *bo, const char *fmt, ...)
72 vc4_ioctl(screen->fd, DRM_IOCTL_VC4_LABEL_BO, &label);
78 vc4_bo_dump_stats(struct vc4_screen *screen)
80 struct vc4_bo_cache *cache = &screen->bo_cache;
82 fprintf(stderr, " BOs allocated: %d\n", screen->bo_count);
83 fprintf(stderr, " BOs size: %dkb\n", screen->bo_size / 1024);
123 if (bo->screen->has_madvise)
124 vc4_ioctl(bo->screen->fd, DRM_IOCTL_VC4_GEM_MADVISE, &arg);
134 if (!bo->screen->has_madvise)
137 if (vc4_ioctl(bo->screen->fd, DRM_IOCTL_VC4_GEM_MADVISE, &arg))
146 struct vc4_screen *screen = bo->screen;
161 int ret = vc4_ioctl(screen->fd, DRM_IOCTL_GEM_CLOSE, &c);
165 screen->bo_count--;
166 screen->bo_size -= bo->size;
173 vc4_bo_dump_stats(screen);
180 vc4_bo_from_cache(struct vc4_screen *screen, uint32_t size, const char *name)
182 struct vc4_bo_cache *cache = &screen->bo_cache;
212 vc4_bo_label(screen, bo, "%s", name);
221 vc4_bo_alloc(struct vc4_screen *screen, uint32_t size, const char *name)
230 bo = vc4_bo_from_cache(screen, size, name);
235 vc4_bo_dump_stats(screen);
245 bo->screen = screen;
254 ret = vc4_ioctl(screen->fd, DRM_IOCTL_VC4_CREATE_BO, &create);
258 if (!list_is_empty(&screen->bo_cache.time_list) &&
261 vc4_bo_cache_free_all(&screen->bo_cache);
269 screen->bo_count++;
270 screen->bo_size += bo->size;
273 vc4_bo_dump_stats(screen);
276 vc4_bo_label(screen, bo, "%s", name);
284 struct vc4_screen *screen = bo->screen;
288 mtx_lock(&screen->bo_cache.lock);
290 mtx_unlock(&screen->bo_cache.lock);
294 free_stale_bos(struct vc4_screen *screen, time_t time)
296 struct vc4_bo_cache *cache = &screen->bo_cache;
303 vc4_bo_dump_stats(screen);
318 vc4_bo_dump_stats(screen);
337 struct vc4_screen *screen = bo->screen;
338 struct vc4_bo_cache *cache = &screen->bo_cache;
348 ralloc_array(screen, struct list_head, page_index + 1);
371 vc4_bo_dump_stats(screen);
374 vc4_bo_label(screen, bo, "mesa cache");
376 free_stale_bos(screen, time);
380 vc4_bo_open_handle(struct vc4_screen *screen,
387 mtx_lock(&screen->bo_handles_mutex);
389 bo = util_hash_table_get(screen->bo_handles, (void*)(uintptr_t)handle);
397 bo->screen = screen;
404 vc4_simulator_open_from_handle(screen->fd, bo->handle, bo->size);
408 _mesa_hash_table_insert(screen->bo_handles, (void *)(uintptr_t)handle, bo);
411 mtx_unlock(&screen->bo_handles_mutex);
416 vc4_bo_open_name(struct vc4_screen *screen, uint32_t name)
421 int ret = vc4_ioctl(screen->fd, DRM_IOCTL_GEM_OPEN, &o);
428 return vc4_bo_open_handle(screen, o.handle, o.size);
432 vc4_bo_open_dmabuf(struct vc4_screen *screen, int fd)
435 int ret = drmPrimeFDToHandle(screen->fd, fd, &handle);
449 return vc4_bo_open_handle(screen, handle, size);
456 int ret = drmPrimeHandleToFD(bo->screen->fd, bo->handle,
464 mtx_lock(&bo->screen->bo_handles_mutex);
466 _mesa_hash_table_insert(bo->screen->bo_handles, (void *)(uintptr_t)bo->handle, bo);
467 mtx_unlock(&bo->screen->bo_handles_mutex);
473 vc4_bo_alloc_shader(struct vc4_screen *screen, const void *data, uint32_t size)
483 bo->screen = screen;
493 ret = vc4_ioctl(screen->fd, DRM_IOCTL_VC4_CREATE_SHADER_BO,
502 screen->bo_count++;
503 screen->bo_size += bo->size;
506 vc4_bo_dump_stats(screen);
518 int ret = vc4_ioctl(bo->screen->fd, DRM_IOCTL_GEM_FLINK, &flink);
547 vc4_wait_seqno(struct vc4_screen *screen, uint64_t seqno, uint64_t timeout_ns,
550 if (screen->finished_seqno >= seqno)
554 if (vc4_wait_seqno_ioctl(screen->fd, seqno, 0) == -ETIME) {
560 int ret = vc4_wait_seqno_ioctl(screen->fd, seqno, timeout_ns);
570 screen->finished_seqno = seqno;
591 struct vc4_screen *screen = bo->screen;
594 if (vc4_wait_bo_ioctl(screen->fd, bo->handle, 0) == -ETIME) {
600 int ret = vc4_wait_bo_ioctl(screen->fd, bo->handle, timeout_ns);
625 ret = vc4_ioctl(bo->screen->fd, DRM_IOCTL_VC4_MMAP_BO, &map);
633 bo->screen->fd, offset);
661 struct vc4_screen *screen = vc4_screen(pscreen);
662 struct vc4_bo_cache *cache = &screen->bo_cache;
667 fprintf(stderr, "BO stats after screen destroy:\n");
668 vc4_bo_dump_stats(screen);