diff --git a/iree/samples/vulkan/vulkan_inference_gui.cc b/iree/samples/vulkan/vulkan_inference_gui.cc index 779a43fbe9e4..f14e228fb0f4 100644 --- a/iree/samples/vulkan/vulkan_inference_gui.cc +++ b/iree/samples/vulkan/vulkan_inference_gui.cc @@ -201,27 +201,32 @@ int iree::IreeMain(int argc, char** argv) { // Load symbols from our static `vkGetInstanceProcAddr` for IREE to use. iree_hal_vulkan_syms_t* iree_vk_syms = nullptr; IREE_CHECK_OK(iree_hal_vulkan_syms_create( - reinterpret_cast(&vkGetInstanceProcAddr), &iree_vk_syms)); + reinterpret_cast(&vkGetInstanceProcAddr), iree_allocator_system(), + &iree_vk_syms)); // Create the driver sharing our VkInstance. iree_hal_driver_t* iree_vk_driver = nullptr; - iree_hal_vulkan_driver_options_t options; - options.api_version = VK_API_VERSION_1_0; - options.features = static_cast( + iree_string_view_t driver_identifier = iree_make_cstring_view("vulkan"); + iree_hal_vulkan_driver_options_t driver_options; + driver_options.api_version = VK_API_VERSION_1_0; + driver_options.requested_features = static_cast( IREE_HAL_VULKAN_FEATURE_ENABLE_DEBUG_UTILS); IREE_CHECK_OK(iree_hal_vulkan_driver_create_using_instance( - options, iree_vk_syms, g_Instance, &iree_vk_driver)); + driver_identifier, &driver_options, iree_vk_syms, g_Instance, + iree_allocator_system(), &iree_vk_driver)); // Create a device sharing our VkDevice and queue. // We could also create a separate (possibly low priority) compute queue for // IREE, and/or provide a dedicated transfer queue. + iree_string_view_t device_identifier = iree_make_cstring_view("vulkan"); iree_hal_vulkan_queue_set_t compute_queue_set; compute_queue_set.queue_family_index = g_QueueFamily; compute_queue_set.queue_indices = 1 << 0; iree_hal_vulkan_queue_set_t transfer_queue_set; transfer_queue_set.queue_indices = 0; iree_hal_device_t* iree_vk_device = nullptr; - IREE_CHECK_OK(iree_hal_vulkan_driver_wrap_device( - iree_vk_driver, g_PhysicalDevice, g_Device, compute_queue_set, - transfer_queue_set, &iree_vk_device)); + IREE_CHECK_OK(iree_hal_vulkan_wrap_device( + device_identifier, &driver_options.device_options, iree_vk_syms, + g_Instance, g_PhysicalDevice, g_Device, &compute_queue_set, + &transfer_queue_set, iree_allocator_system(), &iree_vk_device)); // Create a HAL module using the HAL device. iree_vm_module_t* hal_module = nullptr; IREE_CHECK_OK(iree_hal_module_create(iree_vk_device, iree_allocator_system(), diff --git a/iree/testing/vulkan/CMakeLists.txt b/iree/testing/vulkan/CMakeLists.txt index 0384bc15cef7..263ff177b64f 100644 --- a/iree/testing/vulkan/CMakeLists.txt +++ b/iree/testing/vulkan/CMakeLists.txt @@ -51,7 +51,7 @@ iree_cc_library( imgui::imgui iree::base::api iree::base::logging - iree::hal::vulkan::api + iree::hal::vulkan SDL2::SDL2 Vulkan::Vulkan ) diff --git a/iree/testing/vulkan/vulkan_gui_util.cc b/iree/testing/vulkan/vulkan_gui_util.cc index c633c2cb75aa..9eb7b5711962 100644 --- a/iree/testing/vulkan/vulkan_gui_util.cc +++ b/iree/testing/vulkan/vulkan_gui_util.cc @@ -35,11 +35,13 @@ std::vector GetIreeLayers( iree_hal_vulkan_extensibility_set_t extensibility_set, iree_hal_vulkan_features_t features) { iree_host_size_t required_count; - iree_hal_vulkan_get_layers(extensibility_set, features, 0, NULL, - &required_count); + iree_hal_vulkan_query_extensibility_set( + features, extensibility_set, /*string_capacity=*/0, + /*out_string_values=*/NULL, &required_count); std::vector layers(required_count); - iree_hal_vulkan_get_layers(extensibility_set, features, layers.size(), - layers.data(), &required_count); + iree_hal_vulkan_query_extensibility_set(features, extensibility_set, + layers.size(), layers.data(), + &required_count); return layers; } @@ -49,11 +51,13 @@ std::vector GetIreeExtensions( iree_hal_vulkan_extensibility_set_t extensibility_set, iree_hal_vulkan_features_t features) { iree_host_size_t required_count; - iree_hal_vulkan_get_extensions(extensibility_set, features, 0, NULL, - &required_count); + iree_hal_vulkan_query_extensibility_set( + features, extensibility_set, /*string_capacity=*/0, + /*out_string_values=*/NULL, &required_count); std::vector extensions(required_count); - iree_hal_vulkan_get_extensions(extensibility_set, features, extensions.size(), - extensions.data(), &required_count); + iree_hal_vulkan_query_extensibility_set(features, extensibility_set, + extensions.size(), extensions.data(), + &required_count); return extensions; } @@ -61,10 +65,12 @@ std::vector GetIreeExtensions( // |vulkan_features|. std::vector GetDeviceExtensions( iree_hal_vulkan_features_t vulkan_features) { - std::vector iree_required_extensions = - GetIreeExtensions(IREE_HAL_VULKAN_DEVICE_REQUIRED, vulkan_features); - std::vector iree_optional_extensions = - GetIreeExtensions(IREE_HAL_VULKAN_DEVICE_OPTIONAL, vulkan_features); + std::vector iree_required_extensions = GetIreeExtensions( + IREE_HAL_VULKAN_EXTENSIBILITY_DEVICE_EXTENSIONS_REQUIRED, + vulkan_features); + std::vector iree_optional_extensions = GetIreeExtensions( + IREE_HAL_VULKAN_EXTENSIBILITY_DEVICE_EXTENSIONS_OPTIONAL, + vulkan_features); // Merge extensions lists, including optional and required for simplicity. std::set ext_set; @@ -82,10 +88,10 @@ std::vector GetDeviceExtensions( std::vector GetInstanceLayers( iree_hal_vulkan_features_t vulkan_features) { // Query the layers that IREE wants / needs. - std::vector required_layers = - GetIreeLayers(IREE_HAL_VULKAN_INSTANCE_REQUIRED, vulkan_features); - std::vector optional_layers = - GetIreeLayers(IREE_HAL_VULKAN_INSTANCE_OPTIONAL, vulkan_features); + std::vector required_layers = GetIreeLayers( + IREE_HAL_VULKAN_EXTENSIBILITY_INSTANCE_LAYERS_REQUIRED, vulkan_features); + std::vector optional_layers = GetIreeLayers( + IREE_HAL_VULKAN_EXTENSIBILITY_INSTANCE_LAYERS_OPTIONAL, vulkan_features); // Query the layers that are available on the Vulkan ICD. uint32_t layer_property_count = 0; @@ -131,10 +137,12 @@ std::vector GetInstanceExtensions( SDL_Vulkan_GetInstanceExtensions(window, &sdl_extensions_count, sdl_extensions.data()); - std::vector iree_required_extensions = - GetIreeExtensions(IREE_HAL_VULKAN_INSTANCE_REQUIRED, vulkan_features); - std::vector iree_optional_extensions = - GetIreeExtensions(IREE_HAL_VULKAN_INSTANCE_OPTIONAL, vulkan_features); + std::vector iree_required_extensions = GetIreeExtensions( + IREE_HAL_VULKAN_EXTENSIBILITY_INSTANCE_EXTENSIONS_REQUIRED, + vulkan_features); + std::vector iree_optional_extensions = GetIreeExtensions( + IREE_HAL_VULKAN_EXTENSIBILITY_INSTANCE_EXTENSIONS_OPTIONAL, + vulkan_features); // Merge extensions lists, including optional and required for simplicity. std::set ext_set;