Lines Matching refs:env
40 FrameworkEnvironment env{};
41 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).set_min_icd_interface_version(5);
43 InstWrapper inst{env.vulkan_functions};
49 FrameworkEnvironment env{};
50 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
53 ASSERT_EQ(env.vulkan_functions.vkCreateInstance(&info, VK_NULL_HANDLE, &inst), VK_SUCCESS);
55 env.vulkan_functions.vkDestroyInstance(inst, nullptr);
60 FrameworkEnvironment env{};
61 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
62 env.vulkan_functions.vkDestroyInstance(VK_NULL_HANDLE, nullptr);
67 FrameworkEnvironment env{};
68 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
69 env.vulkan_functions.vkDestroyDevice(VK_NULL_HANDLE, nullptr);
74 FrameworkEnvironment env{};
75 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
77 InstWrapper inst{env.vulkan_functions};
82 InstWrapper inst{env.vulkan_functions};
89 FrameworkEnvironment env{};
90 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
91 InstWrapper inst{env.vulkan_functions};
97 FrameworkEnvironment env{};
98 env.add_icd(TestICDDetails{TEST_ICD_PATH_VERSION_2}).add_physical_device({});
101 env.add_explicit_layer(
106 InstWrapper inst{env.vulkan_functions};
112 FrameworkEnvironment env{};
113 env.add_icd(TestICDDetails{TEST_ICD_PATH_VERSION_2}.set_library_path_type(LibraryPathType::relative)).add_physical_device({});
116 env.add_explicit_layer(
122 InstWrapper inst{env.vulkan_functions};
131 FrameworkEnvironment env{};
132 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).set_min_icd_interface_version(5);
135 InstWrapper inst{env.vulkan_functions};
146 FrameworkEnvironment env{};
147 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
150 InstWrapper inst{env.vulkan_functions};
156 FrameworkEnvironment env{};
157 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
161 instances.emplace_back(env.vulkan_functions);
167 FrameworkEnvironment env{};
168 InstWrapper inst{env.vulkan_functions};
173 FrameworkEnvironment env{};
174 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
179 env.add_explicit_layer(
184 env.add_explicit_layer(
192 ASSERT_EQ(VK_SUCCESS, env.vulkan_functions.vkEnumerateInstanceLayerProperties(&layer_count, layer_props));
194 auto layers = env.GetLayerProperties(2);
200 ASSERT_EQ(VK_SUCCESS, env.vulkan_functions.vkEnumerateInstanceLayerProperties(&layer_count, nullptr));
204 ASSERT_EQ(VK_SUCCESS, env.vulkan_functions.vkEnumerateInstanceLayerProperties(&layer_count, layer_props));
212 ASSERT_EQ(VK_INCOMPLETE, env.vulkan_functions.vkEnumerateInstanceLayerProperties(&layer_count, &layer_props));
218 FrameworkEnvironment env{};
219 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
223 env.reset_icd().add_instance_extensions({first_ext, second_ext});
229 env.vulkan_functions.vkEnumerateInstanceExtensionProperties(nullptr, &extension_count, extensions.data()));
240 auto extensions = env.GetInstanceExtensions(6);
252 FrameworkEnvironment env{};
253 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
258 ASSERT_EQ(VK_SUCCESS, env.vulkan_functions.vkEnumerateInstanceExtensionProperties(nullptr, &extension_count, nullptr));
263 env.vulkan_functions.vkEnumerateInstanceExtensionProperties(nullptr, &extension_count, extensions.data()));
269 ASSERT_EQ(VK_SUCCESS, env.vulkan_functions.vkEnumerateInstanceExtensionProperties("", &extension_count, nullptr));
274 env.vulkan_functions.vkEnumerateInstanceExtensionProperties("", &extension_count, extensions.data()));
282 FrameworkEnvironment env{};
283 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
287 env.reset_icd().add_instance_extensions({first_ext, second_ext});
289 auto extensions = env.GetInstanceExtensions(4);
299 auto extensions = env.GetInstanceExtensions(6);
310 FrameworkEnvironment env{};
311 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
314 env.add_explicit_layer(
319 InstWrapper inst{env.vulkan_functions};
331 ASSERT_EQ(VK_INCOMPLETE, env.vulkan_functions.vkEnumerateDeviceLayerProperties(phys_dev, &layer_count, &layer_props));
337 FrameworkEnvironment env{};
338 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
344 InstWrapper inst{env.vulkan_functions};
364 FrameworkEnvironment env{};
365 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
371 InstWrapper inst{env.vulkan_functions};
392 FrameworkEnvironment env{};
393 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device({});
395 InstWrapper inst{env.vulkan_functions};
404 ASSERT_EQ(VK_SUCCESS, env.vulkan_functions.vkEnumerateDeviceExtensionProperties(phys_dev, nullptr, &ext_count, nullptr));
407 ASSERT_EQ(VK_SUCCESS, env.vulkan_functions.vkEnumerateDeviceExtensionProperties(phys_dev, nullptr, &ext_count, &ext_props));
480 FrameworkEnvironment env{};
485 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2))
490 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
496 InstWrapper inst{env.vulkan_functions};
503 FrameworkEnvironment env{};
504 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device({});
512 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
518 auto& layer = env.get_test_layer();
526 InstWrapper inst{env.vulkan_functions};
534 FrameworkEnvironment env{};
535 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device({});
543 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
549 auto& layer = env.get_test_layer();
559 InstWrapper inst{env.vulkan_functions};
567 FrameworkEnvironment env{};
568 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device({});
576 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
582 auto& layer = env.get_test_layer();
585 InstWrapper inst{env.vulkan_functions};
593 FrameworkEnvironment env{};
594 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device({});
602 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
608 auto& layer = env.get_test_layer();
611 InstWrapper inst{env.vulkan_functions};
619 FrameworkEnvironment env{};
620 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device({});
628 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
634 auto& layer = env.get_test_layer();
646 InstWrapper inst{env.vulkan_functions};
654 FrameworkEnvironment env{};
655 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device({});
663 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
669 auto& layer = env.get_test_layer();
674 InstWrapper inst{env.vulkan_functions};
682 FrameworkEnvironment env{};
683 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).set_min_icd_interface_version(5);
690 InstWrapper inst{env.vulkan_functions};
701 FrameworkEnvironment env{};
702 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2))
712 InstWrapper inst{env.vulkan_functions};
722 env.vulkan_functions.vkEnumeratePhysicalDevices(inst.inst, &returned_physical_count, physical_device_handles.data()));
727 FrameworkEnvironment env{};
728 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2))
738 InstWrapper inst1{env.vulkan_functions};
747 InstWrapper inst2{env.vulkan_functions};
763 FrameworkEnvironment env{};
764 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2))
774 InstWrapper inst{env.vulkan_functions};
809 FrameworkEnvironment env{};
810 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
811 InstWrapper inst{env.vulkan_functions};
816 ASSERT_EQ(VK_ERROR_INITIALIZATION_FAILED, env.vulkan_functions.vkEnumeratePhysicalDevices(inst, &count, nullptr));
821 FrameworkEnvironment env{};
822 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1)).set_min_icd_interface_version(5);
823 InstWrapper inst{env.vulkan_functions};
843 FrameworkEnvironment env{};
844 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).set_min_icd_interface_version(5);
850 InstWrapper inst{env.vulkan_functions};
869 FrameworkEnvironment env{};
870 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).set_min_icd_interface_version(5);
876 InstWrapper inst{env.vulkan_functions};
905 FrameworkEnvironment env{};
906 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).set_min_icd_interface_version(5);
912 InstWrapper inst{env.vulkan_functions};
941 FrameworkEnvironment env{};
942 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).set_min_icd_interface_version(5);
947 InstWrapper inst{env.vulkan_functions};
980 FrameworkEnvironment env{};
981 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).set_min_icd_interface_version(5);
987 InstWrapper inst{env.vulkan_functions};
1036 FrameworkEnvironment env{};
1037 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).set_min_icd_interface_version(5);
1044 InstWrapper inst{env.vulkan_functions};
1167 FrameworkEnvironment env{};
1168 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
1170 InstWrapper inst{env.vulkan_functions};
1185 FrameworkEnvironment env{};
1186 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
1188 InstWrapper inst{env.vulkan_functions};
1203 FrameworkEnvironment env{};
1204 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
1207 env.add_explicit_layer(
1212 InstWrapper inst{env.vulkan_functions};
1229 FrameworkEnvironment env{};
1230 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
1233 env.add_explicit_layer(
1239 InstWrapper inst{env.vulkan_functions};
1263 FrameworkEnvironment env{};
1264 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
1267 env.add_explicit_layer(
1272 InstWrapper inst{env.vulkan_functions};
1290 FrameworkEnvironment env{};
1291 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
1296 InstWrapper inst{env.vulkan_functions};
1307 FrameworkEnvironment env{};
1308 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
1313 InstWrapper inst{env.vulkan_functions};
1328 FrameworkEnvironment env{};
1329 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
1330 env.add_icd(TestICDDetails(CURRENT_PLATFORM_DUMMY_BINARY_WRONG_TYPE).set_is_fake(true));
1333 InstWrapper inst{env.vulkan_functions};
1354 FrameworkEnvironment env{};
1355 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
1358 env.add_fake_explicit_layer(
1363 auto layer_props = env.GetLayerProperties(1);
1367 InstWrapper inst{env.vulkan_functions};
1384 FrameworkEnvironment env{};
1385 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
1388 env.add_fake_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
1394 auto layer_props = env.GetLayerProperties(1);
1398 InstWrapper inst{env.vulkan_functions};
1415 FrameworkEnvironment env{};
1416 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
1419 env.add_fake_explicit_layer(
1424 env.add_fake_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
1430 auto layer_props = env.GetLayerProperties(2);
1434 InstWrapper inst{env.vulkan_functions};
1454 FrameworkEnvironment env{};
1455 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
1458 env.add_fake_explicit_layer(
1463 env.add_fake_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
1469 auto layer_props = env.GetLayerProperties(2);
1473 InstWrapper inst{env.vulkan_functions};
1492 FrameworkEnvironment env{};
1493 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
1496 env.add_fake_explicit_layer(
1501 auto layer_props = env.GetLayerProperties(1);
1505 InstWrapper inst{env.vulkan_functions};
1517 FrameworkEnvironment env{};
1518 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
1521 env.add_fake_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
1527 auto layer_props = env.GetLayerProperties(1);
1531 InstWrapper inst{env.vulkan_functions};
1543 FrameworkEnvironment env{};
1544 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device("physical_device_0");
1547 env.add_fake_explicit_layer(
1552 env.add_fake_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
1558 auto layer_props = env.GetLayerProperties(2);
1562 InstWrapper inst{env.vulkan_functions};
1575 FrameworkEnvironment env{};
1577 env.add_icd(TestICDDetails{TEST_ICD_PATH_VERSION_2}.icd_manifest.set_library_arch(sizeof(void*) == 4 ? "64" : "32"))
1581 InstWrapper inst{env.vulkan_functions};
1590 FrameworkEnvironment env{};
1591 env.add_icd(TestICDDetails{TEST_ICD_PATH_VERSION_2}).add_physical_device("physical_device_0");
1594 env.add_explicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
1602 InstWrapper inst{env.vulkan_functions};
1610 FrameworkEnvironment env{};
1611 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1))
1629 InstWrapper inst{env.vulkan_functions};
1694 InstWrapper inst{env.vulkan_functions};
1744 FrameworkEnvironment env{};
1745 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1))
1763 InstWrapper inst{env.vulkan_functions};
1811 InstWrapper inst{env.vulkan_functions};
1861 FrameworkEnvironment env{};
1862 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1))
1879 InstWrapper inst{env.vulkan_functions};
1927 InstWrapper inst{env.vulkan_functions};
1979 FrameworkEnvironment env{};
1980 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1))
2007 InstWrapper inst{env.vulkan_functions};
2069 FrameworkEnvironment env{};
2070 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1))
2095 InstWrapper inst{env.vulkan_functions};
2164 FrameworkEnvironment env{};
2165 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1))
2191 InstWrapper inst{env.vulkan_functions};
2251 FrameworkEnvironment env{};
2252 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1))
2276 InstWrapper inst{env.vulkan_functions};
2337 FrameworkEnvironment env{};
2338 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1))
2362 InstWrapper inst{env.vulkan_functions};
2434 FrameworkEnvironment env{};
2435 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1))
2463 InstWrapper inst{env.vulkan_functions};
2563 FrameworkEnvironment env{};
2577 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA, VK_API_VERSION_1_1));
2578 auto& cur_icd_0 = env.get_test_icd(0);
2598 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA, VK_API_VERSION_1_1));
2599 auto& cur_icd_1 = env.get_test_icd(1);
2619 InstWrapper inst(env.vulkan_functions);
2664 FrameworkEnvironment env{};
2665 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA)).add_physical_device({});
2667 InstWrapper inst{env.vulkan_functions};
2680 FrameworkEnvironment env{};
2681 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA))
2686 InstWrapper inst{env.vulkan_functions};
2702 FrameworkEnvironment env{};
2703 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA, VK_API_VERSION_1_3))
2710 InstWrapper inst{env.vulkan_functions};
2727 FrameworkEnvironment env{};
2728 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
2734 ASSERT_EQ(env.vulkan_functions.vkCreateInstance(&info, VK_NULL_HANDLE, &inst), VK_ERROR_LAYER_NOT_PRESENT);
2737 FrameworkEnvironment env{};
2738 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
2744 ASSERT_EQ(env.vulkan_functions.vkCreateInstance(&info, VK_NULL_HANDLE, &inst), VK_ERROR_EXTENSION_NOT_PRESENT);
2750 FrameworkEnvironment env{};
2751 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
2752 env.get_test_icd(0).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
2753 env.get_test_icd(0).physical_devices.push_back({"pd0"});
2754 env.get_test_icd(0).physical_devices.back().set_pci_bus(7);
2755 FillInRandomDeviceProps(env.get_test_icd(0).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
2757 env.get_test_icd(0).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2758 env.get_test_icd(0).physical_devices.push_back({"pd1"});
2759 env.get_test_icd(0).physical_devices.back().set_pci_bus(3);
2760 FillInRandomDeviceProps(env.get_test_icd(0).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
2762 env.get_test_icd(0).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2764 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_0));
2765 env.get_test_icd(1).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
2766 env.get_test_icd(1).physical_devices.push_back({"pd2"});
2767 env.get_test_icd(1).physical_devices.back().set_pci_bus(0);
2768 FillInRandomDeviceProps(env.get_test_icd(1).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_CPU, VK_API_VERSION_1_0,
2770 env.get_test_icd(1).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2772 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
2773 env.get_test_icd(2).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
2774 env.get_test_icd(2).physical_devices.push_back({"pd3"});
2775 env.get_test_icd(2).physical_devices.back().set_pci_bus(1);
2776 FillInRandomDeviceProps(env.get_test_icd(2).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
2778 env.get_test_icd(2).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2779 env.get_test_icd(2).physical_devices.push_back({"pd4"});
2780 env.get_test_icd(2).physical_devices.back().set_pci_bus(4);
2781 FillInRandomDeviceProps(env.get_test_icd(2).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
2783 env.get_test_icd(2).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2785 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
2786 env.get_test_icd(3).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
2787 env.get_test_icd(3).physical_devices.push_back({"pd5"});
2788 env.get_test_icd(3).physical_devices.back().set_pci_bus(0);
2789 FillInRandomDeviceProps(env.get_test_icd(3).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
2791 env.get_test_icd(3).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2793 InstWrapper instance(env.vulkan_functions);
2858 FrameworkEnvironment env{};
2859 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
2860 env.get_test_icd(0).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
2861 env.get_test_icd(0).physical_devices.push_back({"pd0"});
2862 env.get_test_icd(0).physical_devices.back().set_pci_bus(7);
2863 FillInRandomDeviceProps(env.get_test_icd(0).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
2865 env.get_test_icd(0).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2866 env.get_test_icd(0).physical_devices.push_back({"pd1"});
2867 env.get_test_icd(0).physical_devices.back().set_pci_bus(3);
2868 FillInRandomDeviceProps(env.get_test_icd(0).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
2870 env.get_test_icd(0).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2872 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_0));
2873 env.get_test_icd(1).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
2874 env.get_test_icd(1).physical_devices.push_back({"pd2"});
2875 env.get_test_icd(1).physical_devices.back().set_pci_bus(0);
2876 FillInRandomDeviceProps(env.get_test_icd(1).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_CPU, VK_API_VERSION_1_0,
2878 env.get_test_icd(1).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2880 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
2881 env.get_test_icd(2).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
2882 env.get_test_icd(2).physical_devices.push_back({"pd3"});
2883 env.get_test_icd(2).physical_devices.back().set_pci_bus(1);
2884 FillInRandomDeviceProps(env.get_test_icd(2).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
2886 env.get_test_icd(2).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2887 env.get_test_icd(2).physical_devices.push_back({"pd4"});
2888 env.get_test_icd(2).physical_devices.back().set_pci_bus(4);
2889 FillInRandomDeviceProps(env.get_test_icd(2).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
2891 env.get_test_icd(2).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2893 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
2894 env.get_test_icd(3).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
2895 env.get_test_icd(3).physical_devices.push_back({"pd5"});
2896 env.get_test_icd(3).physical_devices.back().set_pci_bus(0);
2897 FillInRandomDeviceProps(env.get_test_icd(3).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
2899 env.get_test_icd(3).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2901 InstWrapper instance(env.vulkan_functions);
2980 FrameworkEnvironment env{};
2981 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
2982 env.get_test_icd(0).set_icd_api_version(VK_API_VERSION_1_1);
2983 env.get_test_icd(0).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
2984 env.get_test_icd(0).physical_devices.push_back({"pd0"});
2985 env.get_test_icd(0).physical_devices.back().set_pci_bus(7);
2986 FillInRandomDeviceProps(env.get_test_icd(0).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
2988 env.get_test_icd(0).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2989 env.get_test_icd(0).physical_devices.push_back({"pd1"});
2990 env.get_test_icd(0).physical_devices.back().set_pci_bus(3);
2991 FillInRandomDeviceProps(env.get_test_icd(0).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
2993 env.get_test_icd(0).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
2995 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
2996 env.get_test_icd(1).set_icd_api_version(VK_API_VERSION_1_1);
2997 env.get_test_icd(1).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
2998 env.get_test_icd(1).physical_devices.push_back({"pd2"});
2999 env.get_test_icd(1).physical_devices.back().set_pci_bus(0);
3000 FillInRandomDeviceProps(env.get_test_icd(1).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_CPU, VK_API_VERSION_1_0,
3002 env.get_test_icd(1).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
3004 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
3005 env.get_test_icd(2).set_icd_api_version(VK_API_VERSION_1_1);
3006 env.get_test_icd(2).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
3007 env.get_test_icd(2).physical_devices.push_back({"pd3"});
3008 env.get_test_icd(2).physical_devices.back().set_pci_bus(1);
3009 FillInRandomDeviceProps(env.get_test_icd(2).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
3011 env.get_test_icd(2).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
3012 env.get_test_icd(2).physical_devices.push_back({"pd4"});
3013 env.get_test_icd(2).physical_devices.back().set_pci_bus(4);
3014 FillInRandomDeviceProps(env.get_test_icd(2).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
3016 env.get_test_icd(2).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
3018 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
3019 env.get_test_icd(3).set_icd_api_version(VK_API_VERSION_1_1);
3020 env.get_test_icd(3).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
3021 env.get_test_icd(3).physical_devices.push_back({"pd5"});
3022 env.get_test_icd(3).physical_devices.back().set_pci_bus(0);
3023 FillInRandomDeviceProps(env.get_test_icd(3).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
3025 env.get_test_icd(3).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
3027 InstWrapper instance(env.vulkan_functions);
3106 FrameworkEnvironment env{};
3110 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_0));
3111 env.get_test_icd(0).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
3112 env.get_test_icd(0).physical_devices.push_back({"pd0"});
3113 FillInRandomDeviceProps(env.get_test_icd(0).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
3115 env.get_test_icd(0).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
3116 env.get_test_icd(0).physical_devices.push_back({"pd1"});
3117 FillInRandomDeviceProps(env.get_test_icd(0).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,
3119 env.get_test_icd(0).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
3121 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_0));
3122 env.get_test_icd(1).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
3123 env.get_test_icd(1).physical_devices.push_back({"pd2"});
3124 FillInRandomDeviceProps(env.get_test_icd(1).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_CPU, VK_API_VERSION_1_0,
3126 env.get_test_icd(1).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
3128 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_0));
3129 env.get_test_icd(2).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
3130 env.get_test_icd(2).physical_devices.push_back({"pd3"});
3131 FillInRandomDeviceProps(env.get_test_icd(2).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
3133 env.get_test_icd(2).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
3134 env.get_test_icd(2).physical_devices.push_back({"pd4"});
3135 FillInRandomDeviceProps(env.get_test_icd(2).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,
3137 env.get_test_icd(2).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
3139 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_0));
3140 env.get_test_icd(3).add_instance_extension({VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME});
3141 env.get_test_icd(3).physical_devices.push_back({"pd5"});
3142 FillInRandomDeviceProps(env.get_test_icd(3).physical_devices.back().properties, VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,
3144 env.get_test_icd(3).physical_devices.back().extensions.push_back({VK_EXT_PCI_BUS_INFO_EXTENSION_NAME, 0});
3146 InstWrapper instance(env.vulkan_functions);
3214 FrameworkEnvironment env{};
3232 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
3233 auto& cur_icd_0 = env.get_test_icd(0);
3256 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
3257 auto& cur_icd_1 = env.get_test_icd(1);
3265 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
3266 auto& cur_icd_2 = env.get_test_icd(2);
3289 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
3290 auto& cur_icd_3 = env.get_test_icd(3);
3298 InstWrapper inst(env.vulkan_functions);
3405 FrameworkEnvironment env{};
3425 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
3426 auto& cur_icd_0 = env.get_test_icd(0);
3446 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
3447 auto& cur_icd_1 = env.get_test_icd(1);
3454 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
3455 auto& cur_icd_2 = env.get_test_icd(2);
3475 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2, VK_API_VERSION_1_1));
3476 auto& cur_icd_3 = env.get_test_icd(3);
3483 InstWrapper inst(env.vulkan_functions);
3599 FrameworkEnvironment env{};
3600 env.add_icd(
3605 InstWrapper inst{env.vulkan_functions};
3609 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3611 ASSERT_FALSE(env.debug_log.find(portability_driver_warning));
3626 InstWrapper inst{env.vulkan_functions};
3629 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3631 ASSERT_TRUE(env.debug_log.find(portability_extension_missing));
3634 InstWrapper inst{env.vulkan_functions};
3637 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3639 ASSERT_TRUE(env.debug_log.find(portability_flag_missing));
3642 InstWrapper inst{env.vulkan_functions};
3645 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3647 ASSERT_TRUE(env.debug_log.find(portability_driver_warning));
3652 FrameworkEnvironment env{};
3653 env.add_icd(TestICDDetails(ManifestICD{}.set_lib_path(TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA)));
3654 env.add_icd(
3657 auto& driver0 = env.get_test_icd(0);
3658 auto& driver1 = env.get_test_icd(1);
3666 InstWrapper inst{env.vulkan_functions};
3670 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3672 ASSERT_FALSE(env.debug_log.find(portability_driver_warning));
3687 InstWrapper inst{env.vulkan_functions};
3690 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3692 ASSERT_FALSE(env.debug_log.find(portability_driver_warning));
3702 InstWrapper inst{env.vulkan_functions};
3705 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3707 ASSERT_FALSE(env.debug_log.find(portability_driver_warning));
3717 InstWrapper inst{env.vulkan_functions};
3719 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3721 ASSERT_FALSE(env.debug_log.find(portability_driver_warning));
3734 FrameworkEnvironment env{};
3735 env.add_icd(TestICDDetails(ManifestICD{}.set_lib_path(TEST_ICD_PATH_VERSION_2)));
3736 env.add_icd(TestICDDetails(ManifestICD{}.set_lib_path(TEST_ICD_PATH_VERSION_2).set_is_portability_driver(true)));
3738 auto& driver0 = env.get_test_icd(0);
3739 auto& driver1 = env.get_test_icd(1);
3748 InstWrapper inst{env.vulkan_functions};
3753 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3755 ASSERT_FALSE(env.debug_log.find(portability_driver_warning));
3763 FrameworkEnvironment env{};
3766 env.add_icd(TestICDDetails(ManifestICD{}.set_lib_path(TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA)))
3770 env.add_icd(
3776 auto extensions = env.GetInstanceExtensions(6);
3786 env.add_explicit_layer(
3791 InstWrapper inst{env.vulkan_functions};
3803 ASSERT_EQ(VK_INCOMPLETE, env.vulkan_functions.vkEnumerateDeviceLayerProperties(phys_dev, &layer_count, &layer_props));
3810 FrameworkEnvironment env;
3811 env.add_icd(TestICDDetails{TEST_ICD_PATH_VERSION_2}.set_discovery_type(ManifestDiscoveryType::windows_app_package))
3814 InstWrapper inst{env.vulkan_functions};
3822 FrameworkEnvironment env{};
3823 env.add_icd(TestICDDetails(ManifestICD{}.set_lib_path(TEST_ICD_PATH_VERSION_2)));
3825 auto null_path = env.get_folder(ManifestLocation::null).location() / "test_layer.json";
3827 env.platform_shim->add_manifest(ManifestCategory::explicit_layer, null_path.str());
3830 env.add_explicit_layer(
3835 InstWrapper inst{env.vulkan_functions};
3843 FrameworkEnvironment env{};
3844 auto null_path = env.get_folder(ManifestLocation::null).location() / "test_icd_0.json";
3845 env.platform_shim->add_manifest(ManifestCategory::icd, null_path.str());
3847 env.add_icd(TestICDDetails{TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA}.set_discovery_type(ManifestDiscoveryType::null_dir))
3850 env.platform_shim->add_d3dkmt_adapter(D3DKMT_Adapter{0, _LUID{10, 1000}}.add_driver_manifest_path(env.get_icd_manifest_path()));
3852 InstWrapper inst{env.vulkan_functions};
3853 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3855 ASSERT_TRUE(env.debug_log.find(std::string("Skipping adding of json file \"") + null_path.str() +
3862 FrameworkEnvironment env{};
3863 EnvVarWrapper ld_library_path("LD_LIBRARY_PATH", env.get_folder(ManifestLocation::driver).location().str());
3864 ld_library_path.add_to_list(env.get_folder(ManifestLocation::explicit_layer).location().str());
3866 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2).set_library_path_type(LibraryPathType::default_search_paths))
3872 env.add_explicit_layer(
3878 auto props = env.GetLayerProperties(1);
3881 InstWrapper inst{env.vulkan_functions};
3883 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3896 // Check that valid symlinks do not cause the loader to crash when directly in an XDG env-var
3898 FrameworkEnvironment env{FrameworkSettings{}.set_enable_default_search_paths(false)};
3899 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA).set_discovery_type(ManifestDiscoveryType::override_folder))
3901 auto driver_path = env.get_icd_manifest_path(0);
3903 fs::path symlink_path = env.get_folder(ManifestLocation::driver_env_var).location() / symlink_name;
3904 env.get_folder(ManifestLocation::driver_env_var).add_existing_file(symlink_name);
3909 InstWrapper inst{env.vulkan_functions};
3910 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3916 FrameworkEnvironment env{FrameworkSettings{}.set_enable_default_search_paths(false)};
3917 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA).set_discovery_type(ManifestDiscoveryType::override_folder))
3920 auto driver_path = env.get_icd_manifest_path(0);
3922 fs::path symlink_path = env.get_folder(ManifestLocation::driver_env_var).location() / symlink_name;
3923 env.get_folder(ManifestLocation::driver_env_var).add_existing_file(symlink_name);
3927 env.platform_shim->set_fake_path(ManifestCategory::icd, env.get_folder(ManifestLocation::driver_env_var).location());
3929 InstWrapper inst{env.vulkan_functions};
3930 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3934 // Check that invalid symlinks do not cause the loader to crash when directly in an XDG env-var
3936 FrameworkEnvironment env{FrameworkSettings{}.set_enable_default_search_paths(false)};
3938 fs::path symlink_path = env.get_folder(ManifestLocation::driver_env_var).location() / symlink_name;
3939 fs::path invalid_driver_path = env.get_folder(ManifestLocation::driver).location() / "nothing_here.json";
3942 env.get_folder(ManifestLocation::driver_env_var).add_existing_file(symlink_name);
3946 InstWrapper inst{env.vulkan_functions};
3947 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3953 FrameworkEnvironment env{FrameworkSettings{}.set_enable_default_search_paths(false)};
3955 fs::path symlink_path = env.get_folder(ManifestLocation::driver).location() / symlink_name;
3956 fs::path invalid_driver_path = env.get_folder(ManifestLocation::driver_env_var).location() / "nothing_here.json";
3959 env.get_folder(ManifestLocation::driver).add_existing_file(symlink_name);
3961 env.platform_shim->set_fake_path(ManifestCategory::icd, env.get_folder(ManifestLocation::driver_env_var).location());
3963 InstWrapper inst{env.vulkan_functions};
3964 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
3972 FrameworkEnvironment env{};
3973 env.setup_macos_bundle();
3974 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA).set_discovery_type(ManifestDiscoveryType::macos_bundle));
3975 env.get_test_icd(0).physical_devices.push_back({});
3976 env.get_test_icd(0).physical_devices.at(0).properties.deviceID = 1337;
3977 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA));
3978 env.get_test_icd(1).physical_devices.push_back({});
3979 env.get_test_icd(1).physical_devices.at(0).properties.deviceID = 9999;
3981 InstWrapper inst{env.vulkan_functions};
3989 ASSERT_EQ(env.get_test_icd(0).physical_devices.at(0).properties.deviceID, props.deviceID);
3992 // Add two drivers, one to the bundle and one using the driver env-var
3994 FrameworkEnvironment env{};
3995 env.setup_macos_bundle();
3996 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA).set_discovery_type(ManifestDiscoveryType::macos_bundle));
3997 env.get_test_icd(0).physical_devices.push_back({});
3998 env.get_test_icd(0).physical_devices.at(0).properties.deviceID = 1337;
3999 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2_EXPORT_ICD_GPDPA).set_discovery_type(ManifestDiscoveryType::env_var));
4000 env.get_test_icd(1).physical_devices.push_back({});
4001 env.get_test_icd(1).physical_devices.at(0).properties.deviceID = 9999;
4003 InstWrapper inst{env.vulkan_functions};
4008 // Verify that this is the 'right' GPU, aka the one from the env-var
4011 ASSERT_EQ(env.get_test_icd(1).physical_devices.at(0).properties.deviceID, props.deviceID);
4016 FrameworkEnvironment env{};
4017 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device({});
4019 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
4024 env.get_test_layer().set_call_create_device_while_create_device_is_called(true);
4025 env.get_test_layer().set_physical_device_index_to_use_during_create_device(0);
4027 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
4033 InstWrapper inst{env.vulkan_functions};
4041 FrameworkEnvironment env{};
4042 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
4043 env.get_test_icd(0).physical_devices.emplace_back("Device0");
4044 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2));
4045 env.get_test_icd(1).physical_devices.emplace_back("Device1");
4047 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
4052 env.get_test_layer().set_call_create_device_while_create_device_is_called(true);
4053 env.get_test_layer().set_physical_device_index_to_use_during_create_device(1);
4055 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
4061 InstWrapper inst{env.vulkan_functions};
4071 FrameworkEnvironment env{};
4072 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device({});
4074 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
4079 env.get_test_layer(0).set_check_if_EnumDevExtProps_is_same_as_queried_function(true);
4081 InstWrapper inst{env.vulkan_functions};
4091 FrameworkEnvironment env{};
4092 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device({});
4094 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
4099 env.get_test_layer(0).set_clobber_pInstance(true);
4101 InstWrapper inst{env.vulkan_functions};
4102 FillDebugUtilsCreateDetails(inst.create_info, env.debug_log);
4127 FrameworkEnvironment env{};
4128 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device({});
4130 env.add_implicit_layer(ManifestLayer{}.add_layer(ManifestLayer::LayerDescription{}
4135 env.get_test_layer(0).set_clobber_pDevice(true);
4137 InstWrapper inst{env.vulkan_functions};
4169 FrameworkEnvironment env{};
4170 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device({});
4184 fs::path new_path = env.get_folder(ManifestLocation::driver).write_manifest(file_name, invalid_jsons[i]);
4185 env.platform_shim->add_manifest(ManifestCategory::icd, new_path);
4188 InstWrapper inst{env.vulkan_functions};
4193 FrameworkEnvironment env{};
4194 env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_2)).add_physical_device({});
4208 fs::path new_path = env.get_folder(ManifestLocation::implicit_layer).write_manifest(file_name, invalid_jsons[i]);
4209 env.platform_shim->add_manifest(ManifestCategory::implicit_layer, new_path);
4212 InstWrapper inst{env.vulkan_functions};
4216 void add_dxgi_adapter(FrameworkEnvironment& env, const char* name, LUID luid, uint32_t vendor_id) {
4217 auto& driver = env.add_icd(TestICDDetails(TEST_ICD_PATH_VERSION_6).set_discovery_type(ManifestDiscoveryType::null_dir));
4232 env.platform_shim->add_dxgi_adapter(GpuType::discrete, desc);
4234 env.platform_shim->add_d3dkmt_adapter(
4235 D3DKMT_Adapter{static_cast<UINT>(env.icds.size()) - 1U, desc.AdapterLuid}.add_driver_manifest_path(
4236 env.get_icd_manifest_path(env.icds.size() - 1)));
4240 FrameworkEnvironment env;
4245 add_dxgi_adapter(env, "physical_device_2", LUID{10, 100}, 2);
4246 add_dxgi_adapter(env, "physical_device_1", LUID{20, 200}, 1);
4247 add_dxgi_adapter(env, "physical_device_0", LUID{10, 100}, 2);
4251 InstWrapper inst{env.vulkan_functions};
4255 ASSERT_EQ(VK_SUCCESS, env.vulkan_functions.vkEnumeratePhysicalDevices(inst.inst, &returned_physical_count, nullptr));
4258 ASSERT_EQ(VK_SUCCESS, env.vulkan_functions.vkEnumeratePhysicalDevices(inst.inst, &returned_physical_count,
4263 env.vulkan_functions.vkGetPhysicalDeviceProperties(physical_device_handles[0], &(phys_dev_props[0]));
4264 env.vulkan_functions.vkGetPhysicalDeviceProperties(physical_device_handles[1], &(phys_dev_props[1]));
4265 env.vulkan_functions.vkGetPhysicalDeviceProperties(physical_device_handles[2], &(phys_dev_props[2]));
4280 env.vulkan_functions.vkGetPhysicalDeviceProperties2(physical_device_handles[0], &props2);
4283 env.vulkan_functions.vkGetPhysicalDeviceProperties2(physical_device_handles[1], &props2);
4286 env.vulkan_functions.vkGetPhysicalDeviceProperties2(physical_device_handles[2], &props2);
4291 env.get_test_icd(2).physical_devices.back().layered_driver_underlying_api = VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT;
4294 InstWrapper inst{env.vulkan_functions};
4298 ASSERT_EQ(VK_SUCCESS, env.vulkan_functions.vkEnumeratePhysicalDevices(inst.inst, &returned_physical_count, nullptr));
4301 ASSERT_EQ(VK_SUCCESS, env.vulkan_functions.vkEnumeratePhysicalDevices(inst.inst, &returned_physical_count,
4306 env.vulkan_functions.vkGetPhysicalDeviceProperties(physical_device_handles[0], &(phys_dev_props[0]));
4307 env.vulkan_functions.vkGetPhysicalDeviceProperties(physical_device_handles[1], &(phys_dev_props[1]));
4308 env.vulkan_functions.vkGetPhysicalDeviceProperties(physical_device_handles[2], &(phys_dev_props[2]));
4324 env.vulkan_functions.vkGetPhysicalDeviceProperties2(physical_device_handles[0], &props2);
4327 env.vulkan_functions.vkGetPhysicalDeviceProperties2(physical_device_handles[1], &props2);
4330 env.vulkan_functions.vkGetPhysicalDeviceProperties2(physical_device_handles[2], &props2);
4336 FrameworkEnvironment env;
4341 add_dxgi_adapter(env, "physical_device_2", LUID{10, 100}, 2);
4342 add_dxgi_adapter(env, "physical_device_1", LUID{20, 200}, 1);
4343 add_dxgi_adapter(env, "physical_device_0", LUID{10, 100}, 2);
4346 env.get_test_icd(0).physical_devices.back().layered_driver_underlying_api = VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT;
4349 InstWrapper inst{env.vulkan_functions};
4353 ASSERT_EQ(VK_SUCCESS, env.vulkan_functions.vkEnumeratePhysicalDevices(inst.inst, &returned_physical_count, nullptr));
4357 env.vulkan_functions.vkEnumeratePhysicalDevices(inst.inst, &returned_physical_count, physical_device_handles.data()));
4361 env.vulkan_functions.vkGetPhysicalDeviceProperties(physical_device_handles[0], &(phys_dev_props[0]));
4362 env.vulkan_functions.vkGetPhysicalDeviceProperties(physical_device_handles[1], &(phys_dev_props[1]));
4363 env.vulkan_functions.vkGetPhysicalDeviceProperties(physical_device_handles[2], &(phys_dev_props[2]));
4379 env.vulkan_functions.vkGetPhysicalDeviceProperties2(physical_device_handles[0], &props2);
4382 env.vulkan_functions.vkGetPhysicalDeviceProperties2(physical_device_handles[1], &props2);
4385 env.vulkan_functions.vkGetPhysicalDeviceProperties2(physical_device_handles[2], &props2);