DirectX11 Efficient Buffer Management
未だに参照するけどスライド探すのに時間かかってしまうのでメモ http://gamedevs.org/uploads/efficient-buffer-management.pdf
これは知っとけ的な
- API呼び出しは可能な限り減らす
- 16バイトアライメントする(最大30倍速度差が出る)
- D3D11Deviceはmutexを使うが、各DeviceContextは一度に1スレッドからしか呼び出せない
- UpdateSubresourceはCPU時間を食う。できればMap/Unmapを使う
- CPU-GPU間のSyncPointをなるべく減らす
各バッファの使い分け
Type | Usage (e.g) | Create Flag | Update Method |
---|---|---|---|
Forever | Level BSPs | IMMUTABLE | Cannot Update |
Long-Lived | Characters | DEFAULT | UpdateSubResource |
Transient | UI/Text | DYNAMIC | CTransientBuffer |
Temporary | Particles | DYNAMIC | Map/NO_OVERWRITE |
Constant | Material Props | DYNAMIC | Map/DISCARD |
Efficient Buffer Managementっつうタイトルが出てこないんですわ