NVIDIA の beta driver 305.53 で OpenGL 4.3 を試してみました。
以下は GL_ARB_ES3_compatibility を走らせた結果です。
すでに ETC2/EAC が利用可能となっていることがわかります。
GL_VERSION: OpenGL ES 3.0 305.53 GL_RENDERER: GeForce GTX 560 Ti/PCIe/SSE2 GL_VENDOR: NVIDIA Corporation GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.00 TextureFormat 23 tc[00]=83f0 GL_COMPRESSED_RGB_S3TC_DXT1_EXT tc[01]=83f2 GL_COMPRESSED_RGBA_S3TC_DXT3_EXT tc[02]=83f3 GL_COMPRESSED_RGBA_S3TC_DXT5_EXT tc[03]=8b90 GL_PALETTE4_RGB8 tc[04]=8b91 GL_PALETTE4_RGBA8 tc[05]=8b92 GL_PALETTE4_R5_G6_B5 tc[06]=8b93 GL_PALETTE4_RGBA4 tc[07]=8b94 GL_PALETTE4_RGB5_A1 tc[08]=8b95 GL_PALETTE8_RGB8 tc[09]=8b96 GL_PALETTE8_RGBA8 tc[10]=8b97 GL_PALETTE8_R5_G6_B5 tc[11]=8b98 GL_PALETTE8_RGBA4 tc[12]=8b99 GL_PALETTE8_RGB5_A1 tc[13]=9274 GL_COMPRESSED_RGB8_ETC2 tc[14]=9275 GL_COMPRESSED_SRGB8_ETC2 tc[15]=9276 GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 tc[16]=9277 GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 tc[17]=9278 GL_COMPRESSED_RGBA8_ETC2_EAC tc[18]=9279 GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC tc[19]=9270 GL_COMPRESSED_R11_EAC tc[20]=9271 GL_COMPRESSED_SIGNED_R11_EAC tc[21]=9272 GL_COMPRESSED_RG11_EAC tc[22]=9273 GL_COMPRESSED_SIGNED_RG11_EAC
ちなみに 305.53 の OpenGL 4.3 でも ETC2/EAC は有効です。
GL_VERSION: 4.3.0 GL_RENDERER: GeForce GTX 560 Ti/PCIe/SSE2 GL_VENDOR: NVIDIA Corporation GL_SHADING_LANGUAGE_VERSION: 4.30 NVIDIA via Cg compiler pconst=2048 vconst=4096 vin=16 vout=124 ptex=32 vtex=32 combotex=192 maxrender=16384 maxtexsize=16384 cubetexsize=16384 viewdims=16384 blocks ver=14 frag=14 blocksize=65536 combined=84 geometry const=2048 tex=32 block=14 out=1024 outT=1024 comb=231424 tess ctrl const=2048 tex=32 block=14 out=128 outT=4216 in=128 comb=231424 tess eval const=2048 tex=32 block=14 out=128 patch=120 in=128 comb=231424 TextureFormat 23 tc[00]=83f0 GL_COMPRESSED_RGB_S3TC_DXT1_EXT tc[01]=83f2 GL_COMPRESSED_RGBA_S3TC_DXT3_EXT tc[02]=83f3 GL_COMPRESSED_RGBA_S3TC_DXT5_EXT tc[03]=8b90 GL_PALETTE4_RGB8 tc[04]=8b91 GL_PALETTE4_RGBA8 tc[05]=8b92 GL_PALETTE4_R5_G6_B5 tc[06]=8b93 GL_PALETTE4_RGBA4 tc[07]=8b94 GL_PALETTE4_RGB5_A1 tc[08]=8b95 GL_PALETTE8_RGB8 tc[09]=8b96 GL_PALETTE8_RGBA8 tc[10]=8b97 GL_PALETTE8_R5_G6_B5 tc[11]=8b98 GL_PALETTE8_RGBA4 tc[12]=8b99 GL_PALETTE8_RGB5_A1 tc[13]=9274 GL_COMPRESSED_RGB8_ETC2 tc[14]=9275 GL_COMPRESSED_SRGB8_ETC2 tc[15]=9276 GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 tc[16]=9277 GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 tc[17]=9278 GL_COMPRESSED_RGBA8_ETC2_EAC tc[18]=9279 GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC tc[19]=9270 GL_COMPRESSED_R11_EAC tc[20]=9271 GL_COMPRESSED_SIGNED_R11_EAC tc[21]=9272 GL_COMPRESSED_RG11_EAC tc[22]=9273 GL_COMPRESSED_SIGNED_RG11_EAC
ETC2 は ETC1 と上位互換なので、Desktop GPU でも ETC1 による描画が
可能となります。
ETC1 は 4×2 pixel あたり 1色しか使えませんでしたが、
ETC2 では DXT 同様 4×4 で 2色使えるよう拡張されています。
単純なグラデーション限定ですが独立した 3色の指定も可能です。
EAC との組み合わせでほぼ DXT1/DXT5/3DC の代用が可能なので、
今後は共通の圧縮テクスチャフォーマットとして ETC2 が使われて
いくのかも知れません。
より詳細な extension はこちらに追記しました。
・Mobile GPU の OpenGL Extension
・Desktop GPU の OpenGL Extension
GLSL の version は、OpenGL と OpenGL ES で見事に重ならないように
なっています。
OpenGL ES 2.0 GLSL ES 1.0 #version 100 (GLSL 1.1+) OpenGL 2.0 GLSL 1.1 #version 110 OpenGL 2.1 GLSL 1.2 #version 120 OpenGL 3.0 GLSL 1.3 #version 130 OpenGL 3.1 GLSL 1.4 #version 140 OpenGL 3.2 GLSL 1.5 #version 150 OpenGL ES 3.0 GLSL ES 3.0 #version 300 es (GLSL 3.3-) OpenGL 3.3 GLSL 3.3 #version 330 OpenGL 4.0 GLSL 4.0 #version 400 OpenGL 4.1 GLSL 4.1 #version 410 OpenGL 4.2 GLSL 4.2 #version 420 OpenGL 4.3 GLSL 4.3 #version 430
OpenGL ES 3.0 Emulator も出ています。
・Mali Developer Center: OpenGL ES 3.0 Emulator
・QDevNet : Mobile Gaming & Graphics Optimization (Adreno™)
GL_VERSION: OpenGL ES 3.0 GL_RENDERER: OpenGL ES Emulator Revision r2p0-00rel0 GL_VENDOR: ARM Ltd. GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.00 pconst=512 vconst=1024 vin=16 vout=31 ptex=32 vtex=32 combotex=192 maxrender=16384 maxtexsize=16384 cubetexsize=16384 viewdims=16384 TextureFormat 10 tc[00]=9270 GL_COMPRESSED_R11_EAC tc[01]=9272 GL_COMPRESSED_RG11_EAC tc[02]=9274 GL_COMPRESSED_RGB8_ETC2 tc[03]=9276 GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 tc[04]=9278 GL_COMPRESSED_RGBA8_ETC2_EAC tc[05]=9271 GL_COMPRESSED_SIGNED_R11_EAC tc[06]=9273 GL_COMPRESSED_SIGNED_RG11_EAC tc[07]=9279 GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC tc[08]=9277 GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 tc[09]=9275 GL_COMPRESSED_SRGB8_ETC2
Adreno は ETC2 がありませんでした。
GL_VERSION: OpenGL ES 3.0 Confetti Special Effects Build 01 GL_RENDERER: Qualcomm OpenGL ES 3.0 Emulator GL_VENDOR: Qualcomm GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL 3.00 pconst=224 vconst=256 vin=15 vout=8 ptex=8 vtex=1 combotex=9 maxrender=2048 maxtexsize=1024 cubetexsize=1024 viewdims=2048 TextureFormat 16 tc[00]=8c92 GL_ATC_RGB_AMD tc[01]=8c93 GL_ATC_RGBA_EXPLICIT_ALPHA_AMD tc[02]=87ee GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD tc[03]=87f9 GL_3DC_X_AMD tc[04]=87fa GL_3DC_XY_AMD tc[05]=8d64 GL_ETC1_RGB8_OES tc[06]=8b90 GL_PALETTE4_RGB8 tc[07]=8b91 GL_PALETTE4_RGBA8 tc[08]=8b92 GL_PALETTE4_R5_G6_B5 tc[09]=8b93 GL_PALETTE4_RGBA4 tc[10]=8b94 GL_PALETTE4_RGB5_A1 tc[11]=8b95 GL_PALETTE8_RGB8 tc[12]=8b96 GL_PALETTE8_RGBA8 tc[13]=8b97 GL_PALETTE8_R5_G6_B5 tc[14]=8b98 GL_PALETTE8_RGBA4 tc[15]=8b99 GL_PALETTE8_RGB5_A1