opengl:glesemulator
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
opengl:glesemulator [2015/01/25 23:59] – [OpenGL ES 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.1422197965.txt.gz · 最終更新: 2015/01/25 23:59 by oga