【问题标题】:Vulkan: debugPrintfEXT doesn't print anythingVulkan:debugPrintfEXT 不打印任何内容
【发布时间】:2021-02-13 11:33:19
【问题描述】:

我无法让debugPrintfEXT 工作。我看不出我错过了什么。

我采取的步骤:

  • 启用实例扩展VK_EXT_debug_utils;已使用 Nvidia Nsight 进行验证。
  • 使用 DebugUtils 打印输出消息。打印所有消息,包括 DEBUG 和 INFO。
  • 在顶点着色器中添加了#extension GL_EXT_debug_printf : enable
  • 在顶点着色器中使用debugPrintfEXT("Foo")
  • 从 Vulkan Configurator 运行代码,启用打印层。
  • 在实例中启用验证功能。

代码:

vk::InstanceCreateInfo createInfo;
std::vector valFeaturesEnabled = {vk::ValidationFeatureEnableEXT::eDebugPrintf};
vk::ValidationFeaturesEXT valFeatures;
valFeatures.enabledValidationFeatureCount = (uint32_t) valFeaturesEnabled.size();
valFeatures.pEnabledValidationFeatures = valFeaturesEnabled.data();
createInfo.setPNext(&valFeatures);

详情:

  • Windows 10
  • GTX 1080Ti
  • Visual Studio 2019
  • Vulkan 1.2

【问题讨论】:

    标签: vulkan


    【解决方案1】:

    你正在做的应该工作。

    我已经通过对 Khronos Vulkan-Samples 中的“hello triangle”示例进行一些小改动来实现它。

    通过使用 CMake 选项 -DVKB_VALIDATION_LAYERS=ON 进行构建或在 hello_triangle.cpp 的顶部添加定义,强制对 Debug 和 Release 构建使用验证层。由于项目在 Debug 构建中激活了验证层,因此如果您坚持使用 Debug 构建,则可以跳过此步骤。

    #define VKB_VALIDATION_LAYERS
    

    VK_DEBUG_REPORT_INFORMATION_BIT_EXT 标志添加到debug_report_create_info.flags。此要求的documentation 尚不清楚,但很快就会修复。你已经这样做了。

    在调用vkCreateInstance 之前添加以下代码。它与您粘贴的代码基本相同。

    VkValidationFeatureEnableEXT enabled[] = {VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT};
    VkValidationFeaturesEXT      features{VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT};
    features.disabledValidationFeatureCount = 0;
    features.enabledValidationFeatureCount  = 1;
    features.pDisabledValidationFeatures    = nullptr;
    features.pEnabledValidationFeatures     = enabled;
    
    features.pNext                          = instance_info.pNext;
    instance_info.pNext                     = &features;
    

    并对顶点着色器进行与您所做的相同的更改。

    如果您可以使用此示例使其工作,也许您会看到您在应用程序中所做的不同。

    【讨论】:

    • 现在可以使用了!我认为它正在设置信息位,但我认为我以前也这样做过。诡异的。无论如何,谢谢。小点:这会导致无限循环,不需要它:features.pNext=instance_info.pNext;
    猜你喜欢
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2016-05-02
    相关资源
    最近更新 更多