gpt4 book ai didi

debugging - 你们如何调试 GLSL?

转载 作者:行者123 更新时间:2023-12-05 05:26:48 26 4
gpt4 key购买 nike

我最近尝试编写一些 GLSL 着色器代码,但运气不佳,因为着色器没有绘制我预期的内容(基本上,屏幕上的一切都是黑色的)。以下是我尝试过的工具:

  1. Nvidia NSight VS 集成 - 当我启动该应用程序时,它立即崩溃,尝试使用简单的三角形绘图连接其他应用程序,但仍然没有成功。通过互联网和 Nvidia 论坛搜索,似乎这是一个常见问题,但似乎没有找到任何解决方案。

  2. glslDevil - 它可以启动应用程序,但程序在任何渲染发生之前一直退出,GL Trace 是

    wglMakeCurrent(0, 0)
    wglDeleteContext(00010000)
    ChildProcess exited

    调用后运行另一个应用程序时再次崩溃glDeleteTexture(1, 0314EF74)子进程退出

    我不知道发生了什么。

  3. AMD PerfStudio 2 - 它似乎是最有前途的工具,成功运行了我的应用程序并显示了所需的信息。但是,它似乎不支持调试 GLSL,我不能单步执行着色器和观察局部变量等?貌似只支持DirextX shader

  4. gDebugger - 它工作得很好的工具,类似于 AMD PerfStudio,但同样它不是调试器,不能单步执行着色器代码和观察任何局部变量。

  5. Printf - ??堆栈溢出有人说使用 printf,我如何在着色器中执行 printf()?

  6. 将 DirectX 着色器转换为 GLSL - 因为 DirectX 着色器有更好的调试工具,并且有像 http://sourceforge.net/projects/hlsl2glsl/ 这样的工具。自动将 hlsl 转换为 glsl,似乎可以作为替代方案。我个人不喜欢这个解决方案,真的希望我有其他选择。

谁能建议您如何调试 GLSL?您成功使用了什么工具?

我正在运行:

  • 英伟达 GFX 460v2
  • Visual Studio 2008 和 2010
  • GLEW
  • OpenGL 2.0

最佳答案

您可以使用 glDrawBuffers 指定额外的输出然后检查它(您的 printf)。

然而,当图元位于绘图区域之外时,这并不能解决任何问题。

否则,这就是纯推理和心理调试的老式编程。

关于debugging - 你们如何调试 GLSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23839092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com