レイトレーシングを描画していたら何故かGDI描画だけがFPSが遅くなる影響あったので、レースコンディションが発生してるのか確認するため排他制御をかけて処理してみた。結論から言うとまったく関係なかった。
ソースコード・コンパイラ・IDEについては同じものを利用しているため、あとは最終的な描画方法に起因する速度の違いかなと考えた。そうなると残念だがレイトレについてはGDIだと遅いよ、というほかない・・・
ちなみにもう1個スレッド立ててDraw関数をぶん回してみたところ、ティアリングに近い挙動が発生したのでこれは無理だと思った。
具体的にはメイン・ウィンドウ・Draw関数スレッドを立てたけど、ウィンドウの更新が中途半端になる等これは無理だと結論づけるレベルだった。
GDI描画の場合、Draw関数(実際に仮想スクリーンに描画する関数)→BitBltを1スレッドで行っているため、ここで他ライブラリよりCPU負荷が大きいのが原因かな?と結論付けた。