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