Lines Matching refs:screen
130 struct fd_screen *screen = fd_screen(pscreen); in fd_screen_get_timestamp() local
132 if (screen->has_timestamp) { in fd_screen_get_timestamp()
134 fd_pipe_get_param(screen->pipe, FD_TIMESTAMP, &n); in fd_screen_get_timestamp()
135 debug_assert(screen->max_freq > 0); in fd_screen_get_timestamp()
136 return n * 1000000000 / screen->max_freq; in fd_screen_get_timestamp()
139 return cpu_time + screen->cpu_gpu_time_delta; in fd_screen_get_timestamp()
147 struct fd_screen *screen = fd_screen(pscreen); in fd_screen_destroy() local
149 if (screen->pipe) in fd_screen_destroy()
150 fd_pipe_del(screen->pipe); in fd_screen_destroy()
152 if (screen->dev) in fd_screen_destroy()
153 fd_device_del(screen->dev); in fd_screen_destroy()
155 if (screen->ro) in fd_screen_destroy()
156 FREE(screen->ro); in fd_screen_destroy()
158 fd_bc_fini(&screen->batch_cache); in fd_screen_destroy()
161 slab_destroy_parent(&screen->transfer_pool); in fd_screen_destroy()
163 simple_mtx_destroy(&screen->lock); in fd_screen_destroy()
167 if (screen->compiler) in fd_screen_destroy()
168 ir3_compiler_destroy(screen->compiler); in fd_screen_destroy()
170 ralloc_free(screen->live_batches); in fd_screen_destroy()
172 free(screen->perfcntr_queries); in fd_screen_destroy()
173 free(screen); in fd_screen_destroy()
183 struct fd_screen *screen = fd_screen(pscreen); in fd_screen_get_param() local
212 return !is_a2xx(screen); in fd_screen_get_param()
215 return is_a2xx(screen); in fd_screen_get_param()
217 return !is_a2xx(screen); in fd_screen_get_param()
220 return !is_a2xx(screen); in fd_screen_get_param()
224 return screen->has_robustness; in fd_screen_get_param()
227 return is_a3xx(screen) || is_a4xx(screen); in fd_screen_get_param()
230 return has_compute(screen); in fd_screen_get_param()
254 return is_a3xx(screen) || is_a4xx(screen) || is_a5xx(screen) || is_a6xx(screen); in fd_screen_get_param()
260 return is_a5xx(screen) || is_a6xx(screen); in fd_screen_get_param()
263 return is_a6xx(screen); in fd_screen_get_param()
266 return is_a3xx(screen) || is_a4xx(screen) || is_a6xx(screen); in fd_screen_get_param()
269 return is_a6xx(screen); in fd_screen_get_param()
272 return is_a4xx(screen) || is_a5xx(screen) || is_a6xx(screen); in fd_screen_get_param()
275 if (is_a3xx(screen)) return 16; in fd_screen_get_param()
276 if (is_a4xx(screen)) return 32; in fd_screen_get_param()
277 if (is_a5xx(screen)) return 32; in fd_screen_get_param()
278 if (is_a6xx(screen)) return 64; in fd_screen_get_param()
284 if (is_a3xx(screen)) return 8192; in fd_screen_get_param()
285 if (is_a4xx(screen)) return 16384; in fd_screen_get_param()
286 if (is_a5xx(screen)) return 16384; in fd_screen_get_param()
287 if (is_a6xx(screen)) return 1 << 27; in fd_screen_get_param()
294 return is_a4xx(screen) || is_a5xx(screen) || is_a6xx(screen); in fd_screen_get_param()
302 return is_a4xx(screen); in fd_screen_get_param()
305 return is_a2xx(screen) ? 64 : 32; in fd_screen_get_param()
309 return is_ir3(screen) ? 140 : 120; in fd_screen_get_param()
313 if (is_a6xx(screen)) return 320; in fd_screen_get_param()
314 if (is_a5xx(screen)) return 310; in fd_screen_get_param()
315 if (is_ir3(screen)) return 300; in fd_screen_get_param()
319 if (is_a6xx(screen)) return 64; in fd_screen_get_param()
320 if (is_a5xx(screen)) return 4; in fd_screen_get_param()
324 if (is_a4xx(screen) || is_a5xx(screen) || is_a6xx(screen)) in fd_screen_get_param()
333 if (fd_device_version(screen->dev) >= FD_VERSION_GMEM_BASE && in fd_screen_get_param()
334 is_a6xx(screen)) in fd_screen_get_param()
338 if (is_a6xx(screen)) return 1; in fd_screen_get_param()
342 return screen->priority_mask; in fd_screen_get_param()
345 if (is_a4xx(screen) || is_a5xx(screen) || is_a6xx(screen)) in fd_screen_get_param()
350 if (is_a4xx(screen) || is_a5xx(screen) || is_a6xx(screen)) in fd_screen_get_param()
356 if (is_ir3(screen)) in fd_screen_get_param()
384 if (is_ir3(screen)) in fd_screen_get_param()
398 if (is_ir3(screen)) in fd_screen_get_param()
405 if (is_ir3(screen)) in fd_screen_get_param()
411 return is_a2xx(screen); in fd_screen_get_param()
414 if (is_ir3(screen)) in fd_screen_get_param()
420 if (is_a6xx(screen) || is_a5xx(screen) || is_a4xx(screen)) in fd_screen_get_param()
425 if (is_a6xx(screen) || is_a5xx(screen) || is_a4xx(screen)) in fd_screen_get_param()
433 return (is_a3xx(screen) || is_a4xx(screen) || is_a5xx(screen) || is_a6xx(screen)) ? 256 : 0; in fd_screen_get_param()
437 return screen->max_rts; in fd_screen_get_param()
439 return is_a3xx(screen) ? 1 : 0; in fd_screen_get_param()
443 return is_a3xx(screen) || is_a4xx(screen) || is_a5xx(screen) || is_a6xx(screen); in fd_screen_get_param()
447 return (screen->max_freq > 0) && (is_a4xx(screen) || is_a5xx(screen) || is_a6xx(screen)); in fd_screen_get_param()
461 return fd_device_version(screen->dev) >= FD_VERSION_MEMORY_FD; in fd_screen_get_param()
463 return fd_device_version(screen->dev) >= FD_VERSION_FENCE_FD; in fd_screen_get_param()
465 return screen->has_syncobj; in fd_screen_get_param()
467 return is_a6xx(screen); in fd_screen_get_param()
510 struct fd_screen *screen = fd_screen(pscreen); in fd_screen_get_shader_param() local
520 if (is_a6xx(screen)) in fd_screen_get_shader_param()
524 if (has_compute(screen)) in fd_screen_get_shader_param()
551 …return ((is_a3xx(screen) || is_a4xx(screen) || is_a5xx(screen) || is_a6xx(screen)) ? 4096 : 64) * … in fd_screen_get_shader_param()
553 return is_ir3(screen) ? 16 : 1; in fd_screen_get_shader_param()
570 return is_ir3(screen) ? 1 : 0; in fd_screen_get_shader_param()
585 return is_ir3(screen) ? 1 : 0; in fd_screen_get_shader_param()
592 return ((is_a5xx(screen) || is_a6xx(screen)) && in fd_screen_get_shader_param()
607 if (is_a5xx(screen) || is_a6xx(screen)) { in fd_screen_get_shader_param()
652 struct fd_screen *screen = fd_screen(pscreen); in fd_get_compute_param() local
655 if (!has_compute(screen)) in fd_get_compute_param()
691 RET((uint64_t []) { screen->ram_size }); in fd_get_compute_param()
701 RET((uint64_t []) { screen->ram_size }); in fd_get_compute_param()
704 RET((uint32_t []) { screen->max_freq / 1000000 }); in fd_get_compute_param()
726 struct fd_screen *screen = fd_screen(pscreen); in fd_get_compiler_options() local
728 if (is_ir3(screen)) in fd_get_compiler_options()
729 return ir3_get_compiler_options(screen->compiler); in fd_get_compiler_options()
737 struct fd_screen *screen = fd_screen(pscreen); in fd_get_disk_shader_cache() local
739 if (is_ir3(screen)) { in fd_get_disk_shader_cache()
740 struct ir3_compiler *compiler = screen->compiler; in fd_get_disk_shader_cache()
778 struct fd_screen *screen = fd_screen(pscreen); in fd_screen_query_dmabuf_modifiers() local
781 max = MIN2(max, screen->num_supported_modifiers); in fd_screen_query_dmabuf_modifiers()
784 max = screen->num_supported_modifiers; in fd_screen_query_dmabuf_modifiers()
791 modifiers[num] = screen->supported_modifiers[i]; in fd_screen_query_dmabuf_modifiers()
806 struct fd_screen *screen = fd_screen(pscreen); in fd_screen_bo_from_handle() local
810 bo = fd_bo_from_name(screen->dev, whandle->handle); in fd_screen_bo_from_handle()
812 bo = fd_bo_from_handle(screen->dev, whandle->handle, 0); in fd_screen_bo_from_handle()
814 bo = fd_bo_from_dmabuf(screen->dev, whandle->handle); in fd_screen_bo_from_handle()
838 struct fd_screen *screen = fd_screen(pscreen); in fd_screen_get_device_uuid() local
840 fd_get_device_uuid(uuid, screen->gpu_id); in fd_screen_get_device_uuid()
852 struct fd_screen *screen = CALLOC_STRUCT(fd_screen); in fd_screen_create() local
861 if (!screen) in fd_screen_create()
864 pscreen = &screen->base; in fd_screen_create()
866 screen->dev = dev; in fd_screen_create()
867 screen->refcnt = 1; in fd_screen_create()
870 screen->ro = renderonly_dup(ro); in fd_screen_create()
871 if (!screen->ro) { in fd_screen_create()
878 screen->pipe = fd_pipe_new(screen->dev, FD_PIPE_3D); in fd_screen_create()
879 if (!screen->pipe) { in fd_screen_create()
884 if (fd_pipe_get_param(screen->pipe, FD_GMEM_SIZE, &val)) { in fd_screen_create()
888 screen->gmemsize_bytes = env_var_as_unsigned("FD_MESA_GMEM", val); in fd_screen_create()
891 fd_pipe_get_param(screen->pipe, FD_GMEM_BASE, &screen->gmem_base); in fd_screen_create()
894 if (fd_pipe_get_param(screen->pipe, FD_DEVICE_ID, &val)) { in fd_screen_create()
898 screen->device_id = val; in fd_screen_create()
900 if (fd_pipe_get_param(screen->pipe, FD_MAX_FREQ, &val)) { in fd_screen_create()
905 screen->max_freq = 0; in fd_screen_create()
907 screen->max_freq = val; in fd_screen_create()
908 if (fd_pipe_get_param(screen->pipe, FD_TIMESTAMP, &val) == 0) in fd_screen_create()
909 screen->has_timestamp = true; in fd_screen_create()
912 if (fd_pipe_get_param(screen->pipe, FD_GPU_ID, &val)) { in fd_screen_create()
916 screen->gpu_id = val; in fd_screen_create()
918 if (fd_pipe_get_param(screen->pipe, FD_CHIP_ID, &val)) { in fd_screen_create()
921 unsigned core = screen->gpu_id / 100; in fd_screen_create()
922 unsigned major = (screen->gpu_id % 100) / 10; in fd_screen_create()
923 unsigned minor = screen->gpu_id % 10; in fd_screen_create()
928 screen->chip_id = val; in fd_screen_create()
930 if (fd_pipe_get_param(screen->pipe, FD_NR_RINGS, &val)) { in fd_screen_create()
932 screen->priority_mask = 0; in fd_screen_create()
935 screen->priority_mask = (1 << val) - 1; in fd_screen_create()
939 screen->has_robustness = true; in fd_screen_create()
941 screen->has_syncobj = fd_has_syncobj(screen->dev); in fd_screen_create()
945 screen->ram_size = si.totalram; in fd_screen_create()
948 DBG(" GPU-id: %d", screen->gpu_id); in fd_screen_create()
949 DBG(" Chip-id: 0x%08x", screen->chip_id); in fd_screen_create()
950 DBG(" GMEM size: 0x%08x", screen->gmemsize_bytes); in fd_screen_create()
963 switch (screen->gpu_id) { in fd_screen_create()
993 debug_printf("unsupported GPU: a%03d\n", screen->gpu_id); in fd_screen_create()
997 freedreno_dev_info_init(&screen->info, screen->gpu_id); in fd_screen_create()
1000 screen->perfcntr_groups = fd_perfcntrs(screen->gpu_id, in fd_screen_create()
1001 &screen->num_perfcntr_groups); in fd_screen_create()
1009 screen->reorder = !(fd_mesa_debug & FD_DBG_INORDER); in fd_screen_create()
1012 screen->live_batches = _mesa_pointer_set_create(NULL); in fd_screen_create()
1014 fd_bc_init(&screen->batch_cache); in fd_screen_create()
1016 list_inithead(&screen->context_list); in fd_screen_create()
1018 (void) simple_mtx_init(&screen->lock, mtx_plain); in fd_screen_create()
1047 slab_create_parent(&screen->transfer_pool, sizeof(struct fd_transfer), 16); in fd_screen_create()