両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン |
opengl:gpuspecs [2013/04/07 16:16] – [glGetShaderPrecisionFormat による結果] oga | opengl:gpuspecs [2014/04/16 19:52] – [Mobile GPU の比較] oga |
---|
| |
| |
^ GPU ^ 圧縮Tex ^ FB ^ MRT ^ depth ^ Tile ^ Shader ^^ Uniform ^^ In/Out ^^ TexUnit ^^ Vertex Precision ^ Fragment Precision ^ Texture ^^^^^^^ Vertex ^^^ anisotropic ^ | ^ GPU ^ 圧縮Tex ^ FB ^ MRT ^ depth ^ Tile ^ Shader ^^ Uniform(vec4) ^^ In/Out ^^ TexUnit ^^ Vertex ^ Fragment ^ Texture ^^^^^^^ Vertex ^^^ anisotropic ^ |
^ ::: ^ ::: ^ size ^ ::: ^ ::: ^ ::: ^ Unit ^ bin ^ VSH ^ FSH ^ VSH ^ FSH ^ VSH ^ FSH ^ ::: ^ ::: ^ max ^ cube ^ 3D ^ 32F ^ 16F ^ 1010102 ^ depth ^ 16F ^ 1010102 ^ AO ^ ::: ^ | ^ ::: ^ ::: ^ size ^ ::: ^ ::: ^ ::: ^ Unit ^ bin ^ VSH ^ FSH ^ VSH ^ FSH ^ VSH ^ FSH ^ Precision ^ Precision ^ max ^ cube ^ 3D ^ 32F ^ 16F ^ 1010102 ^ depth ^ 16F ^ 1010102^ AO ^ ::: ^ |
| PowerVR SGX 535 | PVRTC | 2048 | | 24bit | TBDR | unified | | 128 | 64 | 16 | 8 | 0 | 8 | high, medium, low | high, medium, low | 2048 | 2048 | - | ◎ | ◎ | - | ◎ | A | - | ◎ | ◎ | | | PowerVR SGX 535 | PVRTC | 2048 | | 24bit | TBDR | unified | | 128 | 64 | 16 | 8 | 0 | 8 | hi, m, low | hi, m, low | 2048 | 2048 | - | Y | Y | - | Y | A | - | Y | Y | |
| PowerVR SGX 543MP2 | PVRTC | 4096 | | 24bit | TBDR | unified | | 128 | 64 | 16 | 8 | 0 | 8 | high, medium, low | high, medium, low | 4096 | 4096 | - | ◎ | ◎ | - | ◎ | A | - | ◎ | ◎ | | | PowerVR SGX 543MP2 | PVRTC | 4096 | | 24bit | TBDR | unified | | 128 | 64 | 16 | 8 | 0 | 8 | hi, m, low | hi, m, low | 4096 | 4096 | - | Y | Y | - | Y | A | - | Y | Y | |
| PowerVR SGX 540 | PVRTC/ETC1 | 2048 | | 24bit | TBDR | unified | ◎ | 128 | 64 | 8 | 8 | 0 | 8 | high, medium, low | high, medium, low | 2048 | 2048 | - | ◎ | ◎ | - | ◎ | A | - | ◎ | - | | | PowerVR SGX 540 | PVRTC/ETC1 | 2048 | | 24bit | TBDR | unified | Y | 128 | 64 | 8 | 8 | 0 | 8 | hi, m, low | hi, m, low | 2048 | 2048 | - | Y | Y | - | Y | A | - | Y | - | |
| Z430 | ATITC/3DC/ETC1 | 1024 | | 24bit | TBR | unified | z400 | 251 | 222 | 16 | 8 | 4 | 16 | high | high | 2048 | 1024 | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | - | ◎ | | | PowerVR G6430 (GLES3) | PVRTC/ETC2 | 4096 | 4 | 24bit | TBDR | unified | Y | 512x12 | 224x12 | 16 | 15 | 16 | 16 | hi, m, low | hi, m, low | 4096 | 4096 | Y | Y | Y | Y | Y | A | Y | Y | Y | |
| Adreno 200 | ATITC/3DC/ETC1 | 2048 | | 24bit | TBR | unified | z400 | 251 | 222 | 16 | 8 | 4 | 16 | high | high | 2048 | 2048 | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | - | ◎ | | | Z430 | ATITC/3DC/ETC1 | 1024 | | 24bit | TBR | unified | z400 | 251 | 222 | 16 | 8 | 4 | 16 | hi | hi | 2048 | 1024 | Y | Y | Y | Y | Y | Y | Y | - | Y | |
| Adreno 205 | ATITC/3DC/ETC1 | 4096 | | 24bit | TBR | unified | z400 | 251 | 222 | 16 | 8 | 4 | 16 | high | high | 4096 | 4096 | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | - | ◎ | | | Adreno 200 | ATITC/3DC/ETC1 | 2048 | | 24bit | TBR | unified | z400 | 251 | 222 | 16 | 8 | 4 | 16 | hi | hi | 2048 | 2048 | Y | Y | Y | Y | Y | Y | Y | - | Y | |
| Adreno 220 | ATITC/3DC/ETC1 | 4096 | | 24bit | TBR | unified | z400 | 251 | 222 | 16 | 8 | 4 | 16 | high | high | 4096 | 4096 | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | - | ◎ | | | Adreno 205 | ATITC/3DC/ETC1 | 4096 | | 24bit | TBR | unified | z400 | 251 | 222 | 16 | 8 | 4 | 16 | hi | hi | 4096 | 4096 | Y | Y | Y | Y | Y | Y | Y | - | Y | |
| Adreno 320 (GLES2) | ATITC/3DC/ETC1/ETC2 |4096| | 24bit | TBR/IMR | unified | z400 | 251 | 221 | 16 | 8 | 4 | 16 | high | high | 4096 | 4096 | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | | | Adreno 220 | ATITC/3DC/ETC1 | 4096 | | 24bit | TBR | unified | z400 | 251 | 222 | 16 | 8 | 4 | 16 | hi | hi | 4096 | 4096 | Y | Y | Y | Y | Y | Y | Y | - | Y | |
| Tegra250 ULP GeFroce(8) | S3TC/LATC/ETC1 | 3839 | | 16bit | IMR | discrete | ◎ | 256 | 1024 | 16 | 15 | 0 | 16 | high (medium,low) | medium, low | 2048 | 2048 | - | ◎ | ◎ | - | - | ◎ | - | - | ◎ | | | Adreno 320 (GLES2) | ATITC/3DC/ETC2 | 4096 | | 24bit | TBR/IMR | unified | z400 | 251 | 221 | 16 | 8 | 4 | 16 | hi | hi | 4096 | 4096 | Y | Y | Y | Y | Y | Y | Y | Y | Y | |
| Tegra3 ULP GeFroce(12) | S3TC/LATC/ETC1 | 3839 | | 16bit | IMR | discrete | ◎ | 256 | 1024 | 16 | 15 | 0 | 16 | high (medium,low) | medium, low | 2048 | 2048 | - | ◎ | ◎ | - | - | ◎ | - | - | ◎ | | | Adreno 320 (GLES3) | ATITC/3DC/ETC2 | 4096 | 4 | 24bit | TBR/IMR | unified | z400 | 256x12 | 224x12 | 16 | 16 | 16 | 16 | hi | hi | 4096 | 4096 | Y | Y | Y | Y | Y | Y | Y | Y | Y | |
| ZMS-08HD | S3TC/ETC1 | 2048 | | 32bit | | unified | ◎ | 128 | 16 | 8 | 8 | 8 | 8 | | | 2048 | 512 | - | - | - | - | - | - | - | - | - | | | Tegra250 ULP GeFroce(8) | S3TC/LATC/ETC1 | 3839 | | 16bit | IMR | discrete | Y | 256 | 1024 | 16 | 15 | 0 | 16 | hi (m,low) | m, low | 2048 | 2048 | - | Y | Y | - | - | Y | - | - | Y | |
| Mali-400MP4 | ETC1 | 4096 | | 24bit | TBR | discrete | mali | 128 | 1024 | 16 | 12 | 0 | 8 | high (medium) | medium | 4096 | 1024 | - | - | - | - | ◎ | - | - | - | - | | | Tegra 3 ULP GeFroce(12) | S3TC/LATC/ETC1 | 3839 | | 16bit | IMR | discrete | Y | 256 | 1024 | 16 | 15 | 0 | 16 | hi (m,low) | m, low | 2048 | 2048 | - | Y | Y | - | - | Y | - | - | Y | |
| Mali-T604 (GLES2) | ETC1 | 4096 | | 24bit | TBR | unified | mali | 256 | 256 | 16 | 12 | 16 | 16 | high, medium | high, medium | 4096 | 4096 | ◎ | - | - | ◎ | ◎ | - | - | ◎ | - | | | Tegra 4 ULP GeForce(72) | S3TC/LATC/ETC1 | 4096 | | 24bit | IMR | discrete | | 280 | 1024 | 16 | 15 | 0 | 16 | hi | m, low | 4096 | 4096 | - | - | Y | - | Y | Y | - | Y | Y | |
| GC860 | S3TC/ETC1 | 2048 | | 24bit | | unified | ◎ | 160 | 64 | 10 | 8 | 0 | 8 | high | high | 8192 | 8192 | - | - | ◎ | - | ◎ | - | - | - | - | | | ZMS-08HD | S3TC/ETC1 | 2048 | | 32bit | | unified | Y | 128 | 16 | 8 | 8 | 8 | 8 | | | 2048 | 512 | - | - | - | - | - | - | - | - | - | |
| | Mali-400MP4 | ETC1 | 4096 | | 24bit | TBR | discrete | mali | 128 | 1024 | 16 | 12 | 0 | 8 | hi (m) | m | 4096 | 1024 | - | - | - | - | Y | - | - | - | - | |
| | Mali-T604 (GLES2) | ETC1 | 4096 | | 24bit | TBR | unified | mali | 256 | 256 | 16 | 12 | 16 | 16 | hi, m | hi, m | 4096 | 4096 | Y | - | - | Y | Y | - | - | Y | - | |
| | Mali-T604 (GLES3) | ETC1/ETC2/EAC | 4096 | 4 | 24bit | TBR | unified | mali | 256 | 1024 | 16 | 15 | 16 | 16 | hi, m | hi, m | 4096 | 4096 | Y | Y | Y | Y | Y | Y | Y | Y | - | |
| | Vivante GC860 (GLES2) | S3TC/ETC1 | 2048 | | 24bit | | unified | Y | 160 | 64 | 10 | 8 | 0 | 8 | hi | hi | 8192 | 8192 | - | - | Y | - | Y | - | - | - | - | |
| | Immersion.16 (Vivante GC4000) | S3TC/ETC1 | 8192 | | 24bit | | unified | viv | 568 | 568 | 16 | 12 | 16 | 16 | hi | hi | 8192 | 8192 | - | Y | Y | Y | Y | Y | Y | - | Y | |
| | VideoCore IV | ETC1 | 2048 | | 24bit | TBR? | unified | | 136 | 136 | 8 | 8 | 8 | 8 | hi | hi | 2048 | 2048 | - | - | - | - | - | Y | - | - | - | |
^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| Angle Project (D3D9) | S3TC | 8192 | | 24bit | | unified | -- | 254 | 221 | 16 | 10 | 4 | 16 | high | high | 8192 | 8192 | | ◎ | ◎ | - | ◎ | - | - | - | - | | | Angle Project (D3D9) | S3TC | 8192 | | 24bit | | unified | -- | 254 | 221 | 16 | 10 | 4 | 16 | hi | hi | 8192 | 8192 | | Y | Y | - | Y | - | - | - | - | |
^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| OpenGL ES 2.0 minimum | ETC1 | | 1 | | | | | 128 | 16 | 8 | 8 | 0 | 8 | high | medium | | | | | | | | | | | | | | OpenGL ES 2.0 minimum | ETC1 | | 1 | | | | | 128 | 16 | 8 | 8 | 0 | 8 | hi | m | | | | | | | | | | | | |
| OpenGL ES 3.0 minimum | ETC2/EAC | | 4 | 24bit | | | | 256 | 224 | 16 | 15 | 16 | 16 | | | | | | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | | | | | OpenGL ES 3.0 minimum | ETC2/EAC | 2048 | 4 | 24bit | | | | 256 | 224 | 16 | 15 | 16 | 16 | hi | | 2048 | 2048 | Y | Y | Y | Y | Y | Y | Y | Y | | |
| | OpenGL ES 3.1 minimum | ETC2/EAC | | 4 | | | | | 256 | 224 | 16 | 15 | 16 | 16 | hi | | | | | | | | | | | | | |
^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| DirectX8 Shader 1.1 | S3TC/DXT | | | | | | ◎ | 96 | 8 | 16 | 6 | 0 | 4 | high | low | | | ◎ | - | - | | | - | | | ◎ | | | DirectX8 Shader 1.1 | S3TC/DXT | | | | | | Y | 96 | 8 | 16 | 6 | 0 | 4 | hi | low | | | Y | - | - | | | - | | | Y | |
| DirectX9 Shader 2.0 | S3TC/DXT | | | | | | ◎ | 256 | 32 | 16 | 10 | 0 | 16 | high | high | | | ◎ | | | | | | | | ◎ | | | DirectX9 Shader 2.0 | S3TC/DXT | | | | | | Y | 256 | 32 | 16 | 10 | 0 | 16 | hi | hi | | | Y | | | | | | | | Y | |
| DirectX9 Shader 3.0 | S3TC/DXT | | | | | | ◎ | 256 | 224 | 16 | 10 | 4 | 16 | high | high | | | ◎ | ◎ | ◎ | ◎ | ◎ | | | | ◎ | | | DirectX9 Shader 3.0 | S3TC/DXT | | | | | | Y | 256 | 224 | 16 | 10 | 4 | 16 | hi | hi | | | Y | Y | Y | Y | Y | | | | Y | |
| DirectX10 Shader 4.0 | S3TC/DXT/BC | | | | | | ◎ | 64K | 64K | 16 | 16 | 128 | 128 | high | high | | | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | | ◎ | | | DirectX10 Shader 4.0 | S3TC/DXT/BC | | | | | | Y | 64K | 64K | 16 | 16 | 128 | 128 | hi | hi | | | Y | Y | Y | Y | Y | Y | Y | | Y | |
| DirectX10 Shader 4.1 | S3TC/DXT/BC | | | | | | ◎ | 64K | 64K | 32 | 32 | 128 | 128 | high | high | | | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | | ◎ | | | DirectX10 Shader 4.1 | S3TC/DXT/BC | | | | | | Y | 64K | 64K | 32 | 32 | 128 | 128 | hi | hi | | | Y | Y | Y | Y | Y | Y | Y | | Y | |
| DirectX11 Shader 5.0 | S3TC/DXT/BC | | | | | | ◎ | 64K | 64K | | | | | high | high | | | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | ◎ | | ◎ | | | DirectX11 Shader 5.0 | S3TC/DXT/BC | | | | | | Y | 64K | 64K | | | | | hi | hi | | | Y | Y | Y | Y | Y | Y | Y | | Y | |
| |
| |
* [[opengl:cpugpu|Extension の詳細]] | * [[opengl:cpugpu|Extension の詳細]] |
| * [[opengl:gpucore|GPU core の一覧]] |
| |
* Uniform:VSH/FSH = vec4 単位の個数。DirectX でいえば Constant Register のこと。 | * Uniform:VSH/FSH = vec4 単位の個数。DirectX でいえば Constant Register のこと。 |
* Vertex:AO = Array Object | * Vertex:AO = Array Object |
* MRT = Multi Render Target | * MRT = Multi Render Target |
| |
| |
| |
====== Precision ====== | ====== Precision ====== |
glGetShaderPrecisionFormat() を使って調べた GPU 毎の演算精度の結果のまとめ。 | glGetShaderPrecisionFormat() を使って調べた GPU 毎の演算精度の結果のまとめ。 |
| |
^ GPU ^ type ^ Vertex FLOAT ^^^ Fragment FLOAT ^^^ Vertex INT ^^^ Fragment INT ^^^ | ^ GPU ^ type ^ Vertex FLOAT ^^^ Fragment FLOAT ^^^ Vertex INT ^^^ Fragment INT ^^^ |
| ::: ^ ::: ^ highp ^ mediump ^ lowp ^ highp ^ mediump ^ lowp ^ highp ^ mediump ^ lowp ^ highp ^ mediump ^ lowp ^ | | ::: ^ ::: ^ highp ^ mediump ^ lowp ^ highp ^ mediump ^ lowp ^ highp ^ mediump ^ lowp ^ highp ^ mediump ^ lowp ^ |
| PowerVR SGX540 OMAP4460 | unified | fp32 (s23e8) | fp16 (s10e5) | fix10 | fp32 (s23e8) | fp16 (s10e5) | fix10 | 24bit | 11bit | 8bit | 24bit | 11bit | 8bit | | | PowerVR SGX540 OMAP4460 | unified | fp32 (s23e8) | fp16 (s10e5) | fix10 | fp32 (s23e8) | fp16 (s10e5) | fix10 | 24bit | 11bit | 8bit | 24bit | 11bit | 8bit | |
| PowerVR SGX540 S5PC110 | unified | fp32 (s23e8) | fp16 (s10e5) | fix10 | fp32 (s23e8) | fp16 (s10e5) | fix10 | 24bit | 11bit | 8bit | 24bit | 11bit | 8bit | | | PowerVR SGX540 S5PC110 | unified | fp32 (s23e8) | fp16 (s10e5) | fix10 | fp32 (s23e8) | fp16 (s10e5) | fix10 | 24bit | 11bit | 8bit | 24bit | 11bit | 8bit | |
| PowerVR SGX543MP2 A5 | unified | fp32 (s23e8) | fp16 (s10e5) | fix10 | fp32 (s23e8) | fp16 (s10e5) | fix10 | 23bit ||| 23bit ||| | | PowerVR SGX543MP2 A5 | unified | fp32 (s23e8) | fp16 (s10e5) | fix10 | fp32 (s23e8) | fp16 (s10e5) | fix10 | 23bit ||| 23bit ||| |
| PowerVR SGX535 S5PC100 | unified | fp32 (s23e8) | fp16 (s10e5) | fix10 | fp32 (s23e8) | fp16 (s10e5) | fix10 | 23bit ||| 23bit ||| | | PowerVR SGX554MP4 A6X | unified | fp32 (s23e8) | fp16 (s10e5) | fix10 | fp32 (s23e8) | fp16 (s10e5) | fix10 | 23bit ||| 23bit ||| |
| Adreno 200 QSD8250 | unified | fp32 (s24e7) ||| fp32 (s24e7) ||| 16bit ||| 16bit ||| | | PowerVR SGX535 S5PC100 | unified | fp32 (s23e8) | fp16 (s10e5) | fix10 | fp32 (s23e8) | fp16 (s10e5) | fix10 | 23bit ||| 23bit ||| |
| Adreno 205 MSM8255 | unified | fp32 (s24e7) ||| fp32 (s24e7) ||| 16bit ||| 16bit ||| | | Apple A7 GPU (GLES2) | | fp32 (s23e8) | fp16 (s10e5) || fp32 (s23e8) | fp16 (s10e5) || 32bit | 16bit || 32bit | 16bit || |
| Adreno 220 MSM8660 | unified | fp32 (s24e7) ||| fp32 (s24e7) ||| 16bit ||| 16bit ||| | | Adreno 200 QSD8250 | unified | fp32 (s24e7) ||| fp32 (s24e7) ||| 16bit ||| 16bit ||| |
| GC860 JZ4770 | unified | fp32 (s23e8) ||| fp32 (s23e8) ||| 24bit ||| 24bit ||| | | Adreno 205 MSM8255 | unified | fp32 (s24e7) ||| fp32 (s24e7) ||| 16bit ||| 16bit ||| |
| Mali-T604 (GLES2) | unified | fp32 (s23e8) | fp16 (s10e5) || fp32 (s23e8) | fp16 (s10e5) || 32bit | 16bit || 32bit | 16bit || | | Adreno 220 MSM8660 | unified | fp32 (s24e7) ||| fp32 (s24e7) ||| 16bit ||| 16bit ||| |
| Mali-400MP4 Exynos4210 | discrete | fp32 (s23e8) ||| -- | fp16 (s10e5) || 24bit ||| -- | 11bit || | | Adreno 320 APQ8064 (GLES2) | unified | fp32 (s24e7) ||| fp32 (s24e7) ||| 16bit ||| 16bit ||| |
| ULP GeForce(8) Tegra2 | discrete | fp32 (s23e8) ||| -- | fp20? (s13e6?) | fix10 | ? ||| -- | ? || | | GC860 JZ4770 | unified | fp32 (s23e8) ||| fp32 (s23e8) ||| 24bit ||| 24bit ||| |
| ULP GeForce(12) Tegra3 | discrete | fp32 (s23e8) ||| -- | fp20? (s13e6?) | fix10 | ? ||| -- | ? || | | Mali-400MP4 Exynos4210 | discrete | fp32 (s23e8) ||| -- | fp16 (s10e5) || 24bit ||| -- | 11bit || |
| Angle Project (D3D9) | | fp32 (s23e8) ||| fp32 (s23e8) ||| 24bit ||| 24bit ||| | | Mali-T604 (GLES2) | unified | fp32 (s23e8) | fp16 (s10e5) || fp32 (s23e8) | fp16 (s10e5) || 32bit | 16bit || 32bit | 16bit || |
| | ULP GeForce(8) Tegra2 | discrete | fp32 (s23e8) ||| -- | fp20? (s13e6?) | fix10 | ? ||| -- | ? || |
| | ULP GeForce(12) Tegra3 | discrete | fp32 (s23e8) ||| -- | fp20? (s13e6?) | fix10 | ? ||| -- | ? || |
| | Angle Project (D3D9) | | fp32 (s23e8) ||| fp32 (s23e8) ||| 24bit ||| 24bit ||| |
| |
| |
e8 = 8bit exponent | e8 = 8bit exponent |
</code> | </code> |
| |
===== 実際に走らせた場合の演算精度 ===== | ===== 実際に走らせた場合の演算精度 ===== |
| |