会持续更新
pix
- pix工具dx12专享,给力多了,但是有时候会有莫名的问题,需要重启
- 内部timeline的各种分析会带来gpu内部的大量的实现细节,非常的好,看看是非常有帮助的
debug layer
- debug layer很给力,但要注意在各种profile/capture(pix/nsight…)等工具中关掉debug layer,否则会出现各种奇怪问题
- -比如在pix中timing抓取中,所有的event名字丢失,看了半天,原来是debug layer没关,囧
debug control panel
- 遭遇不能实际起作用的情况,这个需要把代码solution的路径加到control panel的路径里,不止是exe(这个比较崩溃)
performance
- CreateCommittedResource 这个函数测出来性能消耗非常巨大,中间instancing使用了这个方式来创建资源,直接帧数砍半,shit!!!
dxgi真全屏
真全屏在dx12(其实是较新版本的dxgi)下实现会变得比较复杂。
msg queue信息
真全屏下Tab-alt出去的时候,SwapChain->Present会发一个msg,这时候windows至少能接收到一个WM_STYLECHANGING的事件。
这时候如果是多线程,那么要保证msg queue的线程一直有在跑,能接收和返回,否则会在present中死锁,如果发现在present中死锁了,那么可以看这个问题。
接到WM_STYLECHANGING事件之后切换到windowed模式,做好resize buffer。