日別アーカイブ: 2015年7月18日

Direct3D 12 GeForce GTX970 は FeatureLevel 12_1 対応、Resource Bind/Heap Tier は低い

GeForce GTX970 (新 Maxwell) は DirectX12 の Feature Level 12_1 に対応していることを確認しました。

RADEON GeForce GeForce Intel HD
R3 8400 GTX 970 GTX 750 Ti Graphics
GCN 1.1 HSA Maxwell 2 Maxwell Gen 8
15.200.1023 353.30 353.30 10.18.15.4235
FEATURE_LEVEL 12_0 12_1 11_0 11_1
DoublePrec true true true true
OMLogicOp true true true true
MinPrecision NONE NONE NONE NONE
TiledResTier Tier 2 Tier 3 Tier 1
ResBindingTier Tier 3 Tier 2 Tier 2 Tier 1
StencilRef true false false false
TypedUAVFormat true true true false
ROV Supported false true false true
ConservativeRas Tier 1
GPUVAddrBits 38 38 31 31
StdSwizzle64K false false false false
CrossNodeTier
CrossAdaptTex false false false false
VPAndRTArray false false false true
ResHeapTier Tier 2 Tier 1 Tier 1 Tier 2

同じ Maxwell でも、GeForce GTX900 では ROV 及び Conservative Rasterization など新しいハードウエア機能に対応していることがわかります。ただし Resource Binding/Heap Tier は Kelper/旧Maxwell 世代と変わらず、リソースの上限は残ったままです。他の GPU 含めたより詳しい表は下記ページに載せています。

Direct3D 12 (DirectX 12) Windows 詳細

これらの新しい機能自体は GPU が対応していれば Direct3D 11.3 でも使用できます。
DirectX の API Version は下記のように細かく別れています。API Version が古いと新しい機能を利用することができません。ID3D11Device2/ID3D11Device3 のように必要な機能に対応した Interface を使う必要があります。

Direct3D 11.0      Windows 7 (Vista)
Direct3D 11.1      Windows 8 (7)
Direct3D 11.2      Windows 8.1
Direct3D 11.3      Windows 10
Direct3D 12        Windows 10

D3D12 で使える Feature Level は今のところ下記の 4 種類で API Version とは異なっています。こちらは実際に GPU が対応している機能をグループ化したものです。option 扱いの個別の機能を 1つ 1つ判定するのは面倒ですが、Feature Level 毎に必須の機能を決めておくことでまとめて区別しやすくなります。OpenGL の Extension と GL Version 番号の関係に似ているかもしれません。

Feature Level 11_0      Fermi/Kepler/Maxwell1
Feature Level 11_1      GCN 1.0/Intel HD Graphics Iris Gen7.5/8
Feature Level 12_0      GCN 1.1/1.2
Feature Level 12_1      Maxwell2

GPU の機能面に注目する場合は、どの API に対応しているかよりも、どの FeatureLevel に属しているかの方が重要となります。Direct3D11 対応と書かれていても FeatureLevel 9_1 の可能性もあるからです。
下記のページにも同じ表を載せています。

Direct3D (Direct3D/12/11/10)

GeForce GTX970 の OpenGL の結果も下記に追加しました。

Desktop GPU Extensions

GL_VERSION: 4.5.0 NVIDIA 353.30
GL_RENDERER: GeForce GTX 970/PCIe/SSE2
GL_VENDOR: NVIDIA Corporation
GL_SHADING_LANGUAGE_VERSION: 4.50 NVIDIA

↓ Maxwell v1 との違い

GL_AMD_vertex_shader_viewport_index
GL_AMD_vertex_shader_layer
GL_EXT_post_depth_coverage
GL_EXT_raster_multisample
GL_EXT_sparse_texture2
GL_EXT_texture_filter_minmax
GL_NV_conservative_raster
GL_NV_conservative_raster_dilate
GL_NV_fill_rectangle
GL_NV_fragment_coverage_to_color
GL_NV_fragment_shader_interlock
GL_NV_framebuffer_mixed_samples
GL_NV_geometry_shader_passthrough
GL_NV_path_rendering_shared_edge
GL_NV_sample_locations
GL_NV_sample_mask_override_coverage
GL_NV_shader_atomic_fp16_vector
GL_NV_viewport_array2

OpenGL ES 3.1 AEP 対応も他の GeForce と同じです。Extension に違いはありますが ASTC は Emulation となっています。今のところ HW 対応を確認した GPU は Intel HD Graphics (Gen8) のみ。

関連エントリ
3D 低レベル API の現状 Direct3D 12/Metal
Intel HD Graphics Gen 8 は Open GL 4.4/OpenGL ES 3.1 AEP 対応 (Broadwell/Cherry Trail/Braswell)
Direct3D 12 (DirectX12) GPU と API の対応表
DirectX 12 (Direct3D 12) と GPU の対応
Desktop GPU と OpenGL ES 3.1 API
GeForce の OpenGL 4.5 ES3_1_Compatibility は AEP 対応
CPU 負荷が低い 新しい 3D API