2015/06/30
Autodesk Maya 2016 と sRGB
Maya 2016 では Color Space を指定する Attribute が変更されているようです。
2015
2016
exporter でトラブルがあったのでメモ。
関連エントリ
・Maya 2015 ShaderFX のノード情報を読みだしてみる
・Maya 2014 の Output Window と stderr
・Maya ShaderFX
MFn::kFileTexture Maya 2015 以前 colorProfile int Maya 2016 colorSpace string
2015
getAttr file1.cp;
// Result: 3 //
// Result: 3 //
2016
getAttr file1.cp;
// Result: 0 //
getAttr file1.cs;
// Result: sRGB //
// Result: 0 //
getAttr file1.cs;
// Result: sRGB //
// 2015
int cp= getAttribute<int>( object, "cp", &stat ); // colorProfile
switch( cp ){
case 3: // sRGB
...
break;
}
int cp= getAttribute<int>( object, "cp", &stat ); // colorProfile
switch( cp ){
case 3: // sRGB
...
break;
}
// 2016
bool ifr= getAttribute<bool>( object, "ifr", &stat ); // ignoreColorSpaceFileRules
if( ifr ){
MString cs= getAttributeMString( object, "cs", &stat ); // colorSpace
if( cs == "sRGB" ){
...
}
}
bool ifr= getAttribute<bool>( object, "ifr", &stat ); // ignoreColorSpaceFileRules
if( ifr ){
MString cs= getAttributeMString( object, "cs", &stat ); // colorSpace
if( cs == "sRGB" ){
...
}
}
exporter でトラブルがあったのでメモ。
関連エントリ
・Maya 2015 ShaderFX のノード情報を読みだしてみる
・Maya 2014 の Output Window と stderr
・Maya ShaderFX
2015/06/29
Direct3D 12 (DirectX12) GPU と API の対応表
分かる範囲、試せる範囲で結果をまとめました。
より詳しくは下記ページを参照してください。
・GPU 世代対応表
D3D12 の欄が Y の FeatureLevel は HW 機能ではなく D3D12 API が実際に返してきた値です。ドライバの更新で今後仕様が変わる可能性があります。実際に HD Graphics 4600 が 11_0 → 11_1 に変わりました。
GeForce Fermi (GeForce GTX 560 Ti 等) は Direct3D 12 サポート GPU に含まれますが、現在リリースされているドライバはまだ対応していません。
(NVIDIA Blog: GeForce DirectX 12 Drivers for Windows 10 Now WHQL-Certified)
6/29 現在 GeForce で D3D12 を試す場合 Kepler または Maxwell 以降が必要になります。
RADEON は Catalyst 15.6 beta で OpenGL 4.5 を返しますが shader は 4.4 のまま↓。
関連エントリ
・DirectX 12 (Direct3D 12) と GPU の対応
関連ページ
・3D Low overhead API (Low Level API) Metal/D3D12/Vulkan
・Direct3D 12 (DirectX 12) Windows 詳細
・GPU 世代対応表
より詳しくは下記ページを参照してください。
・GPU 世代対応表
GPU | FeatureLevel | D3D12 | OpenGL | OpenGL ES | |
---|---|---|---|---|---|
GeForce Tesla | 10_0 | N | 3.3 | ES 3.0? | GeForce GTX200 |
GeForce Fermi | 11_0 | N (Y) | 4.5 | ES 3.1 AEP Emu | GeForce GTX400 |
GeForce Kepler | 11_0 | Y | 4.5 | ES 3.1 AEP Emu | GeForce GTX680 |
GeForce Maxwell | 11_0 | Y | 4.5 | ES 3.1 AEP Emu | GeForce GTX750 |
GeForce Maxwell 2 | ? | Y | 4.5 | ES 3.1 AEP ? | GeForce GTX900 |
RADEON R700 | 10_1 | N | 3.3? | ES ? | RADEON HD 4000 |
RADEON VIEW5 | 11_0 | N | 4.5/4.4 | ES 3.1 | RADEON HD 5000 |
RADEON VLIW4 | 11_0 | N | 4.5/4.4 | ES 3.1 | RADEON HD 6000 |
RADEON GCN 1.0 | 11_1 | Y | 4.5/4.4 | ES 3.1 | RADEON HD 7000 |
RADEON GCN 1.1 | 12_0 | Y | 4.5/4.4 | ES 3.1 | RADEON R9 200/300 |
RADEON GCN 1.2 | ? | Y | 4.5/4.4 | ES 3.1 | RADEON R9 285/380/Fury |
HD Graphics 7 | 11_0 | N | 4.0 | ES 3.1 | HD 2500/4000 |
HD Graphics 7.5 | 11_1 | Y | 4.3 | ES 3.1 | HD 4600/5200 |
HD Graphics 8 | ? | Y | ? | ES 3.1 | Iris Pro 6200 |
D3D12 の欄が Y の FeatureLevel は HW 機能ではなく D3D12 API が実際に返してきた値です。ドライバの更新で今後仕様が変わる可能性があります。実際に HD Graphics 4600 が 11_0 → 11_1 に変わりました。
GeForce Fermi (GeForce GTX 560 Ti 等) は Direct3D 12 サポート GPU に含まれますが、現在リリースされているドライバはまだ対応していません。
(NVIDIA Blog: GeForce DirectX 12 Drivers for Windows 10 Now WHQL-Certified)
6/29 現在 GeForce で D3D12 を試す場合 Kepler または Maxwell 以降が必要になります。
RADEON は Catalyst 15.6 beta で OpenGL 4.5 を返しますが shader は 4.4 のまま↓。
GL_VERSION: 4.5.13394 Core Profile/Debug Context 15.200.1023.5 GL_RENDERER: AMD Radeon HD 8400 / R3 Series GL_VENDOR: ATI Technologies Inc. GL_SHADING_LANGUAGE_VERSION: 4.40
関連エントリ
・DirectX 12 (Direct3D 12) と GPU の対応
関連ページ
・3D Low overhead API (Low Level API) Metal/D3D12/Vulkan
・Direct3D 12 (DirectX 12) Windows 詳細
・GPU 世代対応表
2015/06/26
DirectX 12 (Direct3D 12) と GPU の対応
Direct3D 12 はこれまでのメジャーアップデートと違い、
CPU 効率を改善することが目的の一つとなっています。
そのため GPU に対しては極端に大きな機能要求はなく、
基本的には Direct3D 11 世代の GPU でほぼそのまま対応します。
対応する GPU は下記の通りです。
・GeForce : Fermi 以降
・RADEON : GCN 以降
・Intel : Haswell 世代以降
Direct3D 12 ではリソースの扱いが大きく変更されています。
Slot 数のような API に起因する制限は基本的になくなっており、
仕様上はメモリの許す限り割り当てることが可能です。
ただしハードウエアが対応しているかどうかはまた別です。
いくつかの GPU で調べてみました。
ハードウエアの対応度を表しているのが Tier で、値が大きいほど制限が無くなります。
Tier が低い場合は D3D11 とほぼ同等です。
例えば 1シェーダーあたり 14 CBV, 128 SRV (Texture), 8 UAV, 16 Sampler など。
この中では RADEON (GCN) が D3D12 API への適応度が最も高いことがわかります。
RADEON (GCN) では数値上の制限がなく、メモリの許す限りいくつでも利用できるわけです。
Tier の詳細はこちら (MSDN Hardware Tiers)、表については こちら もご覧ください。
なおドライバは頻繁に更新されているので、今後仕様が変わる可能性があります。
予めご了承ください。
関連エントリ
・Direct3D 12 と ASTC 圧縮 Texture
・CPU 負荷が低い 新しい 3D API
関連ページ
・3D Low overhead API (Low Level API) Metal/D3D12/Vulkan
・Direct3D 12 (DirectX 12) Windows 詳細
CPU 効率を改善することが目的の一つとなっています。
そのため GPU に対しては極端に大きな機能要求はなく、
基本的には Direct3D 11 世代の GPU でほぼそのまま対応します。
対応する GPU は下記の通りです。
・GeForce : Fermi 以降
・RADEON : GCN 以降
・Intel : Haswell 世代以降
Direct3D 12 ではリソースの扱いが大きく変更されています。
Slot 数のような API に起因する制限は基本的になくなっており、
仕様上はメモリの許す限り割り当てることが可能です。
ただしハードウエアが対応しているかどうかはまた別です。
いくつかの GPU で調べてみました。
RADEON | RADEON | GeForce | GeForce | Intel HD | |
R3 HD8400 | HD 7750 | GTX750Ti | GTX650 | Graphics 4600 | |
GCN 1.1 HSA | GCN 1.0 | Maxwell | Kepler | 7.5th | |
15.200.1023 | 15.200.1023 | 353.30 | 353.30 | 10.18.15.4235 | |
FEATURE_LEVEL | 12_0 | 11_1 | 11_0 | 11_0 | 11_1 |
DoublePrec | true | true | true | true | true |
OMLogicOp | true | true | true | true | true |
MinPrecision | NONE | NONE | NONE | NONE | NONE |
TiledResTier | Tier 2 | Tire 1 | Tier 1 | Tier 1 | -- |
ResBindingTier | Tier 3 | Tire 3 | Tier 2 | Tier 2 | Tier 1 |
StencilRef | true | true | false | false | false |
TypedUAVFormat | true | true | true | false | false |
ROVsSupported | false | false | false | false | true |
ConservativeRas | -- | -- | -- | -- | -- |
GPUVAddrBits | 38 | 31 | 31 | 31 | 31 |
StdSwizzle64K | false | false | false | false | false |
CrossNodeTier | -- | -- | -- | -- | -- |
CrossAdaptTex | false | false | false | false | false |
VPAndRTArray | false | false | false | false | true |
ResHeapTier | Tier 2 | Tire 2 | Tier 1 | Tier 1 | Tier 2 |
ハードウエアの対応度を表しているのが Tier で、値が大きいほど制限が無くなります。
Tier が低い場合は D3D11 とほぼ同等です。
例えば 1シェーダーあたり 14 CBV, 128 SRV (Texture), 8 UAV, 16 Sampler など。
この中では RADEON (GCN) が D3D12 API への適応度が最も高いことがわかります。
RADEON (GCN) では数値上の制限がなく、メモリの許す限りいくつでも利用できるわけです。
Tier の詳細はこちら (MSDN Hardware Tiers)、表については こちら もご覧ください。
なおドライバは頻繁に更新されているので、今後仕様が変わる可能性があります。
予めご了承ください。
関連エントリ
・Direct3D 12 と ASTC 圧縮 Texture
・CPU 負荷が低い 新しい 3D API
関連ページ
・3D Low overhead API (Low Level API) Metal/D3D12/Vulkan
・Direct3D 12 (DirectX 12) Windows 詳細
2015/06/25
Desktop GPU と OpenGL ES 3.1 API
OpenGL ES は Mobile 等で用いられる API ですが、Desktop 向け OpenGL にも
積極的に取り込まれており互換性が保たれるようになってきました。
OpenGL 4.5 では GL_ARB_ES3_1_compatibility をサポートし、
OpenGL ES 3.1 API としても使うことができます。
2015/06/25 現在 Windows での対応状況 (beta driver 含む)
Intel と GeForce は OpenGL ES 3.1 Context を作り直す必要があります。
RADEON の場合は OpenGL 4.5 Context のまま使用します。
Desktop GPU 上で OpenGL ES を使う方法については下記にまとめています。
・Desktop 向け OpenGL ES 2.0 / OpenGL ES 3.0 / OpenGL ES 3.1 (AEP) 実行環境
Intel HD Graphics (D3D11世代) は OpenGL 4.5 に対応していませんが、
新しいドライバでは OpenGL ES 3.1 に対応しています。
具体的には Ivy Bridge 世代の Intel HD Graphics 4000/2500 以降で、
BayTrail の HD Graphics も含まれます。
GeForce のように GL_ANDROID_extension_pack_es31a (AEP) はありませんが、
Tessellator/GeometryShader など一部の機能は独自に対応が行われているようです。
OpenGL ES 3.1 context には下記の extension が含まれていることがわかります。
・Intel Developer Zone : Tessellation for OpenGL ES 3.1 on Android
GeForce は OpenGL ES 3.1 context で AEP をサポートしています。
ただし GPU によっては、AEP で必要な一部機能 (ASTC Texture) がソフトウエアで
エミュレーションされているようです。
NVIDIA は Mobile 向けに GLES Emulator Library をリリースしていないので
それを兼ねているのかもしれません。
RADEON は OpenGL 4.x そのままなので特に機能制限ありません。
よっていずれも GLES API ながら OpenGL 4.x 相当の機能が使えることになります。
GPU ごとの詳細は下記に載せています。
それぞれ可能な範囲で OpenGL ES 3.1 context の結果も含めました。
・Desktop GPU Extensions
関連エントリ
・Android 5.x OpenGL ES 3.1 と対応 GPU
・Galaxy S6 Mali-T760 は AEP 非搭載ながら ASTC HDR 対応
・GeForce の OpenGL 4.5 ES3_1_Compatibility は AEP 対応
・Android Nexus 6 Adreno 420 も OpenGL ES 3.1 AEP 対応 (Direct3D 11相当)
・Android 5.0 Nexus 10 Mali-T604 は OpenGL ES 3.1 対応
・(Kindle) Fire HD 6 は OpenGL ES 3.0 対応で非対称 4 core CPU
・iPad Air 2 (Apple A8X) の GPU
・NVIDIA SHIELD Tablet Tegra K1 は OpenGL ES 3.1 で Extension Pack 対応
・OpenGL ES 3.1 は OpenGL 4.x 相当で ComputeShader に対応
積極的に取り込まれており互換性が保たれるようになってきました。
OpenGL 4.5 では GL_ARB_ES3_1_compatibility をサポートし、
OpenGL ES 3.1 API としても使うことができます。
2015/06/25 現在 Windows での対応状況 (beta driver 含む)
Windows Desktop API Mobile API ------------------------------------------------------------- GeForce OpenGL 4.5 OpenGL ES 3.1 AEP RADEON OpenGL 4.5 OpenGL ES 3.1 Intel 4000 (Gen7) OpenGL 4.0 OpenGL ES 3.1 IvyBridge世代 Intel 4600 (7.5) OpenGL 4.3 OpenGL ES 3.1 Haswell世代
Intel と GeForce は OpenGL ES 3.1 Context を作り直す必要があります。
RADEON の場合は OpenGL 4.5 Context のまま使用します。
Desktop GPU 上で OpenGL ES を使う方法については下記にまとめています。
・Desktop 向け OpenGL ES 2.0 / OpenGL ES 3.0 / OpenGL ES 3.1 (AEP) 実行環境
Intel HD Graphics (D3D11世代) は OpenGL 4.5 に対応していませんが、
新しいドライバでは OpenGL ES 3.1 に対応しています。
具体的には Ivy Bridge 世代の Intel HD Graphics 4000/2500 以降で、
BayTrail の HD Graphics も含まれます。
Intel HD Graphics 4000 (Ivy Bridge) Windows 8.1 x64 GL_VERSION: OpenGL ES 3.1 - Build 10.18.10.4226 GL_RENDERER: Intel(R) HD Graphics 4000 GL_VENDOR: Intel GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.1 - Build 10.18.10.4226
Intel HD Graphics (BayTrail-T Atom Z3740) Windows 10 x86 GL_VERSION: OpenGL ES 3.1 - Build 10.18.10.3993 GL_RENDERER: Intel(R) HD Graphics GL_VENDOR: Intel GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.1 - Build 10.18.10.3993
Intel HD Graphics 4600 (Haswell) Windows 10 x64 GL_VERSION: OpenGL ES 3.1 - Build 10.18.15.4235 GL_RENDERER: Intel(R) HD Graphics 4600 GL_VENDOR: Intel GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.10 - Build 10.18.15.4235
GeForce のように GL_ANDROID_extension_pack_es31a (AEP) はありませんが、
Tessellator/GeometryShader など一部の機能は独自に対応が行われているようです。
OpenGL ES 3.1 context には下記の extension が含まれていることがわかります。
GL_INTEL_tessellation GL_INTEL_geometry_shader
・Intel Developer Zone : Tessellation for OpenGL ES 3.1 on Android
GeForce は OpenGL ES 3.1 context で AEP をサポートしています。
ただし GPU によっては、AEP で必要な一部機能 (ASTC Texture) がソフトウエアで
エミュレーションされているようです。
NVIDIA は Mobile 向けに GLES Emulator Library をリリースしていないので
それを兼ねているのかもしれません。
RADEON は OpenGL 4.x そのままなので特に機能制限ありません。
よっていずれも GLES API ながら OpenGL 4.x 相当の機能が使えることになります。
GPU ごとの詳細は下記に載せています。
それぞれ可能な範囲で OpenGL ES 3.1 context の結果も含めました。
・Desktop GPU Extensions
関連エントリ
・Android 5.x OpenGL ES 3.1 と対応 GPU
・Galaxy S6 Mali-T760 は AEP 非搭載ながら ASTC HDR 対応
・GeForce の OpenGL 4.5 ES3_1_Compatibility は AEP 対応
・Android Nexus 6 Adreno 420 も OpenGL ES 3.1 AEP 対応 (Direct3D 11相当)
・Android 5.0 Nexus 10 Mali-T604 は OpenGL ES 3.1 対応
・(Kindle) Fire HD 6 は OpenGL ES 3.0 対応で非対称 4 core CPU
・iPad Air 2 (Apple A8X) の GPU
・NVIDIA SHIELD Tablet Tegra K1 は OpenGL ES 3.1 で Extension Pack 対応
・OpenGL ES 3.1 は OpenGL 4.x 相当で ComputeShader に対応
2015/06/24
Android 5.x OpenGL ES 3.1 と対応 GPU
Android 5.0 から OpenGL ES 3.1 に対応しています。
GPU の対応状況を調べてみました。
今のところ判明している(直接調べた) GPU は下記の通りです。
OpenGL ES 3.0 がサポートされたのは Android 4.3 からです。
上記の結果を見ると、OpenGL ES 3.0 対応 GPU の大半がそのまま
OpenGL ES 3.1 にも対応できていることがわかります。
上記の表にはありませんが、Z37 系の Intel HD Graphcs (Gen7) も
Windows の最新ドライバで OpenGL ES 3.1 に対応しました。(詳細はこちら)
よって今のところ例外は Adreno 300 系だけとなっています。
Adreno 300 (305/306/320/330等) は OpenGL ES 3.0 専用と考えて良さそうです。
もう一つの特殊な例外は iOS です。
サポートしている OpenGL API は ES 3.0 までですが、
Low Level API の Metal を使うことで OpenGL ES 3.1 相当の機能を用いることができます。
OpenGL ES 3.1 対応状況については下記にまとめています。
・OpenGL ES 3.1 対応端末
GPU ごとの詳細はこちら
・CPU/GPU OpenGL ES Extension (Mobile GPU)
関連エントリ
・Galaxy S6 Mali-T760 は AEP 非搭載ながら ASTC HDR 対応
・Android Nexus 6 Adreno 420 も OpenGL ES 3.1 AEP 対応 (Direct3D 11相当)
・Android 5.0 Nexus 10 Mali-T604 は OpenGL ES 3.1 対応
・(Kindle) Fire HD 6 は OpenGL ES 3.0 対応で非対称 4 core CPU
・iPad Air 2 (Apple A8X) の GPU
・NVIDIA SHIELD Tablet Tegra K1 は OpenGL ES 3.1 で Extension Pack 対応
GPU の対応状況を調べてみました。
今のところ判明している(直接調べた) GPU は下記の通りです。
GPU OpenGL API SoC ---------------------------------------------------- Tegra K1 OpenGL ES 3.1 AEP Adreno 420 OpenGL ES 3.1 AEP Snapdragon 805 Adreno 430 OpenGL ES 3.1 AEP Snapdragon 810 Mali-T604 OpenGL ES 3.1 Exynos 5 Mali-T760 OpenGL ES 3.1 Exynos 7 PowerVR G6200 OpenGL ES 3.1 MT8135 PowerVR G6430 OpenGL ES 3.1 Atom Z3580
OpenGL ES 3.0 がサポートされたのは Android 4.3 からです。
上記の結果を見ると、OpenGL ES 3.0 対応 GPU の大半がそのまま
OpenGL ES 3.1 にも対応できていることがわかります。
上記の表にはありませんが、Z37 系の Intel HD Graphcs (Gen7) も
Windows の最新ドライバで OpenGL ES 3.1 に対応しました。(詳細はこちら)
よって今のところ例外は Adreno 300 系だけとなっています。
Adreno 300 (305/306/320/330等) は OpenGL ES 3.0 専用と考えて良さそうです。
もう一つの特殊な例外は iOS です。
サポートしている OpenGL API は ES 3.0 までですが、
Low Level API の Metal を使うことで OpenGL ES 3.1 相当の機能を用いることができます。
GPU API SoC -------------------------------------------------- PowerVR G6430 OpenGL ES 3.0 / Metal A7 PowerVR GX6450 OpenGL ES 3.0 / Metal A8 PowerVR GX6850 OpenGL ES 3.0 / Metal A8X
OpenGL ES 3.1 対応状況については下記にまとめています。
・OpenGL ES 3.1 対応端末
GPU ごとの詳細はこちら
・CPU/GPU OpenGL ES Extension (Mobile GPU)
関連エントリ
・Galaxy S6 Mali-T760 は AEP 非搭載ながら ASTC HDR 対応
・Android Nexus 6 Adreno 420 も OpenGL ES 3.1 AEP 対応 (Direct3D 11相当)
・Android 5.0 Nexus 10 Mali-T604 は OpenGL ES 3.1 対応
・(Kindle) Fire HD 6 は OpenGL ES 3.0 対応で非対称 4 core CPU
・iPad Air 2 (Apple A8X) の GPU
・NVIDIA SHIELD Tablet Tegra K1 は OpenGL ES 3.1 で Extension Pack 対応
2015/06/12
Galaxy S6 Mali-T760 は AEP 非搭載ながら ASTC HDR 対応
Exynos 7 Octa の Mali-T760 は OpenGL ES 3.1 に対応していることを確認しました。
残念ながら AEP (Android Extension Pack) が無いので D3D11 (FeatureLevel11)
相当の Tessellator 等は動きません。
その代わり ASTC 形式の圧縮テクスチャで HDR をサポートしている GPU は
今のところこれだけです。
今のところ判明している ASTC対応 GPU
ASTC 対応 GPU はまだ多くないものの、OpenGL (ES) だけでなく
D3D12/11.3 (FeatureLevel 12以上) や Metal でも使用することができます。
プラットフォームや API を超えて共有できるフォーマットになりつつあります。
下記ページを更新しました
・CPU/GPU OpenGL ES Extension (Mobile GPU)
Desktop GPU でも GeForce (GTX650/GTX750Ti Kepler/Maxwell 等) は
GL_ARB_ES3_1_compatibility にて GL_ANDROID_extension_pack_es31a (AEP)
に対応しています。
GL_KHR_texture_compression_astc_ldr は無いものの、
glGetIntergerv( GL_COMPRESSED_TEXTURE_FORMATS ) では列挙されるので
ASTC Texture を読み込むことができます。
ただしエミュレーションらしくロード時に非圧縮フォーマットに展開されているようです。
関連エントリ
・Direct3D 12 と ASTC 圧縮 Texture
・iPad Air 2 (Apple A8X) の GPU
・OpenGL ES 3.0 / OpenGL 4.3 ASTC 圧縮テクスチャの比較
・OpenGL 4.3/GLES 3.0 次の圧縮テクスチャ ASTC
・Direct3D11/OpenGL 圧縮テクスチャ BPTC, BC6H/BC7 の詳細構造 (2)
残念ながら AEP (Android Extension Pack) が無いので D3D11 (FeatureLevel11)
相当の Tessellator 等は動きません。
その代わり ASTC 形式の圧縮テクスチャで HDR をサポートしている GPU は
今のところこれだけです。
Samsung Galaxy S6 Edge Exynos 7420 Android 5.0 GL_RENDERER: Mali-T760 GL_VERSION: OpenGL ES 3.1 GL_EXT_debug_marker GL_ARM_rgba8 GL_ARM_mali_shader GL_OES_depth24 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_EXT_read_format_bgra GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_type_2_10_10_10_REV GL_OES_fbo_render_mipmap GL_OES_element_index_uint GL_EXT_shadow_samplers GL_OES_texture_compression_astc GL_OES_texture_compression_astc_ldr GL_OES_texture_compression_astc_hdr GL_KHR_debug GL_EXT_occlusion_query_boolean GL_EXT_disjoint_timer_query GL_EXT_blend_minmax GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_OES_texture_3D GL_EXT_texture_storage GL_EXT_multisampled_render_to_texture GL_OES_surfaceless_context GL_OES_texture_stencil8 GL_EXT_shader_pixel_local_storage GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_KHR_blend_equation_advanced GL_OES_texture_storage_multisample_2d_array GL_OES_shader_image_atomic
今のところ判明している ASTC対応 GPU
ASTC LDR ASTC HDR AEP OS ------------------------------------------------------------ S805/810 Adreno 400 Y N Y Android 5.0 Tegra K1 Y N Y Android 5.0 Exynos 7 Mali-T760 Y Y N Android 5.0 A8X PowerVR GX6850 Y N N iOS 8
ASTC 対応 GPU はまだ多くないものの、OpenGL (ES) だけでなく
D3D12/11.3 (FeatureLevel 12以上) や Metal でも使用することができます。
プラットフォームや API を超えて共有できるフォーマットになりつつあります。
下記ページを更新しました
・CPU/GPU OpenGL ES Extension (Mobile GPU)
Desktop GPU でも GeForce (GTX650/GTX750Ti Kepler/Maxwell 等) は
GL_ARB_ES3_1_compatibility にて GL_ANDROID_extension_pack_es31a (AEP)
に対応しています。
GL_KHR_texture_compression_astc_ldr は無いものの、
glGetIntergerv( GL_COMPRESSED_TEXTURE_FORMATS ) では列挙されるので
ASTC Texture を読み込むことができます。
ただしエミュレーションらしくロード時に非圧縮フォーマットに展開されているようです。
関連エントリ
・Direct3D 12 と ASTC 圧縮 Texture
・iPad Air 2 (Apple A8X) の GPU
・OpenGL ES 3.0 / OpenGL 4.3 ASTC 圧縮テクスチャの比較
・OpenGL 4.3/GLES 3.0 次の圧縮テクスチャ ASTC
・Direct3D11/OpenGL 圧縮テクスチャ BPTC, BC6H/BC7 の詳細構造 (2)