Directx11教程(14) D3D11管线(3)

      现在我们开始学习一些CP(command processor)的知识。参考资料:

http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-3/

      CP(command processor)应该是GPU最前端的block,它从位于video memory中的command buffer中取出UMD产生的command packet,比如状态设置,drawIndex等,然后把它们翻译成GPU后端block的具体操作,并把这些操作送到具体的block。

       因为video memory时延长的特点,所以理想状况下,CP中应该有一个大的FIFO来缓存command packet,用来解析和调度command的部分,应该是一个状态机,简单的CP流程图如下:

image

          

       从前面一章教程中我们知道,command packet主要存在ring buffer或者其指向的Indirect buffer中,所以CP中的prefetcher模块会把command packet从内存中取出并放在FIFO中,之后decode模块负责解析command packet,然后调度模块把命令传送到具体的3D block或者CS block执行,3D block或者CS block执行完command后,需要发送执行完毕信号给CP的Sync/Wait模块,最终把这些信息传送到driver。

      下面我参考网上的资料,并按照自己的理解,简单画了一个command processor的示意图:

image

 

posted on   迈克老狼2012  阅读(3300)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程

导航

< 2012年3月 >
26 27 28 29 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
1 2 3 4 5 6 7
点击右上角即可分享
微信分享提示