From 1bc84dfda8e71016f02200407c9913e5956c2567 Mon Sep 17 00:00:00 2001 From: "Nathan V. Morrical" Date: Fri, 2 Feb 2024 12:01:05 -0800 Subject: adding required extensions to gfx to enable basic vulkan printf functionality (#3541) --- tools/gfx/vulkan/vk-device.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'tools') diff --git a/tools/gfx/vulkan/vk-device.cpp b/tools/gfx/vulkan/vk-device.cpp index 66c2c811b..55c1a88ec 100644 --- a/tools/gfx/vulkan/vk-device.cpp +++ b/tools/gfx/vulkan/vk-device.cpp @@ -209,6 +209,8 @@ Result DeviceImpl::initVulkanInstanceAndDevice( const char* layerNames[] = { nullptr }; + VkValidationFeaturesEXT validationFeatures = {}; + VkValidationFeatureEnableEXT enabledValidationFeatures[1] = { VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT }; if (useValidationLayer) { // Depending on driver version, validation layer may or may not exist. @@ -255,6 +257,12 @@ Result DeviceImpl::initVulkanInstanceAndDevice( { instanceCreateInfo.enabledLayerCount = SLANG_COUNT_OF(layerNames); instanceCreateInfo.ppEnabledLayerNames = layerNames; + + // Include support for printf + validationFeatures.sType = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT; + validationFeatures.enabledValidationFeatureCount = 1; + validationFeatures.pEnabledValidationFeatures = enabledValidationFeatures; + instanceCreateInfo.pNext = &validationFeatures; } } uint32_t apiVersionsToTry[] = { VK_API_VERSION_1_2, VK_API_VERSION_1_1, VK_API_VERSION_1_0 }; @@ -360,6 +368,7 @@ Result DeviceImpl::initVulkanInstanceAndDevice( List deviceExtensions; deviceExtensions.add(VK_KHR_SWAPCHAIN_EXTENSION_NAME); + deviceExtensions.add(VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME); #if SLANG_APPLE_FAMILY deviceExtensions.add("VK_KHR_portability_subset"); #endif -- cgit v1.2.3