• Home
  • Raw
  • Download

Lines Matching full:instance

24  * Instance extensions add instance-level or physical-device-level
74 vn_instance_init_renderer_versions(struct vn_instance *instance) in vn_instance_init_renderer_versions() argument
77 VkResult result = vn_call_vkEnumerateInstanceVersion(instance->ring.ring, in vn_instance_init_renderer_versions()
81 vn_log(instance, "failed to enumerate renderer instance version"); in vn_instance_init_renderer_versions()
87 vn_log(instance, "unsupported renderer instance version %d.%d", in vn_instance_init_renderer_versions()
95 vn_log(instance, "renderer instance version %d.%d.%d", in vn_instance_init_renderer_versions()
102 instance->renderer_api_version = in vn_instance_init_renderer_versions()
103 MAX2(instance->base.base.app_info.api_version, VN_MIN_RENDERER_VERSION); in vn_instance_init_renderer_versions()
105 /* instance version for internal use is capped */ in vn_instance_init_renderer_versions()
106 instance_version = MIN3(instance_version, instance->renderer_api_version, in vn_instance_init_renderer_versions()
107 instance->renderer->info.vk_xml_version); in vn_instance_init_renderer_versions()
110 instance->renderer_version = instance_version; in vn_instance_init_renderer_versions()
116 vn_instance_fini_ring(struct vn_instance *instance) in vn_instance_fini_ring() argument
118 vn_watchdog_fini(&instance->ring.watchdog); in vn_instance_fini_ring()
121 &instance->ring.tls_rings, vk_head) in vn_instance_fini_ring()
124 vn_ring_destroy(instance->ring.ring); in vn_instance_fini_ring()
128 vn_instance_init_ring(struct vn_instance *instance) in vn_instance_init_ring() argument
133 /* default instance ring size */ in vn_instance_init_ring()
142 instance->ring.ring = vn_ring_create(instance, &layout, direct_order, in vn_instance_init_ring()
144 if (!instance->ring.ring) in vn_instance_init_ring()
147 list_inithead(&instance->ring.tls_rings); in vn_instance_init_ring()
149 vn_watchdog_init(&instance->ring.watchdog); in vn_instance_init_ring()
155 vn_instance_init_renderer(struct vn_instance *instance) in vn_instance_init_renderer() argument
157 const VkAllocationCallbacks *alloc = &instance->base.base.alloc; in vn_instance_init_renderer()
159 VkResult result = vn_renderer_create(instance, alloc, &instance->renderer); in vn_instance_init_renderer()
163 struct vn_renderer_info *renderer_info = &instance->renderer->info; in vn_instance_init_renderer()
167 vn_log(instance, "wire format version %d != %d", in vn_instance_init_renderer()
178 vn_log(instance, "vk xml version %d.%d.%d < %d.%d.%d", in vn_instance_init_renderer()
201 vn_log(instance, "connected to renderer"); in vn_instance_init_renderer()
202 vn_log(instance, "wire format version %d", in vn_instance_init_renderer()
204 vn_log(instance, "vk xml version %d.%d.%d", in vn_instance_init_renderer()
208 vn_log(instance, "VK_EXT_command_serialization spec version %d", in vn_instance_init_renderer()
210 vn_log(instance, "VK_MESA_venus_protocol spec version %d", in vn_instance_init_renderer()
217 /* instance commands */
256 struct vn_instance *instance; in vn_CreateInstance() local
261 instance = vk_zalloc(alloc, sizeof(*instance), VN_DEFAULT_ALIGN, in vn_CreateInstance()
263 if (!instance) in vn_CreateInstance()
271 result = vn_instance_base_init(&instance->base, in vn_CreateInstance()
275 vk_free(alloc, instance); in vn_CreateInstance()
279 VkInstance instance_handle = vn_instance_to_handle(instance); in vn_CreateInstance()
281 instance->ring_idx_used_mask = 0x1; in vn_CreateInstance()
283 mtx_init(&instance->physical_device.mutex, mtx_plain); in vn_CreateInstance()
284 mtx_init(&instance->ring_idx_mutex, mtx_plain); in vn_CreateInstance()
287 instance->base.base.app_info.api_version)) { in vn_CreateInstance()
297 result = vn_instance_init_renderer(instance); in vn_CreateInstance()
305 vn_cs_renderer_protocol_info_init(instance); in vn_CreateInstance()
307 vn_renderer_shmem_pool_init(instance->renderer, &instance->cs_shmem_pool, in vn_CreateInstance()
310 vn_renderer_shmem_pool_init(instance->renderer, in vn_CreateInstance()
311 &instance->reply_shmem_pool, 1u << 20); in vn_CreateInstance()
313 result = vn_instance_init_ring(instance); in vn_CreateInstance()
317 result = vn_instance_init_renderer_versions(instance); in vn_CreateInstance()
327 if (instance->base.base.app_info.api_version < in vn_CreateInstance()
328 instance->renderer_api_version) { in vn_CreateInstance()
331 local_app_info.apiVersion = instance->renderer_api_version; in vn_CreateInstance()
335 .apiVersion = instance->renderer_api_version, in vn_CreateInstance()
341 result = vn_call_vkCreateInstance(instance->ring.ring, pCreateInfo, NULL, in vn_CreateInstance()
346 driParseOptionInfo(&instance->available_dri_options, vn_dri_options, in vn_CreateInstance()
348 driParseConfigFiles(&instance->dri_options, in vn_CreateInstance()
349 &instance->available_dri_options, 0, "venus", NULL, in vn_CreateInstance()
350 NULL, instance->base.base.app_info.app_name, in vn_CreateInstance()
351 instance->base.base.app_info.app_version, in vn_CreateInstance()
352 instance->base.base.app_info.engine_name, in vn_CreateInstance()
353 instance->base.base.app_info.engine_version); in vn_CreateInstance()
355 instance->renderer->info.has_implicit_fencing = in vn_CreateInstance()
356 driQueryOptionb(&instance->dri_options, "venus_implicit_fencing"); in vn_CreateInstance()
357 instance->enable_wsi_multi_plane_modifiers = driQueryOptionb( in vn_CreateInstance()
358 &instance->dri_options, "venus_wsi_multi_plane_modifiers"); in vn_CreateInstance()
361 vn_log(instance, "supports multi-plane wsi format modifiers: %s", in vn_CreateInstance()
362 instance->enable_wsi_multi_plane_modifiers ? "yes" : "no"); in vn_CreateInstance()
365 const char *engine_name = instance->base.base.app_info.engine_name; in vn_CreateInstance()
367 instance->engine_is_zink = strcmp(engine_name, "mesa zink") == 0; in vn_CreateInstance()
375 vn_instance_fini_ring(instance); in vn_CreateInstance()
378 vn_renderer_shmem_pool_fini(instance->renderer, in vn_CreateInstance()
379 &instance->reply_shmem_pool); in vn_CreateInstance()
380 vn_renderer_shmem_pool_fini(instance->renderer, &instance->cs_shmem_pool); in vn_CreateInstance()
381 vn_renderer_destroy(instance->renderer, alloc); in vn_CreateInstance()
384 mtx_destroy(&instance->physical_device.mutex); in vn_CreateInstance()
385 mtx_destroy(&instance->ring_idx_mutex); in vn_CreateInstance()
387 vn_instance_base_fini(&instance->base); in vn_CreateInstance()
388 vk_free(alloc, instance); in vn_CreateInstance()
398 struct vn_instance *instance = vn_instance_from_handle(_instance); in vn_DestroyInstance() local
400 pAllocator ? pAllocator : &instance->base.base.alloc; in vn_DestroyInstance()
402 if (!instance) in vn_DestroyInstance()
405 if (instance->physical_device.initialized) { in vn_DestroyInstance()
406 for (uint32_t i = 0; i < instance->physical_device.device_count; i++) in vn_DestroyInstance()
407 vn_physical_device_fini(&instance->physical_device.devices[i]); in vn_DestroyInstance()
408 vk_free(alloc, instance->physical_device.devices); in vn_DestroyInstance()
409 vk_free(alloc, instance->physical_device.groups); in vn_DestroyInstance()
411 mtx_destroy(&instance->physical_device.mutex); in vn_DestroyInstance()
412 mtx_destroy(&instance->ring_idx_mutex); in vn_DestroyInstance()
414 if (instance->renderer) { in vn_DestroyInstance()
415 vn_call_vkDestroyInstance(instance->ring.ring, _instance, NULL); in vn_DestroyInstance()
417 vn_instance_fini_ring(instance); in vn_DestroyInstance()
419 vn_renderer_shmem_pool_fini(instance->renderer, in vn_DestroyInstance()
420 &instance->reply_shmem_pool); in vn_DestroyInstance()
422 vn_renderer_shmem_pool_fini(instance->renderer, &instance->cs_shmem_pool); in vn_DestroyInstance()
424 vn_renderer_destroy(instance->renderer, alloc); in vn_DestroyInstance()
427 driDestroyOptionCache(&instance->dri_options); in vn_DestroyInstance()
428 driDestroyOptionInfo(&instance->available_dri_options); in vn_DestroyInstance()
430 vn_instance_base_fini(&instance->base); in vn_DestroyInstance()
431 vk_free(alloc, instance); in vn_DestroyInstance()
437 struct vn_instance *instance = vn_instance_from_handle(_instance); in vn_GetInstanceProcAddr() local
438 return vk_instance_get_proc_addr(&instance->base.base, in vn_GetInstanceProcAddr()