次の方法で共有


ID3D12ShaderReflection::GetRequiresFlags メソッド (d3d12shader.h)

シェーダーの要件を示すフラグのグループを取得します。

構文

UINT64 GetRequiresFlags();

戻り値

型: UINT64

1 つ以上のシェーダー要件 #define フラグの組み合わせを含む値。各フラグはシェーダーの要件を指定します。 既定値の 0 は、要件がないことを意味します。

D3D_SHADER_REQUIRES_DOUBLES。 シェーダーでは、グラフィックス ドライバーとハードウェアが ダブル データ型をサポートしている必要があります。

D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL。 シェーダーには、初期深度ステンシルが必要です。

D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE。 シェーダーには、すべてのパイプライン ステージで順序付けられていないアクセス ビュー (UAV) が必要です。

D3D_SHADER_REQUIRES_64_UAVS。 シェーダーには 64 個の UAV が必要です。

D3D_SHADER_REQUIRES_MINIMUM_PRECISION。 シェーダーでは、最小精度をサポートするためにグラフィックス ドライバーとハードウェアが必要です。 詳細については、「 HLSL 最小有効桁数の使用」を参照してください。

D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS。 シェーダーでは、グラフィックス ドライバーとハードウェアで拡張 doubles 命令がサポートされている必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONSExtendedDoublesShaderInstructions メンバーを参照してください。

D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS。 シェーダーでは、グラフィックス ドライバーとハードウェアがシェーダーの msad4 組み込み関数をサポートしている必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONSSAD4ShaderInstructions メンバーを参照してください。

D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING。 シェーダーでは、グラフィックス ドライバーとハードウェアが Direct3D 9 シャドウ サポートをサポートしている必要があります。

D3D_SHADER_REQUIRES_TILED_RESOURCES。 シェーダーでは、グラフィックス ドライバーとハードウェアがタイル リソースをサポートしている必要があります。

D3D_SHADER_REQUIRES_STENCIL_REF。 シェーダーには、深度ステンシル テストの参照値が必要です。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS構造体の PSSpecifiedStencilRefSupported メンバーと ID3D12GraphicsCommandList::OMSetStencilRef を参照してください。

D3D_SHADER_REQUIRES_INNER_COVERAGE。 シェーダーでは、グラフィックス ドライバーとハードウェアが内部カバレッジをサポートしている必要があります。 詳細については、D3D_NAMEの列挙定数D3D_NAME_INNER_COVERAGEおよびD3D11_NAME_INNER_COVERAGEを参照してください。

D3D_SHADER_REQUIRES_TYPED_UAV_LOAD_ADDITIONAL_FORMATS。 シェーダーでは、グラフィックス ドライバーとハードウェアが、型指定された順序なしのアクセス ビュー (UAV) の追加の形式の読み込みをサポートしている必要があります。 D3D12_FEATURE_DATA_D3D12_OPTIONS構造体の TypedUAVLoadAdditionalFormats メンバーを参照してください。

D3D_SHADER_REQUIRES_ROVS。 シェーダーでは、グラフィックス ドライバーとハードウェアがラスタライザー順序付きビュー (ROV) をサポートしている必要があります。 「ラスタライザーの順序付きビュー」を参照してください。

D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER。 シェーダーでは、グラフィックス ドライバーとハードウェアがビューポートをサポートし、シェーダーフィードラスタライザーからのターゲット配列インデックス値をレンダリングする必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS構造体のメンバー VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation を参照してください。

D3D_SHADER_REQUIRES_WAVE_OPS。 シェーダーでは、グラフィックス ドライバーとハードウェアが wave 操作をサポートしている必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS1構造体のメンバー WaveOps を参照してください。

D3D_SHADER_REQUIRES_INT64_OPS。 シェーダーでは、グラフィックス ドライバーとハードウェアが 64 ビット整数操作をサポートしている必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS1構造体のメンバー Int64ShaderOps を参照してください。

D3D_SHADER_REQUIRES_VIEW_ID。 シェーダーでは、SV_ViewID を使用したグラフィックス ドライバーとハードウェア サポート ビューのインスタンス化が必要です。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS3構造体のメンバー ViewInstancingTier を参照してください。

D3D_SHADER_REQUIRES_BARYCENTRICS。 シェーダーでは、グラフィックス ドライバーとハードウェアが SV_Barycentricsを使用して barycentrics をサポートする必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS3構造体の BarycentricsSupported メンバーを参照してください。

D3D_SHADER_REQUIRES_NATIVE_16BIT_OPS。 シェーダーでは、グラフィックス ドライバーとハードウェアがネイティブの 16 ビット操作をサポートしている必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS4構造体の メンバー Native16BitShaderOpsSupported参照 してください。

D3D_SHADER_REQUIRES_SHADING_RATE。 シェーダーでは、グラフィックス ドライバーとハードウェアが可変シェーディング レート (VRS) 機能をサポートしている必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS6構造体の VariableShadingRateTier メンバーを参照してください。

D3D_SHADER_REQUIRES_RAYTRACING_TIER_1_1。 シェーダーでは、グラフィックス ドライバーとハードウェアが DXR レベル 1.1 をサポートしている必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS5構造体のメンバー RaytracingTier を参照してください。

D3D_SHADER_REQUIRES_SAMPLER_FEEDBACK。 シェーダーでは、グラフィックス ドライバーとハードウェアがサンプラー フィードバックをサポートしている必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS7構造体のメンバー SamplerFeedbackTier を参照してください。

D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_TYPED_RESOURCE。 シェーダーでは、型指定されたリソースでグラフィックス ドライバーとハードウェアが int64 アトミックをサポートしている必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS9構造体の AtomicInt64OnTypedResourceSupported メンバーを 参照 してください。

D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_GROUP_SHARED。 シェーダーでは、グラフィックス ドライバーとハードウェアが、グループ共有メモリで int64 アトミックをサポートしている必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS9構造体の AtomicInt64OnGroupSharedSupported メンバーを参照してください。

D3D_SHADER_REQUIRES_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS。 シェーダーでは、グラフィックス ドライバーとハードウェアがメッシュシェーダーと増幅シェーダーの派生関数をサポートしている必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS9構造体のメンバー DerivativesInMeshAndAmplificationShadersSupported参照 してください。

D3D_SHADER_REQUIRES_RESOURCE_DESCRIPTOR_HEAP_INDEXING。 シェーダーでは、グラフィックス ドライバーとハードウェアが動的リソース (シェーダー モデル 6.6 の要件) と ResourceDescriptorHeap を特にサポートしている必要があります。 詳細については、GitHub の HLSL 動的リソース の仕様に関するページを参照してください。

D3D_SHADER_REQUIRES_SAMPLER_DESCRIPTOR_HEAP_INDEXING。 シェーダーでは、グラフィックス ドライバーとハードウェアが動的リソース (シェーダー モデル 6.6 の要件) と SamplerDescriptorHeap を特にサポートしている必要があります。 詳細については、GitHub の HLSL 動的リソース の仕様に関するページを参照してください。

D3D_SHADER_REQUIRES_WAVE_MMA。 シェーダーでは、グラフィックス ドライバーとハードウェアが Wave MMA をサポートしている必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS9構造体の WaveMMATier メンバーを参照してください。

D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE。 シェーダーでは、グラフィックス ドライバーとハードウェアが記述子ヒープ リソースで int64 アトミックをサポートしている必要があります。 詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS11構造体の AtomicInt64OnDescriptorHeapResourceSupported メンバーを 参照 してください。

解説

ヘッダー ファイルで d3d12shader.h シェーダー要件フラグを定義する方法を次に示します。

#define D3D_SHADER_REQUIRES_DOUBLES                                                         0x00000001
#define D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL                                             0x00000002
#define D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE                                             0x00000004
#define D3D_SHADER_REQUIRES_64_UAVS                                                         0x00000008
#define D3D_SHADER_REQUIRES_MINIMUM_PRECISION                                               0x00000010
#define D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS                                          0x00000020
#define D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS                                          0x00000040
#define D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING                                    0x00000080
#define D3D_SHADER_REQUIRES_TILED_RESOURCES                                                 0x00000100
#define D3D_SHADER_REQUIRES_STENCIL_REF                                                     0x00000200
#define D3D_SHADER_REQUIRES_INNER_COVERAGE                                                  0x00000400
#define D3D_SHADER_REQUIRES_TYPED_UAV_LOAD_ADDITIONAL_FORMATS                               0x00000800
#define D3D_SHADER_REQUIRES_ROVS                                                            0x00001000
#define D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER  0x00002000
#define D3D_SHADER_REQUIRES_WAVE_OPS                                                        0x00004000
#define D3D_SHADER_REQUIRES_INT64_OPS                                                       0x00008000
#define D3D_SHADER_REQUIRES_VIEW_ID                                                         0x00010000
#define D3D_SHADER_REQUIRES_BARYCENTRICS                                                    0x00020000
#define D3D_SHADER_REQUIRES_NATIVE_16BIT_OPS                                                0x00040000
#define D3D_SHADER_REQUIRES_SHADING_RATE                                                    0x00080000
#define D3D_SHADER_REQUIRES_RAYTRACING_TIER_1_1                                             0x00100000
#define D3D_SHADER_REQUIRES_SAMPLER_FEEDBACK                                                0x00200000
#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_TYPED_RESOURCE                                  0x00400000
#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_GROUP_SHARED                                    0x00800000
#define D3D_SHADER_REQUIRES_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS                   0x01000000
#define D3D_SHADER_REQUIRES_RESOURCE_DESCRIPTOR_HEAP_INDEXING                               0x02000000
#define D3D_SHADER_REQUIRES_SAMPLER_DESCRIPTOR_HEAP_INDEXING                                0x04000000
#define D3D_SHADER_REQUIRES_WAVE_MMA                                                        0x08000000
#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE                        0x10000000

必要条件

   
対象プラットフォーム Windows
ヘッダー d3d12shader.h

こちらもご覧ください