在图形驱动程序中使用 DirectX 10.0 或 11.0 顶点或像素着色器(Draw() API 调用除外)

发布于 2024-12-25 02:08:29 字数 427 浏览 2 评论 0原文

我们的项目是分析 DirectX 10 或 11 SDK 应用程序或游戏(生化奇兵、孤岛惊魂等)应用程序中使用的各种顶点和像素、几何着色器。

现在我们需要从技术上了解着色器(VS、GS、PS)何时在管道内使用或执行,我们知道在 Draw() DirectX API 调用期间,设置着色器在管道内执行。

  1. 除了 Draw() 调用之外,是否还有其他 API 可以在内部执行或利用通过 SetShader() 设置到 Pipeline 的 Shader?

  2. 设备 API(例如 Map、unmap、getResourcem 和 Copy 资源)是否间接操作着色器?

除了 DirectX Draw() API 调用之外,与 DirectX 运行时或图形驱动程序中着色器的使用相关的任何指针都将有助于我们识别并拥有可靠的实现。

Our project is to profile the various Vertex and Pixel, Geometry shaders used within DirectX 10 or 11 SDK application or with Game (BioShock, Far Cry etc..) applications.

Now we need an technical understanding of when the Shaders (VS,GS,PS) are being used or rather executed within pipeline, we know that during Draw() DirectX API call, the setting shader get's executed within the Pipeline.

  1. Is there any other API than Draw() call, which can internally execute or utilize the Shader being set to the Pipeline using SetShader()?

  2. Is the Device API's (such as, Map, unmap, getResourcem and Copy resource) manipulate the shaders indirectly?

Any pointers related to usage of shaders within DirectX runtime or graphics driver other than DirectX Draw() API calls will be helpful for us to identify and have robust implementation.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遇到 2025-01-01 02:08:29
  1. 是的,检查计算着色器,特别是 Dispatch() 方法。
  2. 不,着色器只是一种状态信息,因此一旦它们加载到 ID3D11*Shader 对象中,它们就不可更改。如果你想反编译它们,请查看 Shader Reflection API。
  1. Yes, check Compute Shaders and specifically Dispatch() method.
  2. No, shaders are just a state information, so once they've loaded into ID3D11*Shader objects, they are not changeable. If you want to decompile them, take a look at Shader Reflection API.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文