summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan V. Morrical <natemorrical@gmail.com>2024-02-02 12:01:05 -0800
committerGitHub <noreply@github.com>2024-02-02 12:01:05 -0800
commit1bc84dfda8e71016f02200407c9913e5956c2567 (patch)
treec95138176b947df7987248d7b811a0c69eea5f25
parentf370947c63bca707b9cfde7b18e67298f5fbace3 (diff)
adding required extensions to gfx to enable basic vulkan printf functionality (#3541)
-rw-r--r--tools/gfx/vulkan/vk-device.cpp9
1 files changed, 9 insertions, 0 deletions
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<const char*> 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