diff --git a/iree/hal/vulkan/extensibility_util.cc b/iree/hal/vulkan/extensibility_util.cc index ca1d2a7fb81e..7729ebc432ec 100644 --- a/iree/hal/vulkan/extensibility_util.cc +++ b/iree/hal/vulkan/extensibility_util.cc @@ -153,23 +153,6 @@ StatusOr> MatchAvailableInstanceExtensions( return enabled_extensions; } -StatusOr> MatchAvailableDeviceLayers( - VkPhysicalDevice physical_device, - const ExtensibilitySpec& extensibility_spec, const DynamicSymbols& syms) { - uint32_t layer_property_count = 0; - VK_RETURN_IF_ERROR(syms.vkEnumerateDeviceLayerProperties( - physical_device, &layer_property_count, nullptr)); - std::vector layer_properties(layer_property_count); - VK_RETURN_IF_ERROR(syms.vkEnumerateDeviceLayerProperties( - physical_device, &layer_property_count, layer_properties.data())); - ASSIGN_OR_RETURN(auto enabled_layers, - MatchAvailableLayers(extensibility_spec.required_layers, - extensibility_spec.optional_layers, - layer_properties), - _ << "Unable to find all required device layers"); - return enabled_layers; -} - StatusOr> MatchAvailableDeviceExtensions( VkPhysicalDevice physical_device, const ExtensibilitySpec& extensibility_spec, const DynamicSymbols& syms) { diff --git a/iree/hal/vulkan/extensibility_util.h b/iree/hal/vulkan/extensibility_util.h index 8f2b7847b0cb..7326092ee060 100644 --- a/iree/hal/vulkan/extensibility_util.h +++ b/iree/hal/vulkan/extensibility_util.h @@ -50,12 +50,6 @@ StatusOr> MatchAvailableInstanceLayers( StatusOr> MatchAvailableInstanceExtensions( const ExtensibilitySpec& extensibility_spec, const DynamicSymbols& syms); -// Returns a list of layer names available for the given |physical_device|. -// Fails if any required_layers are unavailable. -StatusOr> MatchAvailableDeviceLayers( - VkPhysicalDevice physical_device, - const ExtensibilitySpec& extensibility_spec, const DynamicSymbols& syms); - // Returns a list of extension names available for the given |physical_device|. // Fails if any required_extensions are unavailable. StatusOr> MatchAvailableDeviceExtensions( diff --git a/iree/hal/vulkan/vulkan_device.cc b/iree/hal/vulkan/vulkan_device.cc index 234752c18109..98d01011d031 100644 --- a/iree/hal/vulkan/vulkan_device.cc +++ b/iree/hal/vulkan/vulkan_device.cc @@ -208,11 +208,14 @@ StatusOr> VulkanDevice::Create( DebugCaptureManager* debug_capture_manager) { IREE_TRACE_SCOPE0("VulkanDevice::Create"); - // Find the layers and extensions we need (or want) that are also available + if (!extensibility_spec.optional_layers.empty() || + !extensibility_spec.required_layers.empty()) { + return InvalidArgumentErrorBuilder(IREE_LOC) + << "Device layers are deprecated and unsupported by IREE"; + } + + // Find the extensions we need (or want) that are also available // on the device. This will fail when required ones are not present. - ASSIGN_OR_RETURN( - auto enabled_layer_names, - MatchAvailableDeviceLayers(physical_device, extensibility_spec, *syms)); ASSIGN_OR_RETURN(auto enabled_extension_names, MatchAvailableDeviceExtensions(physical_device, extensibility_spec, *syms)); @@ -280,8 +283,8 @@ StatusOr> VulkanDevice::Create( // Create device and its queues. VkDeviceCreateInfo device_create_info = {}; device_create_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO; - device_create_info.enabledLayerCount = enabled_layer_names.size(); - device_create_info.ppEnabledLayerNames = enabled_layer_names.data(); + device_create_info.enabledLayerCount = 0; + device_create_info.ppEnabledLayerNames = nullptr; device_create_info.enabledExtensionCount = enabled_extension_names.size(); device_create_info.ppEnabledExtensionNames = enabled_extension_names.data(); device_create_info.queueCreateInfoCount = queue_create_info.size(); @@ -305,7 +308,7 @@ StatusOr> VulkanDevice::Create( auto logical_device = make_ref(syms, enabled_device_extensions, /*owns_device=*/true, /*allocator=*/nullptr); - // The Vulkan loader can leak here, depending on which layers are enabled. + // The Vulkan loader can leak here, depending on which features are enabled. // This is out of our control, so disable leak checks. IREE_DISABLE_LEAK_CHECKS(); VK_RETURN_IF_ERROR(syms->vkCreateDevice(physical_device, &device_create_info,