多线程渲染

https://msdn.microsoft.com/zh-cn/communitydocs/game-development/directx-12-white-paper/ta15073006

这个链接失效了  http://gad.qq.com/common/getfile?fileurl=server1/20150831/phpBn94r5.1441015741.pdf%7C%7C%7CDX12+WhitePaper_v2.pdf&did=1166

记住关键词

 https://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Samples/Desktop/D3D12Multithreading

nvn和dx12 vulkan

commandlist 和 command queue

===================

这里有个dx12多线程渲染的坑 许久未填,今日填之

每个线程有自己的command list 收集好了之后用queue提交这个command list

https://developer.nvidia.com/sites/default/files/akamai/gameworks/blog/munich/mschott_vulkan_multi_threading.pdf

http://www.diva-portal.org/smash/get/diva2:1037368/FULLTEXT01.pdf

今天填 

那天并没有填

多线程渲染 是cpu的多线程 gpu 对多线程渲染的支持是指  

一些资源的同步机制 能多线程提交资源 

queue可以接受多线程提交的资源 是指 一个线程往同一个queue上加不同线程写入的cmds

每个thread有自己的cmd 每个cmd不能多线程写

queue cmd这些资源 是支持多线程的api才有的 

这些api还提供 同步机制 包含

fence(gpu-cpu)

barrier(cmd内部)

event(cmd之间)

smephores(quequ之间)

cpu这边这些线程的coordinate要自己做 每个pass wait一次开起来的线程

比如thread0 通知三个线程画shadow 再等他们画完 这里wait  到了之后 excute 再通知三个线程开始画场景 再wait画完  再excute 就是queue把cmd kick到gpu执行

用memory换cpu执行时间

原文地址:https://www.cnblogs.com/minggoddess/p/8549133.html