2009/11/03
■ [SDL]ビデオメモリ上にサーフェスが展開できない…と思いきや
(※同日修正)
バディアシムシェ製作上で発生した問題。当初は自分のコードかRuby/SDL上での問題かと思いきや、SDLライブラリ上でどうも問題が発生している模様。
まず、自機のノートThinkPad x31でSDL::Screen.infoを出力した結果がこれ
<SDL::VideoInfo:0x2f4eba4 @blit_sw_CC=false, @blit_hw_A=false, @blit_hw=false, @hw_available=false, @video_mem=0, @blit_sw_A=false, @blit_sw=false, @blit_hw_CC =false, @wm_available=true, @bpp=32, @blit_fill=false>
アクセラレーション関係全滅。 次に以前作ったVisualC++ & SDLでの簡単なアクションゲーム上でSDL_GetVideoInfo();をのぞくと
hw_available 0 unsigned int wm_available 1 unsigned int UnusedBits1 0 unsigned int UnusedBits2 0 unsigned int blit_hw 0 unsigned int blit_hw_CC 0 unsigned int blit_hw_A 0 unsigned int blit_sw 0 unsigned int blit_sw_CC 0 unsigned int blit_sw_A 0 unsigned int blit_fill 0 unsigned int UnusedBits3 0 unsigned int video_mem 0 unsigned int
やはりアクセラレーションが全部効かない。
とどめにSDLのサンプル、testsprite.cでは各種モードでの描画処理やそのFPSを計測できるがその結果
・通常
Screen is at 8 bits per pixel Screen is in system memory Sprite is in system memory Sprite blit uses RLE acceleration 230.12 frames per second
・ハードウェアサーフェス
Screen is at 8 bits per pixel Screen is in system memory Sprite is in system memory Sprite blit uses RLE acceleration 234.64 frames per second
・フルスクリーン
Screen is at 8 bits per pixel Screen is in system memory Sprite is in system memory Sprite blit uses RLE acceleration 394.23 frames per second
・ハードウェアサーフェス&フルスクリーン
Screen is at 8 bits per pixel Screen is in system memory Sprite is in system memory Sprite blit uses RLE acceleration 519.70 frames per second
いずれもシステムメモリ上でビデオメモリにスクリーンを設置できていない。自分のデスクトップではまだ試してないがSDL::Screen.infoは少なくとも同様の結果を出している、ノートは16MB、デスクトップには256MBビデオメモリがあるのに0ってなんやねん。これは参った。
と思って調べたら、こんなん出てきた
49 :名前は開発中のものです。:2006/05/22(月) 12:33:49 ID:d1rlamFe >>48 環境変数 SDL_VIDEODRIVER や SDL_AUDIODRIVER で切り替え可能. そういえばSDL-1.2.10からwin32環境のデフォルトのビデオドライバが directx から windib に変更になったらしいね。 ttp://zinnia.dyndns.org/~hiki/SDLKB/?%B4%C4%B6%AD%CA%D1%BF%F4SDL_VIDEODRIVER ttp://zinnia.dyndns.org/~hiki/SDLKB/?%B4%C4%B6%AD%CA%D1%BF%F4
……………
あ…ありのまま今起こった事を話すぜ!
『おれはSDLでDirectXを使っていたと思ったらいつのまにかwindibを使っていた…』 な…何を言ってるのかわからねーと思うがおれも何をされたのかわからなかった…
頭がどうにかなりそうだった… 仕様変更とかそんなチャチなもんじゃあ断じてねえ もっと恐ろしいものの片鱗を味わったぜ…