opengl:glesemulator
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| opengl:glesemulator [2015/01/25 23:59] – [OpenGL 4.5 以上の ES31 Compatibility (GL_ARB_ES3_1_compatibility)] oga | opengl: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 |
| 逆に GPU に無い機能は disable されているため、他の OpenGL ES 環境よりも使える機能に制限がかかることがあります。 | 逆に GPU に無い機能は disable されているため、他の OpenGL ES 環境よりも使える機能に制限がかかることがあります。 | ||
| 行 52: | 行 52: | ||
| HOST PC 側のビデオカード (GPU) の影響を受けるため、必ずしもどの環境でも安定して動作するとは限りません。 | HOST PC 側のビデオカード (GPU) の影響を受けるため、必ずしもどの環境でも安定して動作するとは限りません。 | ||
| GPU の種類だけでなくドライバのバージョンによって相性問題が生じるので、安定動作を望むならある程度の試行錯誤が必要です。 | GPU の種類だけでなくドライバのバージョンによって相性問題が生じるので、安定動作を望むならある程度の試行錯誤が必要です。 | ||
| + | すべての Emulator が安定して動く環境を探すのは意外に困難です。 | ||
| 開発用なので、アプリケーションにそのまま組み込んで利用することはできません。 | 開発用なので、アプリケーションにそのまま組み込んで利用することはできません。 | ||
| - | |||
| - | |||
| 行 84: | 行 83: | ||
| - | ====== Angle Project ====== | ||
| - | Windows | + | ====== OpenGL |
| - | OpenGL のドライバがなくても動作できることが特徴となります。 | + | |
| - | * [[https:// | + | * GL_ARB_ES2_compatibility |
| + | * GL_ARB_ES3_compatibility | ||
| + | * GL_ARB_ES3_1_compatibility | ||
| - | 例えば 旧 Atom の Z シリーズ (GMA500~ PowerVR SGX 搭載) | + | OpenGL 4.x には 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 が存在していない可能性があります。 | ||
| + | ^ GPU ^ OpenGL API ^ ES2 Compatibility | ||
| + | | GeForce | ||
| + | | RADEON | ||
| + | | Intel HD Graphics | ||
| + | * Context = EXT_create_context_es2_profile 等 | ||
| + | EGL ではなく WGL や GLX 等の Native API を使いますがそれ以外の API は共通です。 | ||
| + | 安定して動くので、Mobile との共通アプリケーションを走らせる場合に有効です。 | ||
| - | build 手順 (VisualStudio 2010~) | ||
| - | - git でソースを clone | ||
| - | - projects/ | ||
| - | - build | ||
| - | そのままだと D3D9 ベースの 32bit 版が作られます。 | ||
| - | 64bit ライブラリを build するには下記の手順が必要です。(2014/ | ||
| - | |||
| - | - Configuration Manager で platform に x64 を追加する。(win32 を元にして新規に作る) | ||
| - | - libEGL / libGLESv2 の Property を開く | ||
| - | - x64 の Linker → General → Additional Library Directories を開く | ||
| - | - path を「~/ | ||
| - | |||
| - | Direct3D 11 を有効にするにはソース内の define を変更します。 | ||
| - | |||
| - | * src/ | ||
| - | |||
| - | この場合 HOST PC が D3D11 対応の場合は D3D11 を利用し、対応していない場合は D3D9 が用いられます。 | ||
| - | |||
| - | ↓Direct3D 9 で走らせた場合 | ||
| - | |||
| - | < | ||
| - | GL_VERSION: OpenGL ES 2.0 (ANGLE 1.3.d70707b435ef) | ||
| - | GL_RENDERER: | ||
| - | GL_VENDOR: Google Inc. | ||
| - | GL_SHADING_LANGUAGE_VERSION: | ||
| - | </ | ||
| - | |||
| - | ↓Direct3D 11 の場合 | ||
| - | |||
| - | < | ||
| - | GL_VERSION: OpenGL ES 2.0 (ANGLE 1.3.d70707b435ef) | ||
| - | GL_RENDERER: | ||
| - | GL_VENDOR: Google Inc. | ||
| - | GL_SHADING_LANGUAGE_VERSION: | ||
| - | </ | ||
| - | |||
| - | |||
| - | Direct3D 11 で動作可能になったことで、現在 OpenGL ES 3.0 への対応も進められているようです。 | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ====== Mesa 3D ====== | ||
| - | |||
| - | Ubuntu の場合の install 方法 | ||
| - | |||
| - | < | ||
| - | $ sudo apt-get install libgl1-mesa-dev libgles2-mesa-dev mesa-utils-extra | ||
| - | </ | ||
| - | |||
| - | OpenGL ES 2.0 / 3.0 API を利用できます。 | ||
| - | ES 3.0 が使えるかどうかは HOST GPU/ | ||
| - | 対応しているバージョンを調べるには、mesa-utils-extra に含まれている es2_info コマンドを使います。 | ||
| - | ただし llvmpipe はソフトウエアレンダラ。 | ||
| - | |||
| - | < | ||
| - | // Ubuntu 14.04 : VMware Player | ||
| - | EGL_CLIENT_APIS: | ||
| - | GL_VERSION: OpenGL ES 2.0 Mesa 10.1.0 | ||
| - | GL_RENDERER: | ||
| - | |||
| - | // Ubuntu 14.04 : RADEON HD 6750M | ||
| - | EGL_CLIENT_APIS: | ||
| - | GL_VERSION: OpenGL ES 3.0 Mesa 10.1.0 | ||
| - | GL_RENDERER: | ||
| - | |||
| - | // Ubuntu 14.04 : Intel HD 4000 | ||
| - | EGL_CLIENT_APIS: | ||
| - | GL_VERSION: OpenGL ES 3.0 Mesa 10.1.0 | ||
| - | GL_RENDERER: | ||
| - | GL_EXTENSIONS: | ||
| - | </ | ||
| - | |||
| - | es2_info コマンドは | ||
| - | Nexus 7 (2012) 上の Ubuntu 13.04 desktop など、ARM ベースの Linux 上でも使えます。 | ||
| - | |||
| - | ライブラリは libEGL / libGLESv2 をリンクします。 | ||
| - | |||
| - | < | ||
| - | FLB_LIBFLAGS= -lm -lEGL -lGLESv2 -lX11 | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | ====== OpenGL ES Compatibility ====== | ||
| ===== OpenGL 4.5 以上の ES31 Compatibility (GL_ARB_ES3_1_compatibility) ===== | ===== OpenGL 4.5 以上の ES31 Compatibility (GL_ARB_ES3_1_compatibility) ===== | ||
| 行 245: | 行 160: | ||
| </ | </ | ||
| - | 2015/01/02 現在対応しているのは | + | * 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 を返します。 | + | |
| - | 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/ | ||
| 行 337: | 行 249: | ||
| - | ===== RADEON OpenGL ES 2.0 API ===== | + | ====== Angle Project ====== |
| + | |||
| + | Windows の Direct3D 9/11 上に OpenGL ES 2.0 を実装したライブラリです。 | ||
| + | OpenGL のドライバがなくても動作できることが特徴となります。 | ||
| + | |||
| + | * [[https:// | ||
| + | |||
| + | 例えば 旧 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/ | ||
| + | - build | ||
| + | |||
| + | そのままだと D3D9 ベースの 32bit 版が作られます。 | ||
| + | 64bit ライブラリを build するには下記の手順が必要です。(2014/ | ||
| + | |||
| + | - Configuration Manager で platform に x64 を追加する。(win32 を元にして新規に作る) | ||
| + | - libEGL / libGLESv2 の Property を開く | ||
| + | - x64 の Linker → General → Additional Library Directories を開く | ||
| + | - path を「~/ | ||
| + | |||
| + | Direct3D 11 を有効にするにはソース内の define を変更します。 | ||
| + | |||
| + | * src/ | ||
| + | |||
| + | この場合 HOST PC が D3D11 対応の場合は D3D11 を利用し、対応していない場合は D3D9 が用いられます。 | ||
| + | |||
| + | ↓Direct3D 9 で走らせた場合 | ||
| + | |||
| + | < | ||
| + | GL_VERSION: OpenGL ES 2.0 (ANGLE 1.3.d70707b435ef) | ||
| + | GL_RENDERER: | ||
| + | GL_VENDOR: Google Inc. | ||
| + | GL_SHADING_LANGUAGE_VERSION: | ||
| + | </ | ||
| + | |||
| + | ↓Direct3D 11 の場合 | ||
| + | |||
| + | < | ||
| + | GL_VERSION: OpenGL ES 2.0 (ANGLE 1.3.d70707b435ef) | ||
| + | GL_RENDERER: | ||
| + | GL_VENDOR: Google Inc. | ||
| + | GL_SHADING_LANGUAGE_VERSION: | ||
| + | </ | ||
| + | |||
| + | |||
| + | Direct3D 11 で動作可能になったことで、現在 OpenGL ES 3.0 への対応も進められているようです。 | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ====== Mesa 3D ====== | ||
| + | |||
| + | Ubuntu の場合の install 方法 | ||
| + | |||
| + | < | ||
| + | $ sudo apt-get install libgl1-mesa-dev libgles2-mesa-dev mesa-utils-extra | ||
| + | </ | ||
| + | |||
| + | OpenGL ES 2.0 / 3.0 API を利用できます。 | ||
| + | ES 3.0 が使えるかどうかは HOST GPU/ | ||
| + | 対応しているバージョンを調べるには、mesa-utils-extra に含まれている es2_info コマンドを使います。 | ||
| + | ただし llvmpipe はソフトウエアレンダラ。 | ||
| + | |||
| + | < | ||
| + | // Ubuntu 14.04 : VMware Player | ||
| + | EGL_CLIENT_APIS: | ||
| + | GL_VERSION: OpenGL ES 2.0 Mesa 10.1.0 | ||
| + | GL_RENDERER: | ||
| + | |||
| + | // Ubuntu 14.04 : RADEON HD 6750M | ||
| + | EGL_CLIENT_APIS: | ||
| + | GL_VERSION: OpenGL ES 3.0 Mesa 10.1.0 | ||
| + | GL_RENDERER: | ||
| + | |||
| + | // Ubuntu 14.04 : Intel HD 4000 | ||
| + | EGL_CLIENT_APIS: | ||
| + | GL_VERSION: OpenGL ES 3.0 Mesa 10.1.0 | ||
| + | GL_RENDERER: | ||
| + | GL_EXTENSIONS: | ||
| + | </ | ||
| + | |||
| + | es2_info コマンドは | ||
| + | Nexus 7 (2012) 上の Ubuntu 13.04 desktop など、ARM ベースの Linux 上でも使えます。 | ||
| + | |||
| + | ライブラリは libEGL / libGLESv2 をリンクします。 | ||
| + | |||
| + | < | ||
| + | FLB_LIBFLAGS= -lm -lEGL -lGLESv2 -lX11 | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ====== RADEON OpenGL ES 2.0 API ====== | ||
| RADEON のドライバに含まれる Native OpenGL ES 2.0 API です。 | RADEON のドライバに含まれる Native OpenGL ES 2.0 API です。 | ||
opengl/glesemulator.1422197945.txt.gz · 最終更新: by oga
