none
DirectXで作成されたプログラム(exe)は、同時に実行可能でしょうか。 RRS feed

  • 質問

  • DirectXを使用したプログラム(exe)は、Windows 7 Home premium 64bit上で多重実行可能でしょうか。例えば、DirectXで作成されたa.exe,b.exeをWindowsはうまく制御可能でしょうか。Win32APIの画面(c.exe)も多重実行可能でしょうか

    2014年8月13日 4:47

回答

  • 「DirectX」というのが何を指しているのかあいまいですが、とりあえずDirectX Graphics(Direct3D/Direct2Dなど)のことだと仮定して話を進めます。

    Windows XPまではもともとDirectX Graphicsはゲームなどのマルチメディアアプリケーションを単にアクセラレートする目的で作られたものだったので、複数のアプリケーションから使用されることは考慮されていませんでしたが、Windows Vista以降はDWMとGPU仮想化があるので複数のアプリケーションからのDirect3D/GDI経由のグラフィックスリソース要求にも対応できます。

    詳しくは下記などにまとまった記事があります。

    http://www.4gamer.net/specials/tooearlytogetvista/001/tooearlytogetvista_003.shtml

    もちろん、たとえばAAAタイトルの3Dゲームや、DirectComputeを使って演算を実行するGPGPUアプリケーションなど、非常に大量のグラフィックスリソースを使ってGPUに負荷をかける場合などは、別のアプリケーションの円滑な実行を阻害するようなことはありえます。過負荷がかかったとき、DWM環境下であればOSごと巻き込んで落ちることはめったにありませんが、ドライバー応答のタイムアウトにより特定のアプリケーションが強制終了させられることもありえます。

    もし「DirectX」というのが他のコンポーネント、例えばDirectX AudioやDirectInput/XInputなどを指しているのであれば、それはドライバー依存になると思われます。こちらは人に聞く前にまず自分で試してみるなりMSDNライブラリなどの文献をあさるなりドライバーのリリースノートを読むなりすればよいのではないでしょうか。

    • 回答の候補に設定 星 睦美 2014年8月18日 5:15
    • 回答としてマーク 星 睦美 2014年8月19日 6:09
    2014年8月13日 15:57

すべての返信

  • YES / NOで答えるのであれば YES です。例えばMedia PlayerやInternet Explorer、Microsoft OfficeもDirectXを使用して描画していますし、これらは普通に多重起動されています。質問文そのものについては当たり前のこと過ぎて、何か裏に本来聞きたかったことがあるのではと気になります。何を尋ねたかったのでしょうか?
    • 編集済み 佐祐理 2014年8月13日 5:02
    • 回答の候補に設定 星 睦美 2014年8月18日 5:15
    2014年8月13日 4:57
  • 「DirectX」というのが何を指しているのかあいまいですが、とりあえずDirectX Graphics(Direct3D/Direct2Dなど)のことだと仮定して話を進めます。

    Windows XPまではもともとDirectX Graphicsはゲームなどのマルチメディアアプリケーションを単にアクセラレートする目的で作られたものだったので、複数のアプリケーションから使用されることは考慮されていませんでしたが、Windows Vista以降はDWMとGPU仮想化があるので複数のアプリケーションからのDirect3D/GDI経由のグラフィックスリソース要求にも対応できます。

    詳しくは下記などにまとまった記事があります。

    http://www.4gamer.net/specials/tooearlytogetvista/001/tooearlytogetvista_003.shtml

    もちろん、たとえばAAAタイトルの3Dゲームや、DirectComputeを使って演算を実行するGPGPUアプリケーションなど、非常に大量のグラフィックスリソースを使ってGPUに負荷をかける場合などは、別のアプリケーションの円滑な実行を阻害するようなことはありえます。過負荷がかかったとき、DWM環境下であればOSごと巻き込んで落ちることはめったにありませんが、ドライバー応答のタイムアウトにより特定のアプリケーションが強制終了させられることもありえます。

    もし「DirectX」というのが他のコンポーネント、例えばDirectX AudioやDirectInput/XInputなどを指しているのであれば、それはドライバー依存になると思われます。こちらは人に聞く前にまず自分で試してみるなりMSDNライブラリなどの文献をあさるなりドライバーのリリースノートを読むなりすればよいのではないでしょうか。

    • 回答の候補に設定 星 睦美 2014年8月18日 5:15
    • 回答としてマーク 星 睦美 2014年8月19日 6:09
    2014年8月13日 15:57
  • 回答有難うございます。Windowsはマルチタスク処理しており、GDIプログラムを実行しグラフィックスを描画している事は分かっていたのですが、DirectX(Direct3D/Direct2D)はGDIを使用せずグラフィックボードの命令で描画しているイメージしか有りませんでした。その為、多重制御を行っていないで有ろうグラフィクスボードがWindowsの多重処理をうまく実行可能で有ろうかと思ったのですが、Windows Xまでは複数のアプリケーションから使用されることは考慮されていなかったのが、Windows Vista以降からは複数のアプリケーションからDirect3D/GDI経由のグラフィックス要求も可能に成ったと言う事で分かりました。アプリケーションの強制終了等の可能性も有るとの事、注意しないといけないなと思いました。

    2014年8月18日 13:35