Lines Matching defs:device

63 _panvk_device_set_lost(struct panvk_device *device,
68 * after device loss.
70 p_atomic_inc(&device->_lost);
153 panvk_get_device_extensions(const struct panvk_physical_device *device,
219 panvk_physical_device_finish(struct panvk_physical_device *device)
221 panvk_wsi_finish(device);
223 panvk_arch_dispatch(device->pdev.arch, meta_cleanup, device);
224 panfrost_close_device(&device->pdev);
225 if (device->master_fd != -1)
226 close(device->master_fd);
228 vk_physical_device_finish(&device->vk);
249 panvk_physical_device_init(struct panvk_physical_device *device,
268 "failed to open device %s", path);
275 "failed to query kernel driver version for device %s",
283 "device %s does not use the panfrost kernel driver", path);
289 panvk_logi("Found compatible device '%s'.", path);
292 panvk_get_device_extensions(device, &supported_extensions);
302 result = vk_physical_device_init(&device->vk, &instance->vk,
311 device->instance = instance;
312 assert(strlen(path) < ARRAY_SIZE(device->path));
313 strncpy(device->path, path, ARRAY_SIZE(device->path));
322 device->master_fd = master_fd;
324 device->pdev.debug |= PAN_DBG_TRACE;
326 device->pdev.debug |= PAN_DBG_NO_CACHE;
327 panfrost_open_device(NULL, fd, &device->pdev);
330 if (device->pdev.arch <= 5) {
333 device->pdev.model->name);
337 panvk_arch_dispatch(device->pdev.arch, meta_init, device);
339 memset(device->name, 0, sizeof(device->name));
340 sprintf(device->name, "%s", device->pdev.model->name);
342 if (panvk_device_get_cache_uuid(device->pdev.gpu_id, device->cache_uuid)) {
350 panvk_get_driver_uuid(&device->device_uuid);
351 panvk_get_device_uuid(&device->device_uuid);
353 device->drm_syncobj_type = vk_drm_syncobj_get_type(device->pdev.fd);
358 device->drm_syncobj_type.features &= ~VK_SYNC_FEATURE_TIMELINE;
360 device->sync_types[0] = &device->drm_syncobj_type;
361 device->sync_types[1] = NULL;
362 device->vk.supported_sync_types = device->sync_types;
364 result = panvk_wsi_init(device);
373 panfrost_close_device(&device->pdev);
897 panvk_queue_init(struct panvk_device *device,
902 const struct panfrost_device *pdev = &device->physical_device->pdev;
904 VkResult result = vk_queue_init(&queue->vk, &device->vk, create_info, idx);
907 queue->device = device;
943 struct panvk_device *device;
945 device = vk_zalloc2(&physical_device->instance->vk.alloc, pAllocator,
946 sizeof(*device), 8, VK_SYSTEM_ALLOCATION_SCOPE_DEVICE);
947 if (!device)
965 * in the main device-level dispatch table with
983 vk_device_dispatch_table_from_entrypoints(&device->cmd_dispatch,
986 vk_device_dispatch_table_from_entrypoints(&device->cmd_dispatch,
989 vk_device_dispatch_table_from_entrypoints(&device->cmd_dispatch,
993 result = vk_device_init(&device->vk, &physical_device->vk, &dispatch_table,
996 vk_free(&device->vk.alloc, device);
1003 device->vk.command_dispatch_table = &device->cmd_dispatch;
1005 device->instance = physical_device->instance;
1006 device->physical_device = physical_device;
1009 vk_device_set_drm_fd(&device->vk, pdev->fd);
1015 device->queues[qfi] =
1016 vk_alloc(&device->vk.alloc,
1019 if (!device->queues[qfi]) {
1024 memset(device->queues[qfi], 0,
1027 device->queue_count[qfi] = queue_create->queueCount;
1030 result = panvk_queue_init(device, &device->queues[qfi][q], q,
1037 *pDevice = panvk_device_to_handle(device);
1042 for (unsigned q = 0; q < device->queue_count[i]; q++)
1043 panvk_queue_finish(&device->queues[i][q]);
1044 if (device->queue_count[i])
1045 vk_object_free(&device->vk, NULL, device->queues[i]);
1048 vk_free(&device->vk.alloc, device);
1055 VK_FROM_HANDLE(panvk_device, device, _device);
1057 if (!device)
1061 for (unsigned q = 0; q < device->queue_count[i]; q++)
1062 panvk_queue_finish(&device->queues[i][q]);
1063 if (device->queue_count[i])
1064 vk_object_free(&device->vk, NULL, device->queues[i]);
1067 vk_free(&device->vk.alloc, device);
1083 if (panvk_device_is_lost(queue->device))
1086 const struct panfrost_device *pdev = &queue->device->physical_device->pdev;
1159 VK_FROM_HANDLE(panvk_device, device, _device);
1170 mem = vk_object_alloc(&device->vk, pAllocator, sizeof(*mem),
1173 return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
1193 mem->bo = panfrost_bo_import(&device->physical_device->pdev, fd_info->fd);
1197 mem->bo = panfrost_bo_create(&device->physical_device->pdev,
1214 VK_FROM_HANDLE(panvk_device, device, _device);
1221 vk_object_free(&device->vk, pAllocator, mem);
1232 VK_FROM_HANDLE(panvk_device, device, _device);
1250 return vk_error(device, VK_ERROR_MEMORY_MAP_FAILED);
1275 panvk_GetBufferMemoryRequirements2(VkDevice device,
1290 panvk_GetImageMemoryRequirements2(VkDevice device,
1305 panvk_GetImageSparseMemoryRequirements2(VkDevice device,
1314 panvk_GetDeviceMemoryCommitment(VkDevice device,
1322 panvk_BindBufferMemory2(VkDevice device,
1341 panvk_BindImageMemory2(VkDevice device,
1380 VK_FROM_HANDLE(panvk_device, device, _device);
1381 const struct panfrost_device *pdev = &device->physical_device->pdev;
1383 vk_object_zalloc(&device->vk, pAllocator, sizeof(*event),
1386 return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
1407 VK_FROM_HANDLE(panvk_device, device, _device);
1409 const struct panfrost_device *pdev = &device->physical_device->pdev;
1417 vk_object_free(&device->vk, pAllocator, event);
1423 VK_FROM_HANDLE(panvk_device, device, _device);
1425 const struct panfrost_device *pdev = &device->physical_device->pdev;
1452 VK_FROM_HANDLE(panvk_device, device, _device);
1454 const struct panfrost_device *pdev = &device->physical_device->pdev;
1476 VK_FROM_HANDLE(panvk_device, device, _device);
1478 const struct panfrost_device *pdev = &device->physical_device->pdev;
1497 VK_FROM_HANDLE(panvk_device, device, _device);
1502 buffer = vk_buffer_create(&device->vk, pCreateInfo,
1505 return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
1517 VK_FROM_HANDLE(panvk_device, device, _device);
1523 vk_buffer_destroy(&device->vk, pAllocator, &buffer->vk);
1532 VK_FROM_HANDLE(panvk_device, device, _device);
1539 framebuffer = vk_object_alloc(&device->vk, pAllocator, size,
1542 return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
1563 VK_FROM_HANDLE(panvk_device, device, _device);
1567 vk_object_free(&device->vk, pAllocator, fb);
1575 VK_FROM_HANDLE(panvk_device, device, _device);
1581 vk_object_free(&device->vk, pAllocator, sampler);
1643 VK_FROM_HANDLE(panvk_device, device, _device);
1654 return vk_error(device, VK_ERROR_OUT_OF_DEVICE_MEMORY);
1705 panvk_GetDeviceGroupPeerMemoryFeatures(VkDevice device,