Lines Matching defs:pdev

92 dzn_physical_device_get_extensions(struct dzn_physical_device *pdev)
94 pdev->vk.supported_extensions = (struct vk_device_extension_table) {
137 dzn_physical_device_destroy(struct dzn_physical_device *pdev)
139 struct dzn_instance *instance = container_of(pdev->vk.instance, struct dzn_instance, vk);
141 list_del(&pdev->link);
143 if (pdev->dev)
144 ID3D12Device1_Release(pdev->dev);
146 if (pdev->adapter)
147 IUnknown_Release(pdev->adapter);
149 dzn_wsi_finish(pdev);
150 vk_physical_device_finish(&pdev->vk);
151 vk_free(&instance->vk.alloc, pdev);
165 list_for_each_entry_safe(struct dzn_physical_device, pdev,
167 dzn_physical_device_destroy(pdev);
264 dzn_physical_device_init_uuids(struct dzn_physical_device *pdev)
280 _mesa_sha1_update(&sha1_ctx, &pdev->options, sizeof(pdev->options));
281 _mesa_sha1_update(&sha1_ctx, &pdev->options2, sizeof(pdev->options2));
283 memcpy(pdev->pipeline_cache_uuid, sha1, VK_UUID_SIZE);
291 memcpy(pdev->driver_uuid, sha1, VK_UUID_SIZE);
295 _mesa_sha1_update(&sha1_ctx, &pdev->desc.vendor_id, sizeof(pdev->desc.vendor_id));
296 _mesa_sha1_update(&sha1_ctx, &pdev->desc.device_id, sizeof(pdev->desc.device_id));
297 _mesa_sha1_update(&sha1_ctx, &pdev->desc.subsys_id, sizeof(pdev->desc.subsys_id));
298 _mesa_sha1_update(&sha1_ctx, &pdev->desc.revision, sizeof(pdev->desc.revision));
300 memcpy(pdev->device_uuid, sha1, VK_UUID_SIZE);
313 struct dzn_physical_device *pdev =
314 vk_zalloc(&instance->vk.alloc, sizeof(*pdev), 8,
317 if (!pdev)
329 vk_physical_device_init(&pdev->vk, &instance->vk,
333 vk_free(&instance->vk.alloc, pdev);
337 mtx_init(&pdev->dev_lock, mtx_plain);
338 pdev->desc = *desc;
339 pdev->adapter = adapter;
341 list_addtail(&pdev->link, &instance->physical_devices);
346 pdev->sync_types[num_sync_types++] = &dzn_sync_type;
347 pdev->sync_types[num_sync_types++] = &instance->sync_binary_type.sync;
348 pdev->sync_types[num_sync_types++] = &vk_sync_dummy_type;
349 pdev->sync_types[num_sync_types] = NULL;
351 pdev->vk.supported_sync_types = pdev->sync_types;
353 pdev->vk.pipeline_cache_import_ops = dzn_pipeline_cache_import_ops;
357 result = dzn_wsi_init(pdev);
359 dzn_physical_device_destroy(pdev);
363 dzn_physical_device_get_extensions(pdev);
369 dzn_physical_device_cache_caps(struct dzn_physical_device *pdev)
384 ID3D12Device1_CheckFeatureSupport(pdev->dev, D3D12_FEATURE_FEATURE_LEVELS, &levels, sizeof(levels));
385 pdev->feature_level = levels.MaxSupportedFeatureLevel;
387 ID3D12Device1_CheckFeatureSupport(pdev->dev, D3D12_FEATURE_ARCHITECTURE1, &pdev->architecture, sizeof(pdev->architecture));
388 ID3D12Device1_CheckFeatureSupport(pdev->dev, D3D12_FEATURE_D3D12_OPTIONS, &pdev->options, sizeof(pdev->options));
389 ID3D12Device1_CheckFeatureSupport(pdev->dev, D3D12_FEATURE_D3D12_OPTIONS2, &pdev->options2, sizeof(pdev->options2));
390 ID3D12Device1_CheckFeatureSupport(pdev->dev, D3D12_FEATURE_D3D12_OPTIONS3, &pdev->options3, sizeof(pdev->options3));
392 pdev->queue_families[pdev->queue_family_count++] = (struct dzn_queue_family) {
406 pdev->queue_families[pdev->queue_family_count++] = (struct dzn_queue_family) {
419 pdev->queue_families[pdev->queue_family_count++] = (struct dzn_queue_family) {
431 assert(pdev->queue_family_count <= ARRAY_SIZE(pdev->queue_families));
441 ID3D12Device1_CreateCommandQueue(pdev->dev, &queue_desc,
447 pdev->timestamp_period = 1000000000.0f / ts_freq;
452 dzn_physical_device_init_memory(struct dzn_physical_device *pdev)
454 VkPhysicalDeviceMemoryProperties *mem = &pdev->memory;
458 .size = pdev->desc.shared_system_memory,
474 if (!pdev->architecture.UMA) {
476 .size = pdev->desc.dedicated_video_memory,
491 if (pdev->options.ResourceHeapTier == D3D12_RESOURCE_HEAP_TIER_1) {
511 pdev->heap_flags_for_mem_type[mem->memoryTypeCount] = flag;
520 dzn_physical_device_get_heap_flags_for_mem_type(const struct dzn_physical_device *pdev,
523 return pdev->heap_flags_for_mem_type[mem_type];
527 dzn_physical_device_get_mem_type_mask_for_resource(const struct dzn_physical_device *pdev,
530 if (pdev->options.ResourceHeapTier > D3D12_RESOURCE_HEAP_TIER_1)
531 return (1u << pdev->memory.memoryTypeCount) - 1;
542 for (unsigned i = 0; i < pdev->memory.memoryTypeCount; ++i) {
543 if ((pdev->heap_flags_for_mem_type[i] & deny_flag) == D3D12_HEAP_FLAG_NONE)
570 dzn_physical_device_get_d3d12_dev(struct dzn_physical_device *pdev)
572 struct dzn_instance *instance = container_of(pdev->vk.instance, struct dzn_instance, vk);
574 mtx_lock(&pdev->dev_lock);
575 if (!pdev->dev) {
576 pdev->dev = d3d12_create_device(pdev->adapter, !instance->dxil_validator);
578 dzn_physical_device_cache_caps(pdev);
579 dzn_physical_device_init_memory(pdev);
580 dzn_physical_device_init_uuids(pdev);
582 mtx_unlock(&pdev->dev_lock);
584 return pdev->dev;
588 dzn_physical_device_get_format_support(struct dzn_physical_device *pdev,
616 ID3D12Device2 *dev = dzn_physical_device_get_d3d12_dev(pdev);
656 dzn_physical_device_get_format_properties(struct dzn_physical_device *pdev,
661 dzn_physical_device_get_format_support(pdev, format);
758 dzn_physical_device_get_image_format_properties(struct dzn_physical_device *pdev,
809 dzn_physical_device_get_format_support(pdev, info->format);
814 ID3D12Device2 *dev = dzn_physical_device_get_d3d12_dev(pdev);
931 VK_FROM_HANDLE(dzn_physical_device, pdev, physicalDevice);
933 dzn_physical_device_get_format_properties(pdev, format, pFormatProperties);
941 VK_FROM_HANDLE(dzn_physical_device, pdev, physicalDevice);
943 return dzn_physical_device_get_image_format_properties(pdev, info, props);
1038 list_for_each_entry(struct dzn_physical_device, pdev, &instance->physical_devices, link) {
1040 *i = dzn_physical_device_to_handle(pdev);
1055 dzn_physical_device_supports_compressed_format(struct dzn_physical_device *pdev,
1065 dzn_physical_device_get_format_properties(pdev, formats[i], &props);
1074 dzn_physical_device_supports_bc(struct dzn_physical_device *pdev)
1095 return dzn_physical_device_supports_compressed_format(pdev, formats, ARRAY_SIZE(formats));
1099 dzn_physical_device_supports_depth_bounds(struct dzn_physical_device *pdev)
1101 dzn_physical_device_get_d3d12_dev(pdev);
1103 return pdev->options2.DepthBoundsTestSupported;
1110 VK_FROM_HANDLE(dzn_physical_device, pdev, physicalDevice);
1127 .depthBounds = dzn_physical_device_supports_depth_bounds(pdev),
1135 .textureCompressionBC = dzn_physical_device_supports_bc(pdev),
1676 VK_FROM_HANDLE(dzn_physical_device, pdev, physicalDevice);
1680 (void)dzn_physical_device_get_d3d12_dev(pdev);
1682 for (uint32_t i = 0; i < pdev->queue_family_count; i++) {
1684 p->queueFamilyProperties = pdev->queue_families[i].props;
1697 VK_FROM_HANDLE(dzn_physical_device, pdev, physicalDevice);
1700 (void)dzn_physical_device_get_d3d12_dev(pdev);
1701 *pMemoryProperties = pdev->memory;
1868 struct dzn_physical_device *pdev = container_of(device->vk.physical, struct dzn_physical_device, vk);
1876 assert(pCreateInfo->queueFamilyIndex < pdev->queue_family_count);
1879 pdev->queue_families[pCreateInfo->queueFamilyIndex].desc;
1907 VK_FROM_HANDLE(dzn_physical_device, pdev, physicalDevice);
1911 pdev->vk.dispatch_table.GetPhysicalDeviceFeatures(physicalDevice, &supported_features);
2016 dzn_device_create(struct dzn_physical_device *pdev,
2021 struct dzn_instance *instance = container_of(pdev->vk.instance, struct dzn_instance, vk);
2035 return vk_error(pdev, VK_ERROR_OUT_OF_HOST_MEMORY);
2058 vk_device_init(&device->vk, &pdev->vk, &dispatch_table, pCreateInfo, pAllocator);
2071 device->dev = dzn_physical_device_get_d3d12_dev(pdev);
2074 return vk_error(pdev, VK_ERROR_INITIALIZATION_FAILED);
2638 struct dzn_physical_device *pdev =
2653 dzn_physical_device_get_mem_type_mask_for_resource(pdev, &buffer->desc);