计算DX11中的着色器基础知识
Compute Shader basics in dx11
我即将在我的代码库中添加计算着色器支持,并遇到问题,找到一些非常基本问题的答案:
-
所有的文档都说Compute Dipeline均独立于GPU运行,但是所有DX11示例代码都使用设备上下文接口来设置着色器本身,资源视图并调用dispatch()方法,所以这些使用其余的渲染命令在命令缓冲区中排队或独立执行?
-
跟进问题1,我可以从多个线程调用计算着色器,还是我需要缓冲所有计算着色器命令并在线程上发布它们,该线程是在?
<</p> <</p> -
同步。大多数文章都使用CopyResource命令,该命令将自动同步计算着色器完成并使CPU访问结果,但似乎也可以阻止GPU。是否有一种更有效的方法来同步?
我知道我可以通过实验找到答案,但是为我节省时间的任何帮助都将不胜感激。
-
Compute着色器管道独立于渲染管道,即顶点着色器,像素着色器,混合状态等,对调用
Dispatch()
时会发生什么。但是,它们确实进入了同一队列,因此保留了Draw
和Dispatch
的呼叫之间的订购。 -
必须从单个线程中完成对即时上下文的所有调用。
-
一种常见的方法是使用两个缓冲区。当一个通过计算着色器进行操作时,另一个是由CPU复制并阅读的。大多数GPU将能够并行化。
相关文章:
- 与C++哈希表的基础知识混淆
- 基础知识指针 c++
- 使用 QVector 创建图形磁贴(QCache 之前的基础知识)
- 异常基础知识:为什么 while 循环会变成无限循环?
- Cortex-M0 ASF基础知识
- C++基础知识(使用其他方法(Unicode?)的相同代码)
- 2 个未解析的外部符号(C++函数基础知识)
- 了解线程构造函数的基础知识
- 了解写入副本的基础知识
- C++OOP基础知识-是否正确返回对象引用
- 计算DX11中的着色器基础知识
- MDI窗口和QSignalMapper基础知识
- P2P最重要的基础知识
- C 多循环 for () 基础知识
- C++指针和数组基础知识
- 堆叠基础知识
- c++编译的基础知识
- 如何开始学习用C++为XBOX 360 KINECT编写用于开发windows应用程序的程序的基础知识
- 链接列表基础知识中的混乱
- 运行 MEEP C++ 基础知识