Skip to content
Go back

Vulkan実践メモ

· Updated:

まず考えること

利益を得られるシナリオ

利益を得られにくいシナリオ

概要

マルチスレッディング

コマンドバッファ

パイプライン

パイプラインレイアウト

レンダパス

同期プリミティブ

メモリバリア

実践

CommandBuffer

DescriptorSet

  • 別々のDescriptorSetに並列に更新する場合、それぞれのDescriptorSetは異なるDescriptorPool由来のものを使う。[Daniell 2015Daniell, P. 2015. Vulkan on NVIDIA GPUs. ACM SIGGRAPH. https://www.youtube.com/watch?v=NqensKmmRfE.]

Render pass

CommandPool

  • CommandPoolはフレーム数xスレッド数をひとまとまりとして、バッファリング分を余分に用意する。CommandPoolは割り当てたCommandBufferが使い終わったあとならリセットして再利用できる。[Schott and Bishop 2016Schott, M. and Bishop, L. M. 2016. High-performance, Low-Overhead Rendering with OpenGL and Vulkan. Game Developers Conference. https://developer.download.nvidia.com/gameworks/events/GDC2016/mschott_lbishop_gl_vulkan.pdf.]

DescriptorPool

同期プリミティブ

用語

  • 引っ掛かり(hitching):
    • 極めて短時間にのみFPSが低下する現象。
    • マシンの性能不足ではなく、プログラムによる一時的な処理負荷の増加が原因。
    • カクつき(stutter)とともにプレイヤーに不快感を与える一因となる。
    • 参考:https://forest.watch.impress.co.jp/docs/news/1049869.html