フォト

Google AdSense

  • AdSense
無料ブログはココログ

« 書籍:Game Engine Gems 3 | トップページ | 微妙なバグを直せば »

2016.01.21

ID3D12GraphicsCommandList::SetDescriptorHeapsの注意メモ

ID3D12GraphicsCommandList::SetDescriptorHeapsって's'がつくだけあって複数のID3D12DescriptorHeap を一括でセットできるけど、その時の注意点として同じタイプのDescriptorHeapは複数セットできないのね。

ID3D12GraphicsCommandList::SetDescriptorHeaps
https://msdn.microsoft.com/ja-jp/library/windows/desktop/dn903908(v=vs.85).aspx

下記のスレッドでエラーが出た人の話が出てるけど、たとえば、Draw単位で変更するSRVと一つのPaipelineState単位でセットするCBVを異なるHeapで管理しようとして、別々に作って配列セットしようとするようなケースはダメなのね。

http://www.gamedev.net/topic/671078-using-multiple-descriptor-heaps-of-the-same-type-srv-cbv-uav-with-setdescriptorheaps-possible/

じゃあ、複数セットする意味ないじゃんという気もするんですが、本来は

CBV, SRV, UAVとSampler

みたいな感じでSamplerとそのほかを一括セットって感じなのね。MiniEngineのソース見てるとこのほかにRTV(Render Target View)やDSV( Depth Stencil View )なんかのHeapは一緒にセットできるということだそうで。

そんなけで、DescriptorHeapに関してはわりと高度な管理処理書かないとなぁ。

« 書籍:Game Engine Gems 3 | トップページ | 微妙なバグを直せば »

Programming」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« 書籍:Game Engine Gems 3 | トップページ | 微妙なバグを直せば »