Lines Matching refs:screen

43    struct nouveau_screen *screen = nouveau_screen(pscreen);
44 return screen->chipset_name;
84 nouveau_screen_fence_finish(struct pipe_screen *screen,
155 nouveau_disk_cache_create(struct nouveau_screen *screen)
170 if (screen->prefer_nir)
175 screen->disk_shader_cache =
176 disk_cache_create(nouveau_screen_get_name(&screen->base),
191 nouveau_screen_init(struct nouveau_screen *screen, struct nouveau_device *dev)
193 struct pipe_screen *pscreen = &screen->base;
205 screen->prefer_nir = !debug_get_bool_option("NV50_PROG_USE_TGSI", false);
207 screen->force_enable_cl = debug_get_bool_option("NOUVEAU_ENABLE_CL", false);
208 if (screen->force_enable_cl)
211 screen->disable_fences = debug_get_bool_option("NOUVEAU_DISABLE_FENCES", false);
216 screen->drm = nouveau_drm(&dev->object);
217 screen->device = dev;
220 * this is initialized to 1 in nouveau_drm_screen_create after screen
221 * is fully constructed and added to the global screen list.
223 screen->refcount = -1;
234 screen->has_svm = false;
236 if (dev->chipset > 0x130 && screen->force_enable_cl && enable_svm) {
249 screen->svm_cutout_size =
252 size_t start = screen->svm_cutout_size;
254 screen->svm_cutout = reserve_vma(start, screen->svm_cutout_size);
255 if (!screen->svm_cutout) {
256 start += screen->svm_cutout_size;
261 .unmanaged_addr = (uintptr_t)screen->svm_cutout,
262 .unmanaged_size = screen->svm_cutout_size,
265 ret = drmCommandWrite(screen->drm->fd, DRM_NOUVEAU_SVM_INIT,
267 screen->has_svm = !ret;
268 if (!screen->has_svm)
269 os_munmap(screen->svm_cutout, screen->svm_cutout_size);
271 } while ((start + screen->svm_cutout_size) < BITFIELD64_MASK(limit_bit));
278 screen->tegra_sector_layout = true;
282 screen->tegra_sector_layout = false;
289 if (!screen->vram_domain) {
291 screen->vram_domain = NOUVEAU_BO_VRAM;
293 screen->vram_domain = NOUVEAU_BO_GART;
297 data, size, &screen->channel);
301 ret = nouveau_client_new(screen->device, &screen->client);
304 ret = nouveau_pushbuf_new(screen->client, screen->channel,
306 &screen->pushbuf);
311 screen->cpu_gpu_time_delta = os_time_get();
315 screen->cpu_gpu_time_delta = time - screen->cpu_gpu_time_delta * 1000;
317 snprintf(screen->chipset_name, sizeof(screen->chipset_name), "NV%02X", dev->chipset);
328 nouveau_disk_cache_create(screen);
330 screen->transfer_pushbuf_threshold = 192;
331 screen->lowmem_bindings = PIPE_BIND_GLOBAL; /* gallium limit */
332 screen->vidmem_bindings =
340 screen->sysmem_bindings =
346 screen->mm_GART = nouveau_mm_create(dev,
349 screen->mm_VRAM = nouveau_mm_create(dev, NOUVEAU_BO_VRAM, &mm_config);
353 if (screen->svm_cutout)
354 os_munmap(screen->svm_cutout, screen->svm_cutout_size);
359 nouveau_screen_fini(struct nouveau_screen *screen)
361 int fd = screen->drm->fd;
363 if (screen->force_enable_cl)
365 if (screen->has_svm)
366 os_munmap(screen->svm_cutout, screen->svm_cutout_size);
368 nouveau_mm_destroy(screen->mm_GART);
369 nouveau_mm_destroy(screen->mm_VRAM);
371 nouveau_pushbuf_del(&screen->pushbuf);
373 nouveau_client_del(&screen->client);
374 nouveau_object_del(&screen->channel);
376 nouveau_device_del(&screen->device);
377 nouveau_drm_del(&screen->drm);
380 disk_cache_destroy(screen->disk_shader_cache);