読者です 読者をやめる 読者になる 読者になる

マルチスレッド云々

プレス発注完了したっぽいので、後は納品を待つのみ。


要望があった回転ボタン両押しでx/y軸に方向を合わせるのを実装。現在はコミケまでに対処しきれなかった問題、複数スレッドが同一コアに割り当てられてしまう現象を緩和するようにしているところ。
スレッドを特定コア/CPUに割り当てるには、SetThreadAffinityMask()とかSetThreadIdealProcessor()とかを使うらしい。とりあえず簡単そうなSetThreadIdealProcessor()を使用。GetSystemInfo()でCPUの数調べて順に割り振っていくだけ。
SetThreadIdealProcessor()にはスレッドのHANDLEが必要なんだけど、SDLのスレッド関連APIにはHANDLEを得る機能はないため、SDL_Threadの構造を自プログラムにコピペして強引に引っ張ってくるという美しくない手順を踏むことになってしまった。

一応ちゃんと全コア回ってるっぽいけど、OBJ3000とかを超えると描画と同期更新がボトルネックになってきて効果薄になる。効果的な並列化はこれから先当分技術的課題として付きまといそう。
あと破片倍率9.0の真のfutureモードを半分ネタで実装。多分2,3年くらい未来の最新マシンで処理落ちなくお楽しみいただけるんじゃないかと思います。


エーテルヴェイパーの6面レーザー縄跳びボスがなんか猛烈に気に入った。Ysにでも出てきそうな。