HLSL中的printf函数做什么?

What does the printf function in HLSL do?

本文关键字:什么 函数 中的 printf HLSL      更新时间:2023-10-16

MSDN HLSL参考说明了printf:

"向信息队列提交自定义着色器消息。"

https://msdn.microsoft.com/en-us/library/windows/desktop/ff728755%28v=vs.85%29.aspx

什么是信息队列,我怎么能看到着色器消息?这是否意味着当在像素着色器中使用时,它将输出宽度*高度(屏幕像素)消息?

谢谢!

基本上可以用于着色器跟踪。D3D11_TRACE_STEP结构可以帮助您获得printf从HLSL传递的消息,下面是一个示例,乍一看似乎没有问题(尽管用D编写):

https://github.com/evilrat666/directx-d/blob/master/src/directx/d3d11shadertracing.d

可以和这个接口一起使用来访问跟踪信息:

https://msdn.microsoft.com/en-us/library/windows/desktop/hh446840 (v = vs.85) . aspx

免责声明:这只是我在研究这个主题时发现的,所以我不能提供实际的代码示例。对于调试着色器,我宁愿建议使用Renderdoc或VS Graphics Debugger