ID3D12ShaderReflection
COM公式ドキュメント
シェーダーリフレクション インターフェイスは、シェーダーの情報にアクセスします。(ID3D12ShaderReflection)
解説(Remarks)
シェーダーの ID3D12ShaderReflection インターフェイスは、D3DReflect を使用して取得できます。
d3dcompiler.dll のこの関数がサポートするのは Shader Model 2 ~ 5.1 です。Shader Model 6 のシェーダーリフレクションについては、dxcompiler.dll および dxc.exe と dxcompiler.dll の使用 を参照してください。
メソッド 19
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
シェーダーの記述を取得します。
| pDesc | D3D12_SHADER_DESC* | out | シェーダーの記述。D3D12_SHADER_DESC 構造体へのポインターとして返されます。 |
戻り値
型: HRESULT
Direct3D 12 の戻り値コードのいずれかを返します。
解説(Remarks)
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
インデックスを指定して定数バッファーを取得します。
| Index | DWORD | in | 0 から始まるインデックス。 |
戻り値
型: ID3D12ShaderReflectionConstantBuffer*
定数バッファーへのポインター(ID3D12ShaderReflectionConstantBuffer インターフェイスを参照)。
解説(Remarks)
定数バッファーは、スカラー定数またはテクスチャ定数をシェーダーに供給します。シェーダーは 1 つ以上の定数バッファーを使用できます。最適なパフォーマンスを得るには、更新頻度に応じて定数をバッファーに分けてください。
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
名前を指定して定数バッファーを取得します。
| Name | LPSTR | in | 定数バッファーの名前。 |
戻り値
型: ID3D12ShaderReflectionConstantBuffer*
定数バッファーへのポインター(ID3D12ShaderReflectionConstantBuffer インターフェイスを参照)。
解説(Remarks)
定数バッファーは、スカラー定数またはテクスチャ定数をシェーダーに供給します。 シェーダーは 1 つ以上の定数バッファーを使用できます。 最適なパフォーマンスを得るには、更新頻度に応じて定数をバッファーに分けてください。
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
リソースがシェーダーにどのようにバインドされているかを示す記述を取得します。(ID3D12ShaderReflection.GetResourceBindingDesc)
| ResourceIndex | DWORD | in | 0 から始まるリソースのインデックス。 |
| pDesc | D3D12_SHADER_INPUT_BIND_DESC* | out | 入力バインディングの記述へのポインター。D3D12_SHADER_INPUT_BIND_DESC を参照してください。 |
戻り値
型: HRESULT
Direct3D 12 の戻り値コードのいずれかを返します。
解説(Remarks)
シェーダーは、実行可能コード(コンパイル済みの HLSL 関数)と、シェーダーに入力データを供給する一連のリソースで構成されます。GetResourceBindingDesc は、その中の 1 つのリソースがシェーダーへの入力としてどのようにバインドされているかについての情報を取得します。ResourceIndex パラメーターでリソースのインデックスを指定します。
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
シェーダーの入力パラメーターの記述を取得します。
| ParameterIndex | DWORD | in | 0 から始まるパラメーターのインデックス。 |
| pDesc | D3D12_SIGNATURE_PARAMETER_DESC* | out | シェーダーの入力シグネチャの記述へのポインター。D3D12_SIGNATURE_PARAMETER_DESC を参照してください。 |
戻り値
型: HRESULT
Direct3D 12 の戻り値コードのいずれかを返します。
解説(Remarks)
入力パラメーターの記述は、シェーダーシグネチャとも呼ばれます。 シェーダーシグネチャには、パラメーターの順序、データ型、セマンティクスなど、入力パラメーターに関する情報が含まれます。
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
シェーダーの出力パラメーターの記述を取得します。
| ParameterIndex | DWORD | in | 0 から始まるパラメーターのインデックス。 |
| pDesc | D3D12_SIGNATURE_PARAMETER_DESC* | out | シェーダーの出力パラメーターの記述。D3D12_SIGNATURE_PARAMETER_DESC 構造体へのポインターとして返されます。 |
戻り値
型: HRESULT
Direct3D 12 の戻り値コードのいずれかを返します。
解説(Remarks)
出力パラメーターの記述は、シェーダーシグネチャとも呼ばれます。シェーダーシグネチャには、パラメーターの順序、データ型、セマンティクスなど、出力パラメーターに関する情報が含まれます。
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
シェーダーのパッチ定数パラメーターの記述を取得します。
| ParameterIndex | DWORD | in | 0 から始まるパラメーターのインデックス。 |
| pDesc | D3D12_SIGNATURE_PARAMETER_DESC* | out | シェーダーの入力シグネチャの記述へのポインター。D3D12_SIGNATURE_PARAMETER_DESC を参照してください。 |
戻り値
型: HRESULT
Direct3D 12 の戻り値コードのいずれかを返します。
解説(Remarks)
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
名前を指定して変数を取得します。(ID3D12ShaderReflection.GetVariableByName)
| Name | LPSTR | in | 変数名を含む文字列へのポインター。 |
戻り値
解説(Remarks)
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
リソースがシェーダーにどのようにバインドされているかを示す記述を取得します。(ID3D12ShaderReflection.GetResourceBindingDescByName)
| Name | LPSTR | in | リソースの定数バッファー名。 |
| pDesc | D3D12_SHADER_INPUT_BIND_DESC* | out | 入力バインディングの記述へのポインター。D3D12_SHADER_INPUT_BIND_DESC を参照してください。 |
戻り値
型: HRESULT
Direct3D 12 の戻り値コードのいずれかを返します。
解説(Remarks)
シェーダーは、実行可能コード(コンパイル済みの HLSL 関数)と、シェーダーに入力データを供給する一連のリソースで構成されます。GetResourceBindingDescByName は、その中の 1 つのリソースがシェーダーへの入力としてどのようにバインドされているかについての情報を取得します。Name パラメーターでリソースの名前を指定します。
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
Mov 命令の数を取得します。(ID3D12ShaderReflection.GetMovInstructionCount)
戻り値
型: UINT
Mov 命令の数を返します。
解説(Remarks)
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
Movc 命令の数を取得します。(ID3D12ShaderReflection.GetMovcInstructionCount)
戻り値
型: UINT
Movc 命令の数を返します。
解説(Remarks)
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
変換命令の数を取得します。(ID3D12ShaderReflection.GetConversionInstructionCount)
戻り値
型: UINT
変換命令の数を返します。
解説(Remarks)
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
ビット演算命令の数を取得します。(ID3D12ShaderReflection.GetBitwiseInstructionCount)
戻り値
型: UINT
ビット演算命令の数。
解説(Remarks)
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
ジオメトリシェーダーの入力プリミティブの記述を取得します。(ID3D12ShaderReflection.GetGSInputPrimitive)
戻り値
入力プリミティブの記述。 D3D_PRIMITIVE_TOPOLOGY を参照してください。
解説(Remarks)
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
シェーダーがサンプル周波数シェーダーかどうかを示します。(ID3D12ShaderReflection.IsSampleFrequencyShader)
戻り値
型: BOOL
シェーダーがサンプル周波数シェーダーの場合は true、それ以外の場合は false を返します。
解説(Remarks)
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
シェーダー内のインターフェイススロットの数を取得します。(ID3D12ShaderReflection.GetNumInterfaceSlots)
戻り値
型: UINT
シェーダー内のインターフェイススロットの数。
解説(Remarks)
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
最小の機能レベルを取得します。(ID3D12ShaderReflection.GetMinFeatureLevel)
| pLevel | D3D_FEATURE_LEVEL* | out | 最小の機能レベルを表す D3D_FEATURE_LEVEL の列挙値のいずれかへのポインター。 |
戻り値
型: HRESULT
Direct3D 12 の戻り値コードのいずれかを返します。
解説(Remarks)
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
シェーダーのスレッドグループグリッドの X、Y、Z 各次元のサイズを、スレッド数単位で取得します。(ID3D12ShaderReflection.GetThreadGroupSize)
| pSizeX | DWORD* | outoptional | スレッドグループグリッドの x 次元のサイズ(スレッド数単位)へのポインター。最大サイズは 1024 です。 |
| pSizeY | DWORD* | outoptional | スレッドグループグリッドの y 次元のサイズ(スレッド数単位)へのポインター。最大サイズは 1024 です。 |
| pSizeZ | DWORD* | outoptional | スレッドグループグリッドの z 次元のサイズ(スレッド数単位)へのポインター。最大サイズは 64 です。 |
戻り値
解説(Remarks)
このメソッドのインターフェイスは、単体配布の DLL である D3DCompiler_xx.dll でホストされています。
コンピュートシェーダーを記述する際に定義されるのは、単一のスレッドグループの動作のみです。複数のスレッドグループが必要な場合、それらを発行するのは ID3D12GraphicsCommandList::Dispatch の呼び出しの役割です。
シェーダーの要件を示すフラグのグループを取得します。(ID3D12ShaderReflection.GetRequiresFlags)
戻り値
型: UINT64
シェーダー要件を示す 1 つ以上の #define フラグの組み合わせを含む値です。各フラグはシェーダーの要件を 1 つ指定します。既定値の 0 は、要件がないことを意味します。
D3D_SHADER_REQUIRES_DOUBLES。シェーダーは、グラフィックスドライバーとハードウェアが double データ型をサポートすることを要求します。
D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL。シェーダーは 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。シェーダーは、グラフィックスドライバーとハードウェアが拡張 double 命令をサポートすることを要求します。詳細については、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。シェーダーは、グラフィックスドライバーとハードウェアが 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) をサポートすることを要求します。Rasterizer Ordered Views を参照してください。
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 tier 1.1 をサポートすることを要求します。詳細については、D3D12_FEATURE_DATA_D3D12_OPTIONS5 構造体の RaytracingTier メンバーを参照してください。
D3D_SHADER_REQUIRES_SAMPLER_FEEDBACK。シェーダーは、グラフィックスドライバーとハードウェアが 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。シェーダーは、グラフィックスドライバーとハードウェアが groupshared メモリに対する 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。シェーダーは、グラフィックスドライバーとハードウェアが Dynamic Resources(Shader Model 6.6 の要件)、特に ResourceDescriptorHeap をサポートすることを要求します。詳細については、GitHub の HLSL dynamic resources 仕様を参照してください。
D3D_SHADER_REQUIRES_SAMPLER_DESCRIPTOR_HEAP_INDEXING。シェーダーは、グラフィックスドライバーとハードウェアが Dynamic Resources(Shader Model 6.6 の要件)、特に SamplerDescriptorHeap をサポートすることを要求します。詳細については、GitHub の HLSL dynamic resources 仕様を参照してください。
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 メンバーを参照してください。
解説(Remarks)
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
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ID3D12ShaderReflection "{5A58797D-A72C-478D-8BA2-EFC6B0EFE88E}" #usecom global ID3D12ShaderReflection IID_ID3D12ShaderReflection "{}" #comfunc global ID3D12ShaderReflection_GetDesc 3 var #comfunc global ID3D12ShaderReflection_GetConstantBufferByIndex 4 int #comfunc global ID3D12ShaderReflection_GetConstantBufferByName 5 str #comfunc global ID3D12ShaderReflection_GetResourceBindingDesc 6 int,var #comfunc global ID3D12ShaderReflection_GetInputParameterDesc 7 int,var #comfunc global ID3D12ShaderReflection_GetOutputParameterDesc 8 int,var #comfunc global ID3D12ShaderReflection_GetPatchConstantParameterDesc 9 int,var #comfunc global ID3D12ShaderReflection_GetVariableByName 10 str #comfunc global ID3D12ShaderReflection_GetResourceBindingDescByName 11 str,var #comfunc global ID3D12ShaderReflection_GetMovInstructionCount 12 #comfunc global ID3D12ShaderReflection_GetMovcInstructionCount 13 #comfunc global ID3D12ShaderReflection_GetConversionInstructionCount 14 #comfunc global ID3D12ShaderReflection_GetBitwiseInstructionCount 15 #comfunc global ID3D12ShaderReflection_GetGSInputPrimitive 16 #comfunc global ID3D12ShaderReflection_IsSampleFrequencyShader 17 #comfunc global ID3D12ShaderReflection_GetNumInterfaceSlots 18 #comfunc global ID3D12ShaderReflection_GetMinFeatureLevel 19 var #comfunc global ID3D12ShaderReflection_GetThreadGroupSize 20 var,var,var #comfunc global ID3D12ShaderReflection_GetRequiresFlags 21 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ID3D12ShaderReflection "{5A58797D-A72C-478D-8BA2-EFC6B0EFE88E}" #usecom global ID3D12ShaderReflection IID_ID3D12ShaderReflection "{}" #comfunc global ID3D12ShaderReflection_GetDesc 3 sptr #comfunc global ID3D12ShaderReflection_GetConstantBufferByIndex 4 int #comfunc global ID3D12ShaderReflection_GetConstantBufferByName 5 str #comfunc global ID3D12ShaderReflection_GetResourceBindingDesc 6 int,sptr #comfunc global ID3D12ShaderReflection_GetInputParameterDesc 7 int,sptr #comfunc global ID3D12ShaderReflection_GetOutputParameterDesc 8 int,sptr #comfunc global ID3D12ShaderReflection_GetPatchConstantParameterDesc 9 int,sptr #comfunc global ID3D12ShaderReflection_GetVariableByName 10 str #comfunc global ID3D12ShaderReflection_GetResourceBindingDescByName 11 str,sptr #comfunc global ID3D12ShaderReflection_GetMovInstructionCount 12 #comfunc global ID3D12ShaderReflection_GetMovcInstructionCount 13 #comfunc global ID3D12ShaderReflection_GetConversionInstructionCount 14 #comfunc global ID3D12ShaderReflection_GetBitwiseInstructionCount 15 #comfunc global ID3D12ShaderReflection_GetGSInputPrimitive 16 #comfunc global ID3D12ShaderReflection_IsSampleFrequencyShader 17 #comfunc global ID3D12ShaderReflection_GetNumInterfaceSlots 18 #comfunc global ID3D12ShaderReflection_GetMinFeatureLevel 19 sptr #comfunc global ID3D12ShaderReflection_GetThreadGroupSize 20 sptr,sptr,sptr #comfunc global ID3D12ShaderReflection_GetRequiresFlags 21 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。