176の実装だとマルチに動いていない気がする。
クリティカルセクションは、一つのスレッドが入ったら、離れるまでは他のスレッドが待たされる。
つまり並列に実行していない。
真面目に並列度を高めるならば、テクスチャ毎に排他オブジェクトを持たせて、読み込みが完了していないテクスチャを描画ループのスレッドが触ろうとしたら、そいつをまるごとスキップして描画を続けるとかするべきかも。
ジオメトリなんかの単位でアセットを管理しているならば、読み込み完了前のジオメトリに紐付くテクスチャや頂点は描画をスキップする実装。
あとはオフラインサーフェースへの書き込みなんかの単位でまるごとスキップとかもできるかも。
チラツキを予防して、読み込み終わったアセットを段階的に画面に映したいなら、そういったリソース管理が必要。
でも大抵は、そんなことせず、読み込みが全部終わるまでは黒い画面を見せる実装を選ぶと思う。
GPUコアの限界までテクスチャなんかの読み込みスレッドを並列化することを選びそう。
探検
【C++】 DirectX初心者質問スレ Part41 【C】
■ このスレッドは過去ログ倉庫に格納されています
180デフォルトの名無しさん
2018/09/28(金) 17:38:36.81ID:TYfa5akj■ このスレッドは過去ログ倉庫に格納されています
