LuaJITがDirectXとともに使うと問答無用で落ちる

前々から凄い意味が分からなかったんですが、コンソールでエラー内容を見れるようにしてようやく分かりました。DirectX側でFPUの演算速度が落とされていたからだそうです。

空想具現化プログラミング [Lua] Luaの数値型の精度の問題

ここによると、FPUの演算速度がDirectXなどによって落とされた場合、演算精度がfloatなみに落ちるとあります。

実際にLuaJITをDxLibを初期化した状態で実行すると、「PANIC: unprotected error in call to Lua API(bad FPU precision (use D3DCREATE_FPU_PRESERVE with DirectX))」なるエラー出力が。
いわれたとおりなので、Direct3Dデバイスを初期化する際にD3DCREATE_FPU_PRESERVEフラグを渡して精度を下げさせないようにします。

DxLibの場合、SetUserFPUPreserveFlag(TRUE); をDxLib_init()の前に呼び出すだけです。

// DxLib で Direct3D デバイスを作成する際に
// D3DCREATE_FPU_PRESERVEフラグを渡すようにする
::SetUseFPUPreserveFlag(TRUE);
::DxLib_Init();

// 後は通常通りLuaJITを初期化したり
...

案外簡単でしたね。
デバッグ時にはやはりコンソールが必要だと思います。