Skip to content

Instantly share code, notes, and snippets.

@oscarbg
Created August 10, 2018 13:29
Show Gist options
  • Save oscarbg/a5c0d474f9bac5b16e5d3dc7b2c8ae96 to your computer and use it in GitHub Desktop.
Save oscarbg/a5c0d474f9bac5b16e5d3dc7b2c8ae96 to your computer and use it in GitHub Desktop.
DirectML metacommands list in RS6 18204 and D3D12 metacommands API from WinSDK 17723
directml.dll metacommands found:
copytensor
reduce
gemm
pooling
roipooling
convolution
normalization
mvn
rnn
lstm
gru
// Experimental Feature: D3D12MetaCommand
//
// Use with D3D12EnableExperimentalFeatures to enable the D3D12 Meta Command.
//
// Enabling D3D12MetaCommand needs no configuration struct, pass NULL in the pConfigurationStructs array.
//
// static const UUID D3D12MetaCommand = { /* C734C97E-8077-48C8-9FDC-D9D1DD31DD77 */
0xc734c97e,
0x8077,
0x48c8,
{ 0x9f, 0xdc, 0xd9, 0xd1, 0xdd, 0x31, 0xdd, 0x77 }
};
ID3D12MetaCommand object
interface ID3D12MetaCommand : ID3D12Pageable
{
UINT64 GetRequiredParameterResourceSize([annotation("_In_")] D3D12_META_COMMAND_PARAMETER_STAGE Stage, [annotation("_In_")] UINT ParameterIndex);
}
D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 35,
D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 36,
D3D12_MESSAGE_ID_CREATE_METACOMMAND = 1137,
D3D12_MESSAGE_ID_LIVE_METACOMMAND = 1138,
D3D12_MESSAGE_ID_DESTROY_METACOMMAND = 1139,
HRESULT EnumerateMetaCommands(
[annotation("_Inout_")] UINT* pNumMetaCommands,
[annotation("_Out_writes_opt_(*pNumMetaCommands)")] D3D12_META_COMMAND_DESC* pDescs
);
HRESULT EnumerateMetaCommands(
[annotation("_Inout_")] UINT* pNumMetaCommands,
[annotation("_Out_writes_opt_(*pNumMetaCommands)")] D3D12_META_COMMAND_DESC* pDescs
);
HRESULT EnumerateMetaCommandParameters(
[annotation("_In_")] REFGUID CommandId,
[annotation("_In_")] D3D12_META_COMMAND_PARAMETER_STAGE Stage,
[annotation("_Out_opt_")] UINT* pTotalStructureSizeInBytes,
[annotation("_Inout_")] UINT* pParameterCount,
[annotation("_Out_writes_opt_(*pParameterCount)")] D3D12_META_COMMAND_PARAMETER_DESC* pParameterDescs
);
HRESULT CreateMetaCommand(
[annotation("_In_")] REFGUID CommandId,
[annotation("_In_")] UINT NodeMask,
[annotation("_In_reads_bytes_opt_(CreationParametersDataSizeInBytes)")] const void * pCreationParametersData,
[annotation("_In_")] SIZE_T CreationParametersDataSizeInBytes,
[in] REFIID riid,
[out, iid_is(riid), annotation("_COM_Outptr_")] void** ppMetaCommand
);
void InitializeMetaCommand(
[annotation("_In_")] ID3D12MetaCommand * pMetaCommand,
[annotation("_In_reads_bytes_opt_(InitializationParametersDataSizeInBytes)")] const void * pInitializationParametersData,
[annotation("_In_")] SIZE_T InitializationParametersDataSizeInBytes
);
void ExecuteMetaCommand(
[annotation("_In_")] ID3D12MetaCommand * pMetaCommand,
[annotation("_In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes)")] const void * pExecutionParametersData,
[annotation("_In_")] SIZE_T ExecutionParametersDataSizeInBytes
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment