Lines Matching refs:sscreen
45 void si_init_resource_fields(struct si_screen *sscreen, struct si_resource *res, uint64_t size,
59 if (sscreen->info.smart_access_memory)
92 if (!sscreen->info.is_amdgpu)
111 (sscreen->debug_flags & DBG(TMZ) &&
118 if (sscreen->debug_flags & DBG(NO_WC))
137 if (sscreen->info.gfx_level >= GFX9 &&
142 sscreen->info.drm_major == 3 && sscreen->info.drm_minor >= 47) {
149 sscreen->options.mall_noalloc)
160 if (!sscreen->info.smart_access_memory &&
161 sscreen->info.has_dedicated_vram &&
163 size >= sscreen->options.max_vram_map_size)
168 bool si_alloc_resource(struct si_screen *sscreen, struct si_resource *res)
173 new_buf = sscreen->ws->buffer_create(sscreen->ws, res->bo_size, 1 << res->bo_alignment_log2,
185 res->gpu_address = sscreen->ws->buffer_get_virtual_address(res->buf);
193 assert((start >> 32) == sscreen->info.address32_hi);
194 assert((last >> 32) == sscreen->info.address32_hi);
197 radeon_bo_reference(sscreen->ws, &old_buf, NULL);
203 if (sscreen->debug_flags & DBG(VM) && res->b.b.target == PIPE_BUFFER) {
209 si_screen_clear_buffer(sscreen, &res->b.b, 0, res->bo_size, 0, SI_OP_SYNC_AFTER);
217 struct si_screen *sscreen = (struct si_screen *)screen;
223 util_idalloc_mt_free(&sscreen->buffer_ids, buffer->b.buffer_id_unique);
583 struct si_screen *sscreen = (struct si_screen *)screen;
586 templ->width0 <= sscreen->options.tc_max_cpu_storage_size);
591 si_init_resource_fields(sscreen, buf, templ->width0, alignment);
593 buf->b.buffer_id_unique = util_idalloc_mt_alloc(&sscreen->buffer_ids);
595 if (!si_alloc_resource(sscreen, buf)) {
631 struct si_screen *sscreen = (struct si_screen *)screen;
632 struct radeon_winsys *ws = sscreen->ws;
641 buf->b.buffer_id_unique = util_idalloc_mt_alloc(&sscreen->buffer_ids);
663 struct si_screen *sscreen = (struct si_screen *)screen;
669 enum radeon_bo_domain domains = sscreen->ws->buffer_get_initial_domain(imported_buf);
674 if (sscreen->ws->buffer_get_flags)
675 res->flags |= sscreen->ws->buffer_get_flags(imported_buf);
696 si_init_resource_fields(sscreen, res, imported_buf->size,
700 res->b.buffer_id_unique = util_idalloc_mt_alloc(&sscreen->buffer_ids);
702 res->gpu_address = sscreen->ws->buffer_get_virtual_address(res->buf) + offset;
756 void si_init_screen_buffer_functions(struct si_screen *sscreen)
758 sscreen->b.resource_create = si_resource_create;
759 sscreen->b.resource_destroy = si_resource_destroy;
760 sscreen->b.resource_from_user_memory = si_buffer_from_user_memory;