ユーザ用ツール

サイト用ツール


opengl:glesemulator

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
opengl:glesemulator [2015/01/26 00:11] – [Angle Project] ogaopengl:glesemulator [2015/06/24 16:18] (現在) – [OpenGL の GL ES Compatibility] oga
行 45: 行 45:
 対象の GPU 機能を再現することが目的です。 対象の GPU 機能を再現することが目的です。
 そのため対象ハード相当の機能が再現されており、PVRTC や ATITC など固有の専用テクスチャも読み込める点が特徴です。 そのため対象ハード相当の機能が再現されており、PVRTC や ATITC など固有の専用テクスチャも読み込める点が特徴です。
-例えば ASTC 対応 GPU はまだ入手きる状態にありませんが、Mali の Emulator を使えば ASTC をロードすることができま+例えば ASTC 対応 GPU がなかった時代も Emulator 上では ASTC を使することができました
  
 逆に GPU に無い機能は disable されているため、他の OpenGL ES 環境よりも使える機能に制限がかかることがあります。 逆に GPU に無い機能は disable されているため、他の OpenGL ES 環境よりも使える機能に制限がかかることがあります。
行 52: 行 52:
 HOST PC 側のビデオカード (GPU) の影響を受けるため、必ずしもどの環境でも安定して動作するとは限りません。 HOST PC 側のビデオカード (GPU) の影響を受けるため、必ずしもどの環境でも安定して動作するとは限りません。
 GPU の種類だけでなくドライバのバージョンによって相性問題が生じるので、安定動作を望むならある程度の試行錯誤が必要です。 GPU の種類だけでなくドライバのバージョンによって相性問題が生じるので、安定動作を望むならある程度の試行錯誤が必要です。
 +すべての Emulator が安定して動く環境を探すのは意外に困難です。
  
 開発用なので、アプリケーションにそのまま組み込んで利用することはできません。 開発用なので、アプリケーションにそのまま組み込んで利用することはできません。
- 
- 
  
  
行 97: 行 96:
 ^ GPU                 ^ OpenGL API       ^ ES2 Compatibility  ^ ES3 Compatibility  ^ ES3_1 Compatibility   ^ ES3_1 AEP          ^ GPU                 ^ ^ GPU                 ^ OpenGL API       ^ ES2 Compatibility  ^ ES3 Compatibility  ^ ES3_1 Compatibility   ^ ES3_1 AEP          ^ GPU                 ^
 | GeForce             | OpenGL 4.5       | Y (Context)        | Y (Context)        | Y (Context)           | Y                  | GeForce 400~ Fermi, Kepler, Maxwell 等  | | GeForce             | OpenGL 4.5       | Y (Context)        | Y (Context)        | Y (Context)           | Y                  | GeForce 400~ Fermi, Kepler, Maxwell 等  |
-| RADEON              | OpenGL 4.      | Y                  | Y                  |                     | N                  | RADEON HD 5000~    | +| RADEON              | OpenGL 4.      | Y                  | Y                  |                     | N                  | RADEON HD 5000~    | 
-| Intel HD Graphics   | OpenGL 4.0~4.3  | Y (Context)        | Y (Context)        | N                     | N                  | Intel HD Graphics 2500/4000 ~  |+| Intel HD Graphics   | OpenGL 4.0~4.3  | Y (Context)        | Y (Context)        | Y (Context)           | N                  | Intel HD Graphics 2500/4000 ~  |
  
-  * Context = EXT_create_context_es2_profile+  * Context = EXT_create_context_es2_profile 
  
 EGL ではなく WGL や GLX 等の Native API を使いますがそれ以外の API は共通です。 EGL ではなく WGL や GLX 等の Native API を使いますがそれ以外の API は共通です。
 +安定して動くので、Mobile との共通アプリケーションを走らせる場合に有効です。
 +
  
  
行 159: 行 160:
 </code> </code>
  
-2015/01/02 現在対応しているのは GeForce だけすが、必ずしも上記のように VERSION 3.1 を指定する必要がないようです。 +  * 2015/02 GeForce で必ずしも上記のように VERSION 3.1 を指定する必要がないようです。Android 同様に ES 2.0 Context を作っても ES 3.1 Context を返します。OpenGL 4.5 以上であれば Linux でも OpenGL ES 3.1 を使用できます。 
-Android 同様に ES 2.0 Context を作っても ES 3.1 Context を返します。 +    また GeForce の場合は Android の Tegra K1 同様に、OpenGL ES 3.1 AEP (GL_ANDROID_extension_pack_es31a) に対応しています。
-OpenGL 4.5 以上であれば Linux でも OpenGL ES 3.1 を使用できます。 +
- +
-また GeForce の場合は Android の Tegra K1 同様に、OpenGL ES 3.1 AEP (GL_ANDROID_extension_pack_es31a) に対応しています。 +
  
 +  * 2015/06 Intel HD Graphics (Ivy Bridge/BayTrail 世代以上) でも新しいドライバでは ES 3.1 Context の生成が可能です。
  
  
行 246: 行 244:
  
 define symbol GL_ES が定義されているので、RADEON の方法よりも互換性が高いといえるでしょう。 define symbol GL_ES が定義されているので、RADEON の方法よりも互換性が高いといえるでしょう。
 +
 +
 +
 +
 +
 +====== Angle Project ======
 +
 +Windows の Direct3D 9/11 上に OpenGL ES 2.0 を実装したライブラリです。
 +OpenGL のドライバがなくても動作できることが特徴となります。
 +
 +  * [[https://code.google.com/p/angleproject/|ANGLE Project]]
 +
 +例えば 旧 Atom の Z シリーズ (GMA500~ PowerVR SGX 搭載) には OpenGL のドライバがありませんでした。
 +Angle Project のライブラリを用いることで、OpenGL ES 2.0 用プログラムを実行できるようになります。
 +(VAIO type P , Windows 7 x86 で確認)
 +
 +使い方は前述の GPU Emulator と全く同じで、libEGL や libGLESv2 を使うだけです。
 +lib 名や呼び出し規約が同一なので、他の GPU Emulator と入れ替えて使用できます。
 +
 +**注意**: build 時に copy される d3dcompiler_46.dll も必要です。eglInitialize() が失敗する場合は d3dcompiler_46.dll が存在していない可能性があります。
 +
 +
 +
 +
 +build 手順 (VisualStudio 2010~)
 +
 +  - git でソースを clone
 +  - projects/src/angle.sln を開く
 +  - build
 +
 +そのままだと D3D9 ベースの 32bit 版が作られます。
 +64bit ライブラリを build するには下記の手順が必要です。(2014/04/18 VisualStudio 2013 で確認)
 +
 +  - Configuration Manager で platform に x64 を追加する。(win32 を元にして新規に作る)
 +  - libEGL / libGLESv2 の Property を開く
 +  - x64 の Linker → General → Additional Library Directories を開く
 +  - path を「~/Lib/win8/um/x86」から「~/Lib/win8/um/x64」に変更
 +
 +Direct3D 11 を有効にするにはソース内の define を変更します。
 +
 +  * src/libGLESv2/renderer/Renderer.cpp 内の ANGLE_ENABLE_D3D11 を 1 にする。
 +
 +この場合 HOST PC が D3D11 対応の場合は D3D11 を利用し、対応していない場合は D3D9 が用いられます。
 +
 +↓Direct3D 9 で走らせた場合
 +
 +<code>
 +GL_VERSION: OpenGL ES 2.0 (ANGLE 1.3.d70707b435ef)
 +GL_RENDERER: ANGLE (NVIDIA GeForce GTX 650 Direct3D9Ex vs_3_0 ps_3_0)
 +GL_VENDOR: Google Inc.
 +GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 1.00 (ANGLE 1.3.d70707b435ef)
 +</code>
 +
 +↓Direct3D 11 の場合
 +
 +<code>
 +GL_VERSION: OpenGL ES 2.0 (ANGLE 1.3.d70707b435ef)
 +GL_RENDERER: ANGLE (NVIDIA GeForce GTX 650 Direct3D11 vs_5_0 ps_5_0)
 +GL_VENDOR: Google Inc.
 +GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 1.00 (ANGLE 1.3.d70707b435ef)
 +</code>
 +
 +
 +Direct3D 11 で動作可能になったことで、現在 OpenGL ES 3.0 への対応も進められているようです。
 +
 +
 +
 +
 +
 +
 +
  
  
opengl/glesemulator.1422198695.txt.gz · 最終更新: 2015/01/26 00:11 by oga

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki