繁体   English   中英

在dx11中计算着色器基础知识

[英]Compute Shader basics in dx11

我即将为我的代码库添加计算着色器支持,并在查找一些非常基本的问题的答案时遇到问题:

  1. 所有文档都说Compute Shader管道独立于GPU运行,但是所有dx11示例代码都使用设备上下文接口来设置着色器本身,资源视图并调用dispatch()方法,所以这些在命令中排队等待缓冲区与其余的渲染命令或它们是否独立执行?

  2. 关注问题1,我可以从多个线程调用计算着色器,还是需要缓冲所有计算着色器命令并在创建直接设备上下文的线程上发出它们?

  3. 同步。 大多数文章都使用CopyResource命令,该命令将自动同步计算着色器完成并为结果提供CPU访问权限,但似乎也会阻止GPU。 有更有效的同步方式吗?

我知道我可以通过实验找到答案,但任何能帮我节省时间的帮助都会受到赞赏。

  1. Compute Shader管道独立于Rendering管道运行,即顶点着色器,像素着色器,混合状态等对调用Dispatch()时发生的情况没有影响。 但是,它们会进入相同的队列,因此保留了对DrawDispatch调用之间的顺序。

  2. 所有对直接上下文的调用必须从单个线程完成。

  3. 一种常见的方法是使用两个缓冲区。 当一个正在使用计算着色器进行操作时,另一个正被复制并由CPU读取。 大多数GPU都能够并行化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM