トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   とにかくFLASH【FLASHに関して全般】
     FP10のGPU支援機能の有無について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
oddness
Åê¹ÆNo.41605
投稿日時: 2009-3-2 15:09
新米
居住地:
投稿: 4
使用環境:
WinXP,Flash CS3,Flex Builder3
FP10のGPU支援機能の有無について
お世話になります

Flash Player10の売り文句の一つであった
「GPU支援機能」ですが、
機能が盛り込まれることが発表された時こそ
「Flashの描画の遅さから解放?」みたいに話題になりましたが、
いざFlash Player10がリリースされると
まttttったくと言っていいほど話題にも上りません。
果たしてこいつは機能しているのでしょうか?

やっと見つけたこの機能を使っていると思われる下記サイトでは
http://slideshowpro.net/examples/
「wmode: "gpu",」を使用していますが、
これを外してもGPU使用率が7%から14%ぐらいに変わったかな、
ぐらいの変化でした。CPU使用率はほとんど変わらず。
ちなみに自分のマシンはRadeonのHD3650です。

GPU支援機能が有効なのかどうか、
将来的にどうなるのか、はたまた無かったことになるのか、
この辺り詳しい方おられますでしょうか?
961832p
Åê¹ÆNo.41833
投稿日時: 2009-3-19 21:01
常連
居住地: Akiruno-shi
投稿: 155
使用環境:
 
:AS3:
- Adobe Flex SDK, Eclipse, AIR GEAR
- LB.Log AS3, Alcon2

:AS2:
- AMES(ASDT, MTASC, Eclipse, swfmill)
- Natural Entry Point Method
- LB.Log, Zeroi

Pro, Firefox, Chromium(Iron), IE

----------------
Pro,
Re: FP10のGPU支援機能の有無について
 
自分も気になったので、Flexで支援機能が有効になるかわかりませんでしたが試してみました。

最近、古いデータを整理していたら、VisualCとDirectDrawで書いた3Dプログラムが発掘されたので、これをAS3へ置き換えてみようとあーだこーだしていたのでした。
なんとか置き換えできたものの、描画は全部setPixel関数、Zバッファ処理も横着してsetPixel関数でやっているので(汗)、コードの酷さとも相まって処理の重さはピカイチです(苦笑)。
 ・スクリーンショットソースファイル(ZIP形式)

処理が重いのは丁度よかったので、wmodeの違いによって速度が変化するのか、新旧2台のマシンで計測してみることに(計測の詳細は下にあります)。
その結果ですが、自分の環境では追加されたモードでのフレームレートはリフレッシュレート以下になるのを確認できましたが、他に変化は見られませんでした。

[テストページ]
 FlashPlayer10以上が必要です。
 描画処理が「なし」以外は、CPU使用率が常に100%となる可能性があるのでご注意ください。
  ・wmode= windowtransparentopaquedirectgpu

いくつか、計測されているかたのサイトを見ると、OSやブラウザ、使用しているクラスによっても結果が違ってくるようです。
 ・michaeljbowen.com ≫ Flash 10 Speed Test: copyPixel vs. Scrolling Sprite vs. Scrolling MovieClip
 ・Adobe AIRは高速だった! Flashを最速で再生できる方法を検証 | ClockMaker Blog

この機能はまだ始まったばかりですし、無くなったりはしないと思いますが、どういう組み合わせの時に効果があるのか細かい情報があるといいですね。

----------------

HTMLから指定する以外にも、SWFファイルに機能の有無を指定できるようなので、支援機能ありのプロジェクタ、支援機能なしのプロジェクタ、と複数収録してディスクでの配布というのもいいなと思いました。

調べている過程で、SWFファイルに指定してある支援機能の有無を手軽にチェックできる SWFExplorerパッケージ がありました。
 ・Detect hardware acceleration at runtime in Flash Player 10 standalone [ by Thibault Imbert ] < ByteArray.org

SWFファイルへの指定は、Adobe Flash CS4 等だと書き出し時に選択できるようですが、Flexでのやり方がわからず、おまけで計測したプロジェクタは支援機能なしの結果です。AdobeのサイトやSWFExplorerのソースを見ると、拡張ヘッダにあるフラグを変更すればいいみたいなのですが。
 ・"swfFlagsUseAcceleratedBlit" "swfFlagsUseHardwareGPU" - Google Search

----------------

以降は計測の詳細です。

FlexSDK3.3.0.4852 で作成。MXMLCのオプションには -target-player=10.0.0 と -default-frame-rate=255 を追加しました。
環境によって違うかもしれませんが、MXMLCへ渡せるフレームレートは255が最大でした(それ以降はマスクされる)。

プロジェクタの書き出しには flashplayer_10_sa_debug.exe(10.0.22.87) を使用しました。

[共通]
 OS: WinXP Pro SP3, DirectX:9.0c
 Webブラウザ: Firefox3.0.7 + FlashPlayer10.0.22.87

[マシン1]
 CPU:Pentium4 2.40GHz, Memory:DDR 1.5GB
 Video:GeForce4 Ti 4200 with AGP8X (Driver 6.14.10.9371)

[マシン2]
 CPU:Core2 Quad Q9550 2.83GHz, Memory:DDR3 2GB
 Video:GeForce 9600 GT (Driver 6.14.11.8048)

下記表のフレームレートの値は、起動から約1秒ごと計60回のフレームレートを計測して、後半30回の平均(小数点第3位以下を四捨五入)をとりました。

マシン1でのFPS計測結果

描画処理: Aなし、Bワイヤーフレーム、Cフラットシェーディング

 wmode/描画処理|  A  |  B  |  C  
 ---------------+------+------+------
 window         |253.27| 54.72|  4.33
 transparent    |253.17| 32.21|  3.89
 opaque         |253.78| 40.85|  3.96
 direct         |253.82| 35.16|  2.69
 gpu            |253.69| 54.16|  4.28
 ---------------+------+------+------
 プロジェクタ   |254.13| 43.47|  2.64

CPU使用率(タスクマネージャ): 描画処理A以外は常にほぼ100%

マシン2でのFPS計測結果

描画処理: Aなし、Bワイヤーフレーム、Cフラットシェーディング

 wmode/描画処理|  A  |  B  |  C  
 ---------------+------+------+------
 window         |255.00|136.17| 10.31
 transparent    |255.00|119.47| 10.13
 opaque         |255.00|128.22| 10.26
 direct         |255.00| 59.93|  9.76
 gpu            |255.00| 60.00|  9.84
 ---------------+------+------+------
 プロジェクタ   |255.00|100.09|  6.12

CPU使用率(タスクマネージャ): 描画処理A以外は常にほぼ25%(コア1個分?)


----------------
:961832p:
- だんだんAS3に慣れてきた“なんちゃって”AMES使いの日曜プログラマー

oddness
Åê¹ÆNo.41837
投稿日時: 2009-3-19 23:26
新米
居住地:
投稿: 4
使用環境:
WinXP,Flash CS3,Flex Builder3
Re: FP10のGPU支援機能の有無について
961832p様、返信ありがとうございます!

非常に興味深い参考文献と、ご自身自ら試された検証、拝見させていただきました。
中々GPU支援機能に言及している方を見つけられなかったので、嬉しい限りです。

結論は、場合によっては早くなりうるが、
大抵の場合は不安定で確実に早くなる環境も特定できないので、
プレゼンなどでFlashプレイヤーの再生環境が固定されていて、
かつGPU支援機能を使うと表示速度が上がる等
本当に特別な時以外は使わない方が良いみたいですね。

kamijoさんも(結構前にですが)言っていたように、今後の改良に期待ですね。

大変ためになりました!
ありがとうございました
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops