欢迎光临散文网 会员登陆 & 注册

vulkan在shader中打log

2021-01-10 18:58 作者:AICDG  | 我要投稿

VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT

       在较新的vulkan版本中,添加了对debug_printf的支持,也就是说,现在可以在shader中打log了。

开启vulkan debug_printf

       debug_printf在vulkan中是VALIDATION_FEATURE,也就是说可以通过和其他验证层一样的方式来开启和关闭,非常方便。

注意,vulkan中开启debug_printf需要同时开启device扩展VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME

(推荐)使用Vulkan Configurator

       在最近的vulkan sdk中,新添加了名为Vulkan Configurator的工具,可以很方便的在UI界面下配置vulkan的validation layer

使用环境变量

       和vulkan旧版本相兼容,debug_printf也可以通过配置环境变量开启

VK_LAYER_ENABLES=VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT

       通过设置环境变量VK_LAYER_ENABLESVK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT来全局开启debug_printf功能

在代码中配置

       vulkan在代码中配置debug_printf会稍微复杂一些,但是可以对每个程序实现更精细的控制


shader中打log

GLSL

HLSL

GLSL中不要忘记#extension GL_EXT_debug_printf : enable,HLSL dxc编译器如果开启优化编译器会crash,现在如果要在hlsl打log,请先关闭优化

dxc -spirv -T vs_6_0 -E vert hlsl/shader.hlsl -Fo vert.spv -O0

最终效果


vulkan在shader中打log的评论 (共 条)

分享到微博请遵守国家法律