/*-------------------------------------------------------------------------------------
 *
 * Copyright (c) Microsoft Corporation
 *
 *-------------------------------------------------------------------------------------*/
import "oaidl.idl";
import "ocidl.idl";

import "d3d12.idl";

cpp_quote("#include <winapifamily.h>")

#pragma region App Family
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")

//==================================================================================================================================
//
// Debugging Layer
//
//==================================================================================================================================

[uuid(344488b7-6846-474b-b989-f027448245e0), object, local, pointer_default(unique)]
interface ID3D12Debug
    : IUnknown
{
    void EnableDebugLayer();
}

typedef enum D3D12_GPU_BASED_VALIDATION_FLAGS
{
    D3D12_GPU_BASED_VALIDATION_FLAGS_NONE = 0x00,
    D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING = 0x01,

} D3D12_GPU_BASED_VALIDATION_FLAGS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_FLAGS)")


[uuid(affaa4ca-63fe-4d8e-b8ad-159000af4304), object, local, pointer_default(unique)]
interface ID3D12Debug1
    : IUnknown
{
    void EnableDebugLayer();
    void SetEnableGPUBasedValidation(BOOL Enable);  
    void SetEnableSynchronizedCommandQueueValidation(BOOL Enable);
}

[uuid(93a665c4-a3b2-4e5d-b692-a26ae14e3374), object, local, pointer_default(unique)]
interface ID3D12Debug2
    : IUnknown
{
    void SetGPUBasedValidationFlags(D3D12_GPU_BASED_VALIDATION_FLAGS Flags);
}

[uuid(5cf4e58f-f671-4ff1-a542-3686e3d153d1), object, local, pointer_default(unique)]
interface ID3D12Debug3
    : ID3D12Debug
{
    void SetEnableGPUBasedValidation(BOOL Enable);
    void SetEnableSynchronizedCommandQueueValidation(BOOL Enable);
    void SetGPUBasedValidationFlags(D3D12_GPU_BASED_VALIDATION_FLAGS Flags);
}

typedef enum D3D12_RLDO_FLAGS
{
    D3D12_RLDO_NONE = 0x0,
    D3D12_RLDO_SUMMARY = 0x1,
    D3D12_RLDO_DETAIL = 0x2,
    D3D12_RLDO_IGNORE_INTERNAL = 0x4,

} D3D12_RLDO_FLAGS;

cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS(D3D12_RLDO_FLAGS)")

typedef enum D3D12_DEBUG_DEVICE_PARAMETER_TYPE
{
    D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS,
    D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS,
    D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR,
} D3D12_DEBUG_DEVICE_PARAMETER_TYPE;

typedef enum D3D12_DEBUG_FEATURE
{
    D3D12_DEBUG_FEATURE_NONE = 0x00,
    D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS = 0x01,
    D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING = 0x02,
    D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION = 0x04,
    D3D12_DEBUG_FEATURE_VALID_MASK = 
        D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS | 
        D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING | 
        D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION,
} D3D12_DEBUG_FEATURE;

cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEBUG_FEATURE)")

typedef enum D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE
{
    D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE,
    D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY,
    D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION,
    D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION,
    NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES
} D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE;

typedef enum D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS
{
    D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE = 0x00,
    D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS = 0x01,
    D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS = 0x02,
    D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS = 0x04,
    D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK = 0x07
} D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS;

cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS)")

typedef struct D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS
{
    UINT MaxMessagesPerCommandList;
    D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE DefaultShaderPatchMode;
    D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS PipelineStateCreateFlags;
} D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS;

typedef struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR
{
    FLOAT SlowdownFactor;
} D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR;

[uuid(a9b71770-d099-4a65-a698-3dee10020f88), object, local, pointer_default(unique)]
interface ID3D12DebugDevice1
    : IUnknown
{
    HRESULT SetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize);
    HRESULT GetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize);
    HRESULT ReportLiveDeviceObjects( D3D12_RLDO_FLAGS Flags );
}

[uuid(3febd6dd-4973-4787-8194-e45f9e28923e), object, local, pointer_default(unique)]
interface ID3D12DebugDevice
    : IUnknown
{
    HRESULT SetFeatureMask(D3D12_DEBUG_FEATURE Mask);
    D3D12_DEBUG_FEATURE GetFeatureMask();
    HRESULT ReportLiveDeviceObjects(D3D12_RLDO_FLAGS Flags);
}

[uuid(60eccbc1-378d-4df1-894c-f8ac5ce4d7dd), object, local, pointer_default(unique)]
interface ID3D12DebugDevice2
    : ID3D12DebugDevice
{
    HRESULT SetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize);
    HRESULT GetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize);
}

cpp_quote("DEFINE_GUID(DXGI_DEBUG_D3D12, 0xcf59a98c, 0xa950, 0x4326, 0x91, 0xef, 0x9b, 0xba, 0xa1, 0x7b, 0xfd, 0x95);")


[ uuid( 09e0bf36-54ac-484f-8847-4baeeab6053a ), object, local, pointer_default( unique ) ]
interface ID3D12DebugCommandQueue
    : IUnknown
{
    BOOL AssertResourceState( [annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, UINT State );
//  TODO: Stale  BOOL AssertResourceStateThroughView( [annotation("_In_")] ID3D12View* pView, UINT State );
};

typedef enum D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE
{
    D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS,
} D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE;

typedef struct D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS
{
    D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE ShaderPatchMode;
} D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS;

[ uuid( 102ca951-311b-4b01-b11f-ecb83e061b37 ), object, local, pointer_default( unique ) ]
interface ID3D12DebugCommandList1
    : IUnknown
{
    BOOL AssertResourceState( [annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, UINT State );
    HRESULT SetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize);
    HRESULT GetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize);
};

[uuid(09e0bf36-54ac-484f-8847-4baeeab6053f), object, local, pointer_default(unique)]
interface ID3D12DebugCommandList
    : IUnknown
{
    BOOL AssertResourceState([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, UINT State);
    HRESULT SetFeatureMask(D3D12_DEBUG_FEATURE Mask);
    D3D12_DEBUG_FEATURE GetFeatureMask();
};

[ uuid(aeb575cf-4e06-48be-ba3b-c450fc96652e), object, local, pointer_default( unique ) ]
interface ID3D12DebugCommandList2
    : ID3D12DebugCommandList
{
    HRESULT SetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize);
    HRESULT GetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize);
};

[uuid(0adf7d52-929c-4e61-addb-ffed30de66ef), object, local, pointer_default(unique)]
interface ID3D12SharingContract
    : IUnknown
{
    void Present([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, [annotation("_In_")] HWND window);
    void SharedFenceSignal([annotation("_In_")] ID3D12Fence* pFence, UINT64 FenceValue);
    void BeginCapturableWork([annotation("_In_")] REFGUID guid);
    void EndCapturableWork([annotation("_In_")] REFGUID guid);
};


//==================================================================================================================================
//
// Info Queue
//
//==================================================================================================================================
typedef enum D3D12_MESSAGE_CATEGORY {
    D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED,
    D3D12_MESSAGE_CATEGORY_MISCELLANEOUS,
    D3D12_MESSAGE_CATEGORY_INITIALIZATION,
    D3D12_MESSAGE_CATEGORY_CLEANUP,
    D3D12_MESSAGE_CATEGORY_COMPILATION,
    D3D12_MESSAGE_CATEGORY_STATE_CREATION,
    D3D12_MESSAGE_CATEGORY_STATE_SETTING,
    D3D12_MESSAGE_CATEGORY_STATE_GETTING,
    D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION,
    D3D12_MESSAGE_CATEGORY_EXECUTION,
    D3D12_MESSAGE_CATEGORY_SHADER,
} D3D12_MESSAGE_CATEGORY;

typedef enum D3D12_MESSAGE_SEVERITY {
    D3D12_MESSAGE_SEVERITY_CORRUPTION,
    D3D12_MESSAGE_SEVERITY_ERROR,
    D3D12_MESSAGE_SEVERITY_WARNING,
    D3D12_MESSAGE_SEVERITY_INFO,
    D3D12_MESSAGE_SEVERITY_MESSAGE
} D3D12_MESSAGE_SEVERITY;

// Unique ID for every error
// CAUTION: New enum values should be appended to the list only.  Inserting
// new enum values into the middle of the list results in changing the numeric
// values of some ID's from one SDK release to the next.  This in-turn breaks
// PIX and customer tools/filters.
typedef enum D3D12_MESSAGE_ID {
    D3D12_MESSAGE_ID_UNKNOWN = 0,

    //--------------------------------------------------------------------------
    // Messages Used by Core
    // Message IDs generated from core are at the beginning
    // since the core changes less frequently than the debug layer.

    // End of Messages used by Core
    // ------------------------------------------------------------------------
    D3D12_MESSAGE_ID_STRING_FROM_APPLICATION,
    D3D12_MESSAGE_ID_CORRUPTED_THIS,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14,
    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15,
    D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING,
    D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY,

    D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA,
    D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA,
    D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN,
    D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS,
    D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS,
    D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY,

    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT,
    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC,
    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT,
    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE,
    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE,
    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS,
    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE,
    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN,
    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN,

    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT,
    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT,
    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC,
    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT,
    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE,
    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE,
    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS,
    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE,
    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN,
    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN,

    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN,

    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT,

    D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY,
    D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE,
    D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE,

    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE,

    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE,

    D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY,
    D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE,
    D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE,

    D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE,
    D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE,
    D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP,
    D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS,
    D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC,

    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC,
    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC,

    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND,
    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND,
    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP,
    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA,
    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA,
    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA,
    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK,
    D3D12_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC,

    D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER,
    D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU,
    D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV,
    D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW,
    D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS,
    D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY,
    D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC,
    D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD,
    D3D12_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD,
    D3D12_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC,

    D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED,
    D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED,

    D3D12_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT,

    D3D12_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR,

    D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH,
    D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH,
    D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID,

    D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE,
    D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE,
    D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE,

    D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE,
    D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX,
    D3D12_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE,

    D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID,
    D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID,
    D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID,
    D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID,
    D3D12_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID,

    D3D12_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE,
    D3D12_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS,
    D3D12_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED,
    D3D12_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN,
    D3D12_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED,

    D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE,
    D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS,
    D3D12_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED,
    D3D12_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN,
    D3D12_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED,

    D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE,
    D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS,
    D3D12_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED,
    D3D12_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN,
    D3D12_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED,

    D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE,
    D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS,
    D3D12_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED,
    D3D12_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN,
    D3D12_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED,

    D3D12_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED,
    D3D12_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED,

    D3D12_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS,
    D3D12_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN,
    D3D12_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN,

    D3D12_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE,
    D3D12_MESSAGE_ID_REF_THREADING_MODE,
    D3D12_MESSAGE_ID_REF_UMDRIVER_EXCEPTION,
    D3D12_MESSAGE_ID_REF_KMDRIVER_EXCEPTION,
    D3D12_MESSAGE_ID_REF_HARDWARE_EXCEPTION,
    D3D12_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE,
    D3D12_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER,
    D3D12_MESSAGE_ID_REF_OUT_OF_MEMORY,
    D3D12_MESSAGE_ID_REF_INFO,

    //drawtime validation
    D3D12_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW,
    D3D12_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW,
    D3D12_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW,
    D3D12_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW,

    D3D12_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW,
    D3D12_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW,

    D3D12_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET,
    D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND,
    D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX,
    D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE,
    D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK,
    D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE,
    D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS,

    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INPUTLAYOUT_NOT_SET,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_CONSTANT_BUFFER_NOT_SET,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_CONSTANT_BUFFER_TOO_SMALL,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SAMPLER_NOT_SET,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SHADERRESOURCEVIEW_NOT_SET,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VIEW_DIMENSION_MISMATCH,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_GS_INPUT_PRIMITIVE_MISMATCH,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_RETURN_TYPE_MISMATCH,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_POSITION_NOT_PRESENT,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OUTPUT_STREAM_NOT_SET,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_BOUND_RESOURCE_MAPPED,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_OFFSET_UNALIGNED,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_SO_STRIDE_LARGER_THAN_BUFFER,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING,
    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0,
    D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT,
    D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT,
    D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT,

    D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN,
    D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN,
    D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN,

    D3D12_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC,
    D3D12_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH,
    D3D12_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW,
    D3D12_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS,
    D3D12_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH,

    D3D12_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY,
    D3D12_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY,

    D3D12_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH,
    D3D12_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN,
    D3D12_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE,
    D3D12_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT,
    D3D12_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH,

    D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY,
    D3D12_MESSAGE_ID_LIVE_BUFFER,
    D3D12_MESSAGE_ID_LIVE_TEXTURE1D,
    D3D12_MESSAGE_ID_LIVE_TEXTURE2D,
    D3D12_MESSAGE_ID_LIVE_TEXTURE3D,
    D3D12_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW,
    D3D12_MESSAGE_ID_LIVE_RENDERTARGETVIEW,
    D3D12_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW,
    D3D12_MESSAGE_ID_LIVE_VERTEXSHADER,
    D3D12_MESSAGE_ID_LIVE_GEOMETRYSHADER,
    D3D12_MESSAGE_ID_LIVE_PIXELSHADER,
    D3D12_MESSAGE_ID_LIVE_INPUTLAYOUT,
    D3D12_MESSAGE_ID_LIVE_SAMPLER,
    D3D12_MESSAGE_ID_LIVE_BLENDSTATE,
    D3D12_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE,
    D3D12_MESSAGE_ID_LIVE_RASTERIZERSTATE,
    D3D12_MESSAGE_ID_LIVE_QUERY,
    D3D12_MESSAGE_ID_LIVE_PREDICATE,
    D3D12_MESSAGE_ID_LIVE_COUNTER,
    D3D12_MESSAGE_ID_LIVE_DEVICE,
    D3D12_MESSAGE_ID_LIVE_SWAPCHAIN,

    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS,
    D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE,
    D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE,

    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES,
    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES,

    D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL,
    D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY,
    D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE,
    D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE,
    D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE,

    D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL,
    D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY,
    D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE,
    D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE,
    D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE,
    D3D12_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH,

    D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER,
    D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED,
    D3D12_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW,

    D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE,
    D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS,
    D3D12_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED,
    D3D12_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN,
    D3D12_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN,
    D3D12_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD,
    D3D12_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED,

    D3D12_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS,
    D3D12_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH,
    D3D12_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH,
    D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH,
    D3D12_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH,

    D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE,
    D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE,
    D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN,

    D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL,
    D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY,
    D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE,
    D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE,
    D3D12_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY,
    D3D12_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER,
    D3D12_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY,
    D3D12_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY,
    D3D12_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY,
    D3D12_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY,
    D3D12_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY,

    D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED,

    D3D12_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE,
    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS,
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE,
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC,
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT,
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE,
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE,
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS,
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT,
    D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS,
    D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP,
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN,
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN,
    D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH,
    D3D12_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY,
    D3D12_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY,
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS,
    D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER,
    D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED,
    D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW,

    D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY,
    D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY,
    D3D12_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED,

    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET,
    D3D12_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED,
    D3D12_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW,
    D3D12_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO,
    D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH,
    D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH,
    D3D12_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED,

    D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET,
    D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET,
    D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE,
    D3D12_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE,

    D3D12_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED,
    D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED,

    D3D12_MESSAGE_ID_DEVICE_DRAW_PIXEL_SHADER_WITHOUT_RTV_OR_DSV,

    D3D12_MESSAGE_ID_SHADER_ABORT,
    D3D12_MESSAGE_ID_SHADER_MESSAGE,
    D3D12_MESSAGE_ID_SHADER_ERROR,

    D3D12_MESSAGE_ID_OFFERRESOURCES_INVALIDRESOURCE,
    D3D12_MESSAGE_ID_ENQUEUESETEVENT_INVALIDARG_RETURN,
    D3D12_MESSAGE_ID_ENQUEUESETEVENT_OUTOFMEMORY_RETURN,
    D3D12_MESSAGE_ID_ENQUEUESETEVENT_ACCESSDENIED_RETURN,

    D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT,

    D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_FORCED_SAMPLE_COUNT,
    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS,
    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARRAYWITHDECODER,
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARRAYWITHDECODER,
    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARRAYWITHDECODER,
    D3D12_MESSAGE_ID_DEVICE_LOCKEDOUT_INTERFACE,

    D3D12_MESSAGE_ID_OFFERRESOURCES_INVALIDPRIORITY,

    D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDVIEW,

    D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_SHADEREXTENSIONSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_SHADEREXTENSIONSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_SHADEREXTENSIONSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_SHADEREXTENSIONSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_SHADEREXTENSIONSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_SHADEREXTENSIONSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_SHADEREXTENSIONSNOTSUPPORTED,

    D3D12_MESSAGE_ID_DEVICE_SHADER_LINKAGE_MINPRECISION,

    D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_INVALIDOFFSET,
    D3D12_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_TOOMANYVIEWS,

    D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_NOTSUPPORTED,

    D3D12_MESSAGE_ID_SWAPDEVICECONTEXTSTATE_NOTSUPPORTED,
    D3D12_MESSAGE_ID_UPDATESUBRESOURCE_PREFERUPDATESUBRESOURCE1,

    D3D12_MESSAGE_ID_GETDC_INACCESSIBLE,

    D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDRECT,

    D3D12_MESSAGE_ID_DEVICE_DRAW_SAMPLE_MASK_IGNORED_ON_FL9,

    D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE1_NOT_SUPPORTED,
    D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BY_NAME_NOT_SUPPORTED,
    D3D12_MESSAGE_ID_ENQUEUESETEVENT_NOT_SUPPORTED,
    D3D12_MESSAGE_ID_OFFERRELEASE_NOT_SUPPORTED,

    D3D12_MESSAGE_ID_OFFERRESOURCES_INACCESSIBLE,
    D3D12_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMSAA,
    D3D12_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMSAA,

    D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT,
    D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT,
    D3D12_MESSAGE_ID_UPDATESUBRESOURCE_EMPTYDESTBOX,
    D3D12_MESSAGE_ID_COPYSUBRESOURCEREGION_EMPTYSOURCEBOX,
    D3D12_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS,
    D3D12_MESSAGE_ID_DEVICE_DRAW_DEPTHSTENCILVIEW_NOT_SET,
    D3D12_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET,
    D3D12_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET_DUE_TO_FLIP_PRESENT,
    D3D12_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET_DUE_TO_FLIP_PRESENT,

    D3D12_MESSAGE_ID_GETDATAFORNEWHARDWAREKEY_NULLPARAM,
    D3D12_MESSAGE_ID_CHECKCRYPTOSESSIONSTATUS_NULLPARAM,
    D3D12_MESSAGE_ID_SETEVENTONHARDWARECONTENTPROTECTIONTILT_NULLPARAM,
    D3D12_MESSAGE_ID_GETVIDEODECODERCAPS_NULLPARAM,
    D3D12_MESSAGE_ID_GETVIDEODECODERCAPS_ZEROWIDTHHEIGHT,
    D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_NULLPARAM,
    D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE,
    D3D12_MESSAGE_ID_CHECKVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT,
    D3D12_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_NULLPARAM,
    D3D12_MESSAGE_ID_VIDEODECODERENABLEDOWNSAMPLING_UNSUPPORTED,
    D3D12_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_NULLPARAM,
    D3D12_MESSAGE_ID_VIDEODECODERUPDATEDOWNSAMPLING_UNSUPPORTED,
    D3D12_MESSAGE_ID_CHECKVIDEOPROCESSORFORMATCONVERSION_NULLPARAM,
    D3D12_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCOLORSPACE1_NULLPARAM,
    D3D12_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCOLORSPACE1_NULLPARAM,
    D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_NULLPARAM,
    D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE1_INVALIDSTREAM,
    D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_NULLPARAM,
    D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_INVALIDSTREAM,
    D3D12_MESSAGE_ID_VIDEOPROCESSORSETSTREAMMIRROR_UNSUPPORTED,
    D3D12_MESSAGE_ID_VIDEOPROCESSORGETSTREAMCOLORSPACE1_NULLPARAM,
    D3D12_MESSAGE_ID_VIDEOPROCESSORGETSTREAMMIRROR_NULLPARAM,
    D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_NULLPARAM, 
    D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_INVALIDCOLORSPACE, 
    D3D12_MESSAGE_ID_RECOMMENDVIDEODECODERDOWNSAMPLING_ZEROWIDTHHEIGHT,
    D3D12_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSHADERUSAGE_NULLPARAM, 
    D3D12_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTSHADERUSAGE_NULLPARAM, 
    D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_NULLPARAM, 
    D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSTREAMCOUNT,
    D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_TARGETRECT,
    D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDSOURCERECT, 
    D3D12_MESSAGE_ID_VIDEOPROCESSORGETBEHAVIORHINTS_INVALIDDESTRECT,

    D3D12_MESSAGE_ID_CREATEBUFFER_INVALIDUSAGE,
    D3D12_MESSAGE_ID_CREATETEXTURE1D_INVALIDUSAGE,
    D3D12_MESSAGE_ID_CREATETEXTURE2D_INVALIDUSAGE,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_STEPRATE_NOT_1,
    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_LEVEL9_INSTANCING_NOT_SUPPORTED,
    D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER,
    D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER,
    D3D12_MESSAGE_ID_COPYTILES_INVALID_PARAMETER,
    D3D12_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_WARNING,
    D3D12_MESSAGE_ID_NULL_TILE_MAPPING_ACCESS_ERROR,
    D3D12_MESSAGE_ID_DIRTY_TILE_MAPPING_ACCESS,
    D3D12_MESSAGE_ID_DUPLICATE_TILE_MAPPINGS_IN_COVERED_AREA,
    D3D12_MESSAGE_ID_TILE_MAPPINGS_IN_COVERED_AREA_DUPLICATED_OUTSIDE,
    D3D12_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INCOMPATIBLE_RESOURCES,
    D3D12_MESSAGE_ID_TILE_MAPPINGS_SHARED_BETWEEN_INPUT_AND_OUTPUT,
    D3D12_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_INVALIDFLAGS,
    D3D12_MESSAGE_ID_GETRESOURCETILING_NONTILED_RESOURCE,
    D3D12_MESSAGE_ID_NEED_TO_CALL_TILEDRESOURCEBARRIER,

    D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS,
    D3D12_MESSAGE_ID_CREATEDEVICE_WARNING,

    D3D12_MESSAGE_ID_TILED_RESOURCE_TIER_1_BUFFER_TEXTURE_MISMATCH,

    D3D12_MESSAGE_ID_CREATE_CRYPTOSESSION,
    D3D12_MESSAGE_ID_CREATE_AUTHENTICATEDCHANNEL,
    D3D12_MESSAGE_ID_LIVE_CRYPTOSESSION,
    D3D12_MESSAGE_ID_LIVE_AUTHENTICATEDCHANNEL,
    D3D12_MESSAGE_ID_DESTROY_CRYPTOSESSION,
    D3D12_MESSAGE_ID_DESTROY_AUTHENTICATEDCHANNEL,

    D3D12_MESSAGE_ID_MAP_INVALID_SUBRESOURCE,
    D3D12_MESSAGE_ID_MAP_INVALID_TYPE,
    D3D12_MESSAGE_ID_MAP_UNSUPPORTED_TYPE,
    D3D12_MESSAGE_ID_UNMAP_INVALID_SUBRESOURCE,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE,    
    D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE,
    D3D12_MESSAGE_ID_INEFFICIENT_PRESENT,
    D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION,
    D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET,
    D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE,
    D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET,
    D3D12_MESSAGE_ID_COMMAND_LIST_OPEN,
    D3D12_MESSAGE_ID_QUERY_STATE_MISMATCH,
    D3D12_MESSAGE_ID_INVALID_BUNDLE_API,
    D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED,
    D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED_WITH_INVALID_RESOURCE,
    D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE,
    D3D12_MESSAGE_ID_INVALID_INDIRECT_ARGUMENT_BUFFER,
    D3D12_MESSAGE_ID_COMPUTE_AND_GRAPHICS_PIPELINE,
    D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC,
    D3D12_MESSAGE_ID_COMMAND_LIST_SYNC,
    D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID, 
    D3D12_MESSAGE_ID_CREATE_QUEUE_IMAGE_NOT_SUPPORTED,
    D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_IMAGE_NOT_SUPPORTED,

    D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE,
    D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR,
    D3D12_MESSAGE_ID_CREATE_PIPELINESTATE,
    D3D12_MESSAGE_ID_CREATE_COMMANDLIST12,
    D3D12_MESSAGE_ID_CREATE_IMAGECOMMANDLIST,
    D3D12_MESSAGE_ID_CREATE_RESOURCE,
    D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP,
    D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE,
    D3D12_MESSAGE_ID_CREATE_LIBRARY,
    D3D12_MESSAGE_ID_CREATE_HEAP,
    D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE,
    D3D12_MESSAGE_ID_CREATE_QUERYHEAP,
    D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE,

    D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE,
    D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR,
    D3D12_MESSAGE_ID_LIVE_PIPELINESTATE,
    D3D12_MESSAGE_ID_LIVE_COMMANDLIST12,
    D3D12_MESSAGE_ID_LIVE_IMAGECOMMANDLIST,
    D3D12_MESSAGE_ID_LIVE_RESOURCE,
    D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP,
    D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE,
    D3D12_MESSAGE_ID_LIVE_LIBRARY,
    D3D12_MESSAGE_ID_LIVE_HEAP,
    D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE,
    D3D12_MESSAGE_ID_LIVE_QUERYHEAP,
    D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE,

    D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE,
    D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR,
    D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE,
    D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12,
    D3D12_MESSAGE_ID_DESTROY_IMAGECOMMANDLIST,
    D3D12_MESSAGE_ID_DESTROY_RESOURCE,
    D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP,
    D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE,
    D3D12_MESSAGE_ID_DESTROY_LIBRARY,
    D3D12_MESSAGE_ID_DESTROY_HEAP,
    D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE,
    D3D12_MESSAGE_ID_DESTROY_QUERYHEAP,
    D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE,

    D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDHEAPTYPE,
    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS,
    D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDMISCFLAGS,
    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS,
    D3D12_MESSAGE_ID_CREATERESOURCE_LARGEALLOCATION,
    D3D12_MESSAGE_ID_CREATERESOURCE_SMALLALLOCATION,
    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN,
    D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN,
    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC,
    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDINITIALSTATE,
    D3D12_MESSAGE_ID_RESOURCE_HAS_PENDING_INITIAL_DATA,
    D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE,
    D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE,
    D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE,
    D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH,
    D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE,
    D3D12_MESSAGE_ID_RENDER_TARGET_NUMBER_MISMATCH_PIPELINE_STATE,
    D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE,
    D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE,
    D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE,
    D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE,
    D3D12_MESSAGE_ID_RENDER_TARGET_NUMBER_MISMATCH_BUNDLE_PIPELINE_STATE,
    D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_BUNDLE_PIPELINE_STATE,
    D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_BUNDLE_PIPELINE_STATE,
    D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_BUNDLE_PIPELINE_STATE,
    D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_BUNDLE_PIPELINE_STATE,
    D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE,
    D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC,
    D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE,
    D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE,
    D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES,
    D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL,
    D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES,
    D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT,
    D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS,
    D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS,
    D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN,
    D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN,
    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES,
    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE,
    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES,
    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL,
    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES,
    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS,
    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS,
    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN,
    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN,
    D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE,
    D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE,
    D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC,
    D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE,
    D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE,
    D3D12_MESSAGE_ID_DEVICE_DRAW_INVALID_SYSTEMVALUE,
    D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE,
    D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC,
    D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_LARGE_OFFSET,
    D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE,
    D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES,
    D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE,
    D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE,
    D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH,
    D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE,
    D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE,
    D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND,
    D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED,
    D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION,
    D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE,
    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES,
    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP,
    D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS,
    D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY,
    D3D12_MESSAGE_ID_MAKERESIDENT_INVALIDOBJECT,
    D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY,
    D3D12_MESSAGE_ID_EVICT_INVALIDOBJECT,
    D3D12_MESSAGE_ID_HEAPS_UNSUPPORTED,
    D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID,
    D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID,
    D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID,
    D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID,
    D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID,
    D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC,
    D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_LARGE_OFFSET,
    D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC,
    D3D12_MESSAGE_ID_SET_INDEX_BUFFER_LARGE_OFFSET,
    D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC,
    D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY,
    D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT,
    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY,
    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT,
    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS,
    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC,
    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT,
    D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID,
    D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID,
    D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID,
    D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID,
    D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS,
    D3D12_MESSAGE_ID_CREATEQUERY_HEAP_JPEG_NOT_SUPPORTED,
    D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS,
    D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY,
    D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS,
    D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS,
    D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED,
    D3D12_MESSAGE_ID_UNSTABLE_POWER_STATE,
    D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT,
    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT,
    D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE,
    D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET,
    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP,
    D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID,
    D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID,
    D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS,
    D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION,

    // These values shipped, but are no longer used.  Do not reuse.
    //D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDCONTEXTTYPE,
    //D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_DECODENOTSUPPORTED, 
    //D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_ENCODENOTSUPPORTED,
    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANEINDEX = D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION + 4,
    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANEINDEX, 
    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_AMBIGUOUSVIDEOPLANEINDEX, 
    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANEINDEX,
    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANEINDEX,
    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_AMBIGUOUSVIDEOPLANEINDEX, 
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANEINDEX,
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANEINDEX,
    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_AMBIGUOUSVIDEOPLANEINDEX,
    D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSCANDATAOFFSET,
    D3D12_MESSAGE_ID_JPEGDECODE_NOTSUPPORTED,
    D3D12_MESSAGE_ID_JPEGDECODE_DIMENSIONSTOOLARGE,
    D3D12_MESSAGE_ID_JPEGDECODE_INVALIDCOMPONENTS,
    D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDCOMPONENTS, 
    D3D12_MESSAGE_ID_JPEGDECODE_DESTINATIONNOT2D, 
    D3D12_MESSAGE_ID_JPEGDECODE_TILEDRESOURCESUNSUPPORTED, 
    D3D12_MESSAGE_ID_JPEGDECODE_GUARDRECTSUNSUPPORTED,
    D3D12_MESSAGE_ID_JPEGDECODE_FORMATUNSUPPORTED,
    D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_JPEGDECODE_INVALIDMIPLEVEL,
    D3D12_MESSAGE_ID_JPEGDECODE_EMPTYDESTBOX,
    D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXNOT2D,
    D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXNOTSUB,
    D3D12_MESSAGE_ID_JPEGDECODE_DESTBOXESINTERSECT,
    D3D12_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEMISMATCH,
    D3D12_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEMISMATCH,
    D3D12_MESSAGE_ID_JPEGDECODE_XSUBSAMPLEODD,
    D3D12_MESSAGE_ID_JPEGDECODE_YSUBSAMPLEODD,
    D3D12_MESSAGE_ID_JPEGDECODE_UPSCALEUNSUPPORTED,
    D3D12_MESSAGE_ID_JPEGDECODE_TIER4DOWNSCALETOLARGE,
    D3D12_MESSAGE_ID_JPEGDECODE_TIER3DOWNSCALEUNSUPPORTED,
    D3D12_MESSAGE_ID_JPEGDECODE_CHROMASIZEMISMATCH,
    D3D12_MESSAGE_ID_JPEGDECODE_LUMACHROMASIZEMISMATCH,
    D3D12_MESSAGE_ID_JPEGDECODE_INVALIDNUMDESTINATIONS,
    D3D12_MESSAGE_ID_JPEGDECODE_SUBBOXUNSUPPORTED,
    D3D12_MESSAGE_ID_JPEGDECODE_1DESTUNSUPPORTEDFORMAT,
    D3D12_MESSAGE_ID_JPEGDECODE_3DESTUNSUPPORTEDFORMAT,
    D3D12_MESSAGE_ID_JPEGDECODE_SCALEUNSUPPORTED,
    D3D12_MESSAGE_ID_JPEGDECODE_INVALIDSOURCESIZE,
    D3D12_MESSAGE_ID_JPEGDECODE_INVALIDCOPYFLAGS,
    D3D12_MESSAGE_ID_JPEGDECODE_HAZARD,
    D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERUSAGE,
    D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDSRCBUFFERMISCFLAGS,
    D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDDSTTEXTUREUSAGE,
    D3D12_MESSAGE_ID_JPEGDECODE_BACKBUFFERNOTSUPPORTED,
    D3D12_MESSAGE_ID_JPEGDECODE_UNSUPPORTEDCOPYFLAGS,
    D3D12_MESSAGE_ID_JPEGENCODE_NOTSUPPORTED,
    D3D12_MESSAGE_ID_JPEGENCODE_INVALIDSCANDATAOFFSET,
    D3D12_MESSAGE_ID_JPEGENCODE_INVALIDCOMPONENTS,
    D3D12_MESSAGE_ID_JPEGENCODE_SOURCENOT2D,
    D3D12_MESSAGE_ID_JPEGENCODE_TILEDRESOURCESUNSUPPORTED,
    D3D12_MESSAGE_ID_JPEGENCODE_GUARDRECTSUNSUPPORTED,
    D3D12_MESSAGE_ID_JPEGENCODE_XSUBSAMPLEMISMATCH,
    D3D12_MESSAGE_ID_JPEGENCODE_YSUBSAMPLEMISMATCH,
    D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDCOMPONENTS,
    D3D12_MESSAGE_ID_JPEGENCODE_FORMATUNSUPPORTED,
    D3D12_MESSAGE_ID_JPEGENCODE_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_JPEGENCODE_INVALIDMIPLEVEL,
    D3D12_MESSAGE_ID_JPEGENCODE_DIMENSIONSTOOLARGE,
    D3D12_MESSAGE_ID_JPEGENCODE_HAZARD,
    D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERUSAGE,
    D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDDSTBUFFERMISCFLAGS,
    D3D12_MESSAGE_ID_JPEGENCODE_UNSUPPORTEDSRCTEXTUREUSAGE,
    D3D12_MESSAGE_ID_JPEGENCODE_BACKBUFFERNOTSUPPORTED,
    D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_UNSUPPORTEDCONTEXTTYPEFORQUERY,
    D3D12_MESSAGE_ID_FLUSH1_INVALIDCONTEXTTYPE,
    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE,
    D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT,
    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT,
    D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH,
    D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALIDDEPTH,
    D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE,
    D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE,
    D3D12_MESSAGE_ID_MAP_INVALIDHEAP,
    D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP,
    D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE,
    D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE,
    D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_MAP_INVALIDRANGE,
    D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE,
    D3D12_MESSAGE_ID_MAP_NULLRANGE,
    D3D12_MESSAGE_ID_UNMAP_NULLRANGE,
    D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER,
    D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN,
    D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN,
    D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED,
    D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH,
    D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST,
    D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST,
    D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST,
    D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION,
    D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS,
    D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC,
    D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION,
    D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS,
    D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX,
    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS,

    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX,
    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT,
    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH,
    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT,

    D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER,
    D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH,
    D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE,

    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB,
    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH,
    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH,
    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH,
    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED,
    D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP,
    D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE,
    D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX,
    D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX,
    D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP,
    D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE,
    D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX,
    D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE,
    D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX,

    D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED,
    D3D12_MESSAGE_ID_INVALID_NODE_INDEX,

    D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE,
    D3D12_MESSAGE_ID_NODE_MASK_MISMATCH,
    D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY,
    D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES,
    D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES,
    D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES,
    D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE,
    D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS,
    D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE,
    D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS,

    D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS,
    D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT,
    D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS,
    D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES,
    D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE,
    D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT,
    D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT,
    D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY,
    D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE,
    D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY,

    D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE,
    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS,

    D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE,

    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED,

    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT,

    D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS,

    D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED,

    D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_NEEDED,
    D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY,
    D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE,
    D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE,

    D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT,
    D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT,

    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED,

    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED,
    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS,
    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS,
    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED,
    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH,
    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH,
    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH,
    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE,

    D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST,
    D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE,
    D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC,
    D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE,

    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST,
    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE,
    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC,
    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE,

    D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH,
    D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET,
    D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH,

    D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS,

    D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH,

    D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH,

    D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END,

    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE,

    D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT,

    D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE,

    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS,

    D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB,
    D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH,
    D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH,
    D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED,
    D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY,
    D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY,
    D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY,

    D3D12_MESSAGE_ID_STOREPIPELINE_NONAME,
    D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME,
    D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND,
    D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC,
    D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY,

    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH,

    D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS,

    D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED,
    D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED,
    D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED,
    D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST,
    D3D12_MESSAGE_ID_CREATE_VIDEODECODER,
    D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM,
    D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST,
    D3D12_MESSAGE_ID_LIVE_VIDEODECODER,
    D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM,
    D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST,
    D3D12_MESSAGE_ID_DESTROY_VIDEODECODER,
    D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM,
    D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS,

    D3D12_MESSAGE_ID_DEPRECATED_API,

    D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE,

    D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET,
    D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET,
    D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET,
    D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET,

    D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE,
    D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS,
    D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D,

    D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE,

    D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE,

    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED,

    D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE,
    D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE,
    D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE,
    D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET,

    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS,
    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH,

    D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS,

    D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS,
    D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY,
    D3D12_MESSAGE_ID_CREATE_PASS,
    D3D12_MESSAGE_ID_DESTROY_PASS,
    D3D12_MESSAGE_ID_LIVE_PASS,
    D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS,

    D3D12_MESSAGE_ID_BEGIN_EVENT,
    D3D12_MESSAGE_ID_END_EVENT,

    D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS,

    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED,

    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT,
    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT,
    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM,
    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM,
    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE,

    D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH,

    D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME,
    D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME,

    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES,

    D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG,

    D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE,

    D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS,

    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE,

    D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET,

    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH,

    D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE,

    D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED,

    D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS,

    D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT,

    D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE,
    D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST,
    D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE,
    D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE,
    D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST,
    D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE,
    D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE,
    D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST,
    D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE,
    D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR,
    D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM,
    D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR,
    D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM,
    D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR,
    D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM,

    D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS,

    D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT,

    D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION = 1068,
    D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY = 1069,
    D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION = 1070,
    D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION = 1071,
    D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY = 1072,
    D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION = 1073,
    D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION = 1074,
    D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY = 1075,
    D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION = 1076,
    D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED = 1077,

    D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION = 1078,

    D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED = 1079,
    
    D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED = 1080,
    D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE = 1081,
    D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR = 1082,
    
    D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP = 1083,
    D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP = 1084,
    D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP = 1085,
    
    D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN = 1086,
    D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN = 1087,
    D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS = 1088,
    D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE = 1089,
    
    D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST = 1090,
    D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE = 1091,
    D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT = 1092,
    D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED = 1093,
 
    D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS = 1094,
    D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED = 1095,
    D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS = 1096,

    D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1097,
    D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1098,

    D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE = 1099,
    D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED = 1100,
    D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT = 1101,
    D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED = 1102,
    
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR = 1103,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED = 1104,
    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR = 1105,

    D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT = 1106,

    D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT = 1107,
    D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE = 1108,
    D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT = 1109,

    D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT = 1110,

    D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS = 1111,
    D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED = 1112,

    D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT = 1113,

    D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED = 1114,

    D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER = 1115,
    D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER = 1116,
    D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER = 1117,
    D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED = 1118,
    D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS = 1119,
    D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS = 1120,
    D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS = 1121,

    D3D12_MESSAGE_ID_CREATE_COMMANDPOOL = 1122,
    D3D12_MESSAGE_ID_LIVE_COMMANDPOOL = 1123,
    D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL = 1124,
    D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS = 1125,

    D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED = 1126,

    D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH = 1127,
    D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION = 1128,

    D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST = 1129,
    D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST = 1130,
    D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST = 1131,

    D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS = 1132,
    D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET = 1133,
    D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING = 1134,
    D3D12_MESSAGE_ID_COMMAND_POOL_SYNC = 1135,

    D3D12_MESSAGE_ID_EVICT_UNDERFLOW = 1136,

    D3D12_MESSAGE_ID_CREATE_META_COMMAND = 1137,
    D3D12_MESSAGE_ID_LIVE_META_COMMAND = 1138,
    D3D12_MESSAGE_ID_DESTROY_META_COMMAND = 1139,
    D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE = 1140,
    D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE = 1141,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE = 1142,
    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE = 1143,
    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER = 1144,
    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC = 1145,
    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED = 1146,
    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION = 1147,
    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS = 1148,
    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET = 1149,
    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION = 1150,
    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS = 1151,
    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN = 1152,

    D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER = 1153,
    D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES = 1154,

    D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE = 1155,

    D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS = 1156,

    D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED = 1157,

    D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1158,
    D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID = 1159,
    D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1160,
    D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID = 1161,
    D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID = 1162,

    D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER = 1163,
    D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER = 1164,
    D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER = 1165,
    D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED = 1166,

    D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD = 1167,
    D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD = 1168,
    D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD = 1169,

    D3D12_MESSAGE_ID_RENDER_PASS_ERROR = 1170,

    D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID = 1171,
    D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS = 1172,
    D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION = 1173,
    D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH = 1174,
    D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND = 1175,
    D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS = 1176,

    D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST = 1177,
    D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST = 1178,
    D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST = 1179,

    D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE = 1180,
    D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE = 1181,
    D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE = 1182,

    D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR = 1183,
    D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR = 1184,
    D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR = 1185,

    D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP = 1186,
    D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP = 1187,
    D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP = 1188,

    D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS = 1189,
    D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS = 1190,
    D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR = 1191,
    D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD = 1192,
    D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR = 1193,
    D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR = 1194,
    D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR = 1195,
    D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR = 1196,
    D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR = 1197,
    D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR = 1198,
    D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID = 1199,
    D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID = 1200,
    D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE = 1201,

    D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER = 1202,
    D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED = 1203,
    D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES = 1204,
    D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN = 1205,
    D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST = 1206,
    D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED = 1207,
    D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME = 1208,
    D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS = 1209,
    D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS = 1210,

    D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH = 1211,
    D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED = 1212,

    D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS = 1213,
    D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE = 1214,

    D3D12_MESSAGE_ID_D3D12_MESSAGES_END
} D3D12_MESSAGE_ID;

// RS1 Message ID compat
cpp_quote("static_assert(D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED == 1000, \"Publicly released SDK D3D12_MESSAGE_ID enum values must not be changed. New enum values must be added to the end of the list.\");")

// RS2 Message ID compat
cpp_quote("static_assert(D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT == 1067, \"Publicly released SDK D3D12_MESSAGE_ID enum values must not be changed. New enum values must be added to the end of the list.\");")

typedef struct D3D12_MESSAGE
{
    D3D12_MESSAGE_CATEGORY  Category;
    D3D12_MESSAGE_SEVERITY  Severity;
    D3D12_MESSAGE_ID        ID;
    [annotation("_Field_size_(DescriptionByteLength)")] const char*             pDescription;
    SIZE_T                  DescriptionByteLength;
} D3D12_MESSAGE;

typedef struct D3D12_INFO_QUEUE_FILTER_DESC
{
    UINT                    NumCategories;
    [annotation("_Field_size_(NumCategories)")] D3D12_MESSAGE_CATEGORY* pCategoryList;
    UINT                    NumSeverities;
    [annotation("_Field_size_(NumSeverities)")] D3D12_MESSAGE_SEVERITY* pSeverityList;
    UINT                    NumIDs;
    [annotation("_Field_size_(NumIDs)")] D3D12_MESSAGE_ID*       pIDList;
} D3D12_INFO_QUEUE_FILTER_DESC;

// To use, memset to 0, then fill in what you need.
typedef struct D3D12_INFO_QUEUE_FILTER
{
    D3D12_INFO_QUEUE_FILTER_DESC AllowList;
    D3D12_INFO_QUEUE_FILTER_DESC DenyList;
} D3D12_INFO_QUEUE_FILTER;

//=============================================================================
// ID3D12InfoQueue
//
// Logs D3D12 Messages.
// This interface can be queried from ID3D12Device, as long as the device
// was created with the debug layer.
//
//
cpp_quote("#define D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024")
[uuid(0742a90b-c387-483f-b946-30a7e4e61458), object, local, pointer_default(unique)]
interface ID3D12InfoQueue
    : IUnknown
{
    //=========================================================================
    // Methods for configuring how much data is stored in the queue.

    // SetMessageCountLimit()
    // This sets how many messages are stored.  When the queue is full,
    // new messages coming in push old messages out.
    // Passing -1 to SetMessageCountLimit means the queue has
    // unlimited size (go until out of memory or ClearStoredMessages()).
    // The default message count size is
    // D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT
    // Returns S_OK or E_INVALIDARG.
    HRESULT SetMessageCountLimit([annotation("_In_")]  UINT64 MessageCountLimit);

    // ClearStoredMessages
    void    ClearStoredMessages();

    //=========================================================================
    // Methods for retrieving data or statistics from the queue.

    // GetMessage()
    // Retrieves messages, one at a time, from the queue which pass any
    // retrieval filter currently defined.  If there is no retrieval filter,
    // all messages can be retrieved.
    // The MessageIndex parameter is a 0 based index into the results passing
    // the filter.  The number of results is returned by
    // GetNumStoredMessagesAllowedByRetrievalFilter().
    //
    // Note this does not remove the message from the queue.
    //
    // pMessageByteLength inputs the size of the buffer passed in via
    // pMessage, and outputs the size of the message.  pMessage can be NULL
    // when the size of the required buffer is being queried (return S_FALSE).
    //
    // NOTE: The returned buffer pMessage is NOT just the size of D3D12_MESSAGE,
    // it includes extra memory after the D3D12_MESSAGE for storing the string
    // description, which is pointed to from within D3D12_MESSAGE.  Therefore
    // applications should check the size needed for pMessage as described above.
    //
    // Watch out for thread safety when making consecutive calls first to
    // determine the buffer size required and then to pass in the buffer and
    // retrieve the message, and also between calling
    // GetNumStoredMessagesAllowedByRetrievalFilter() and enumerating through
    // the results via GetMessagE().
    //
    // Returns: S_OK, S_FALSE, E_INVALIDARG or E_OUTOFMEMORY.
    HRESULT GetMessage(
        [annotation("_In_")]    UINT64  MessageIndex,
        [annotation("_Out_writes_bytes_opt_(*pMessageByteLength)")] D3D12_MESSAGE* pMessage,
        [annotation("_Inout_")] SIZE_T*  pMessageByteLength);

    // GetNumMessagesAllowedByStorageFilter()
    // Returns how many messages sent to the queue passed
    // whatever storage filter was active upon receipt of
    // the message.
    // This can be a larger value than the message count limit,
    // returned by GetMessageCountLimit(), since old messages are discarded
    // when the queue is full to prevent overflow.
    UINT64  GetNumMessagesAllowedByStorageFilter();

    // GetNumMessagesDeniedByStorageFilter()
    UINT64  GetNumMessagesDeniedByStorageFilter();

    // GetNumStoredMessages()
    // Returns how many messages are currently stored in the queue.
    UINT64  GetNumStoredMessages();

    // GetNumStoredMessagesAllowedByRetrievalFilter()
    // Returns how many messages that are currently in the queue
    // pass any retrieval filter that is currently set.
    // The MessageIndex parameter to GetMessage() indexes
    // an array of this many results.
    UINT64  GetNumStoredMessagesAllowedByRetrievalFilter();

    // GetNumMessagesDiscardedByMessageCountLimit()
    UINT64  GetNumMessagesDiscardedByMessageCountLimit();

    // GetMessageCountLimit
    // This is how many messages can be stored in the queue.
    // When the queue is full, new messages coming in push old messages out.
    // -1 means there is no limit.
    UINT64  GetMessageCountLimit();

    //=========================================================================
    // Methods for filtering what gets stored in the queue

    // AddStorageFilterEntries()
    // Adds to the existing entries at top of stack
    // Returns: S_OK, E_INVALIDARG or E_OUTOFMEMORY.
    HRESULT AddStorageFilterEntries(
        [annotation("_In_")]   D3D12_INFO_QUEUE_FILTER* pFilter);

    // GetStorageFilter()
    // Gets all entries at top of stack.
    // The application must allocate the output buffer.  The size required can be
    // queried by passing null for pFilter and looking at the returned
    // pFilterByteLength (HRESULT is S_FALSE). Note that D3D12_INFO_QUEUE_FILTER contains
    // pointers - these will point to locations within the same
    // contiguous buffer - *pFilterByteLength is the total storage needed for all
    // data.  So the application needs to only allocate/free the memory for pFilter.
    // Returns S_OK, S_FALSE, E_INVALIDARG or E_OUTOFMEMORY
    HRESULT GetStorageFilter(
        [annotation("_Out_writes_bytes_opt_(*pFilterByteLength)")] D3D12_INFO_QUEUE_FILTER* pFilter,
        [annotation("_Inout_")] SIZE_T* pFilterByteLength);

    // ClearStorageFilter()
    // Clears filter at the top of the stack (if there is one)
    void    ClearStorageFilter();

    // PushEmptyStorageFilter()
    // Push an empty storage filter on the stack to allow local filtering changes.
    // For convenience, this is automatically called by SetStorageFilter()
    // if the stack is empty.  Thus if the stack is not needed, filters can be
    // defined without ever bothering to push or pop.
    // Returns S_OK or E_OUTOFMEMORY
    HRESULT PushEmptyStorageFilter();

    // PushCopyOfStorageFilter()
    // Push a copy of the current filter so that local modifications can be made
    // starting from what currently exists.
    // Returns S_OK or E_OUTOFMEMORY
    HRESULT PushCopyOfStorageFilter();

    // PushStorageFilter()
    // Push a filter passed as a parameter onto the stack.  This is
    // just a helper for calling PushEmptyStorageFilter() followed
    // by AddStorageFilterEntries()
    // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY.
    HRESULT PushStorageFilter(
        [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter);

    // PopStorageFilter()
    // Pop the current storage filter off the stack (if there is one)
    void    PopStorageFilter();

    // GetStorageFilterStackSize()
    UINT    GetStorageFilterStackSize();

    //=========================================================================
    // Methods for filtering what gets read out of the queue by GetMessage().

    // AddRetrievalFilterEntries()
    // Adds to the existing entries at top of stack
    // Returns: S_OK, E_INVALIDARG or E_OUTOFMEMORY.
    HRESULT AddRetrievalFilterEntries(
        [annotation("_In_")]   D3D12_INFO_QUEUE_FILTER* pFilter);

    // GetRetrievalFilter()
    // Gets all entries at top of stack.
    // The application must allocate the output buffer.  The size required can be
    // queried by passing null for pFilter and looking at the returned
    // pFilterByteLength (HRESULT is S_FALSE).  Note that D3D12_INFO_QUEUE_FILTER contains
    // pointers - these will point to locations within the same
    // contiguous buffer - *pFilterByteLength is the total storage needed for all
    // data.  So the application needs to only allocate/free the memory for pFilter.
    // Returns S_OK, S_FALSE, E_INVALIDARG or E_OUTOFMEMORY
    HRESULT GetRetrievalFilter(
        [annotation("_Out_writes_bytes_opt_(*pFilterByteLength)")] D3D12_INFO_QUEUE_FILTER* pFilter,
        [annotation("_Inout_")] SIZE_T* pFilterByteLength);

    // ClearRetrievalFilter()
    // Clears filter at the top of the stack (if there is one)
    void    ClearRetrievalFilter();

    // PushEmptyRetrievalFilter()
    // Push an empty storage filter on the stack to allow local filtering changes.
    // For convenience, this is automatically called by SetRetrievalFilter()
    // if the stack is empty.  Thus if the stack is not needed, filters can be
    // defined without ever bothering to push or pop.
    // Returns S_OK or E_OUTOFMEMORY
    HRESULT PushEmptyRetrievalFilter();

    // PushCopyOfRetrievalFilter()
    // Push a copy of the current filter so that local modifications can be made
    // starting from what currently exists.
    // Returns S_OK or E_OUTOFMEMORY
    HRESULT PushCopyOfRetrievalFilter();

    // PushRetrievalFilter()
    // Push a filter passed as a parameter onto the stack.  This is
    // just a helper for calling PushEmptyRetrievalFilter() followed
    // by AddRetrievalFilterEntries()
    // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY.
    HRESULT PushRetrievalFilter(
        [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter);

    // PopRetrievalFilter()
    // Pop the current storage filter off the stack (if there is one)
    void    PopRetrievalFilter();

    // GetRetrievalFilterStackSize()
    UINT    GetRetrievalFilterStackSize();

    //=========================================================================
    //  Methods for adding entries to the queue.

    // AddMessage()
    // This is used by D3D12 components to log messages.  Nothing stops
    // applications from calling this, but it isn’t particularly useful.
    // If an application wishes to insert custom strings into the queue,
    // AddApplicationMessage() below is suggested.  See below.
    //
    // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY
    HRESULT AddMessage(
        [annotation("_In_")]    D3D12_MESSAGE_CATEGORY Category,
        [annotation("_In_")]    D3D12_MESSAGE_SEVERITY Severity,
        [annotation("_In_")]    D3D12_MESSAGE_ID       ID,
        [annotation("_In_")]    LPCSTR                pDescription);

    // AddApplicationMessage()
    // This is a convenience for applications that want
    // to insert strings of their own into the queue, perhaps to log issues
    // of its own, or to mark out points in time in the queue.  This
    // has the same effect as calling AddMessage() above with the
    // following settings:
    //          Category = D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED
    //          Severity = <app selects from D3D12_MESSAGE_SEVERITY>
    //          ID       = D3D12_MESSAGE_ID_STRING_FROM_APPLICATION
    //          pDescription = <application provided string>
    //
    // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY
    HRESULT AddApplicationMessage(
        [annotation("_In_")] D3D12_MESSAGE_SEVERITY Severity,
        [annotation("_In_")] LPCSTR                pDescription);

    //=========================================================================
    //  Methods for breaking on errors that pass the storage filter.
    HRESULT SetBreakOnCategory(
        [annotation("_In_")]    D3D12_MESSAGE_CATEGORY Category,
        [annotation("_In_")]    BOOL bEnable);
    HRESULT SetBreakOnSeverity(
        [annotation("_In_")]    D3D12_MESSAGE_SEVERITY Severity,
        [annotation("_In_")]    BOOL bEnable);
    HRESULT SetBreakOnID(
        [annotation("_In_")]    D3D12_MESSAGE_ID ID,
        [annotation("_In_")]    BOOL bEnable);

    BOOL GetBreakOnCategory(
        [annotation("_In_")]    D3D12_MESSAGE_CATEGORY Category);
    BOOL GetBreakOnSeverity(
        [annotation("_In_")]    D3D12_MESSAGE_SEVERITY Severity);
    BOOL GetBreakOnID(
        [annotation("_In_")]    D3D12_MESSAGE_ID ID);

    //=========================================================================
    //  Methods for globally muting debug spte from the InfoQueue
    void SetMuteDebugOutput(
        [annotation("_In_")]    BOOL bMute);
    BOOL GetMuteDebugOutput();
};



cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */")
#pragma endregion

cpp_quote( "DEFINE_GUID(IID_ID3D12Debug,0x344488b7,0x6846,0x474b,0xb9,0x89,0xf0,0x27,0x44,0x82,0x45,0xe0);" )
cpp_quote( "DEFINE_GUID(IID_ID3D12Debug1,0xaffaa4ca,0x63fe,0x4d8e,0xb8,0xad,0x15,0x90,0x00,0xaf,0x43,0x04);" )
cpp_quote( "DEFINE_GUID(IID_ID3D12Debug2,0x93a665c4,0xa3b2,0x4e5d,0xb6,0x92,0xa2,0x6a,0xe1,0x4e,0x33,0x74);" )
cpp_quote( "DEFINE_GUID(IID_ID3D12Debug3,0x5cf4e58f,0xf671,0x4ff1,0xa5,0x42,0x36,0x86,0xe3,0xd1,0x53,0xd1);" )
cpp_quote( "DEFINE_GUID(IID_ID3D12DebugDevice1,0xa9b71770,0xd099,0x4a65,0xa6,0x98,0x3d,0xee,0x10,0x02,0x0f,0x88);" )
cpp_quote( "DEFINE_GUID(IID_ID3D12DebugDevice,0x3febd6dd,0x4973,0x4787,0x81,0x94,0xe4,0x5f,0x9e,0x28,0x92,0x3e);" )
cpp_quote( "DEFINE_GUID(IID_ID3D12DebugDevice2,0x60eccbc1,0x378d,0x4df1,0x89,0x4c,0xf8,0xac,0x5c,0xe4,0xd7,0xdd);" )
cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandQueue,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3a);" )
cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList1,0x102ca951,0x311b,0x4b01,0xb1,0x1f,0xec,0xb8,0x3e,0x06,0x1b,0x37);" )
cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3f);" )
cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList2,0xaeb575cf,0x4e06,0x48be,0xba,0x3b,0xc4,0x50,0xfc,0x96,0x65,0x2e);" )
cpp_quote( "DEFINE_GUID(IID_ID3D12SharingContract,0x0adf7d52,0x929c,0x4e61,0xad,0xdb,0xff,0xed,0x30,0xde,0x66,0xef);" )
cpp_quote( "DEFINE_GUID(IID_ID3D12InfoQueue,0x0742a90b,0xc387,0x483f,0xb9,0x46,0x30,0xa7,0xe4,0xe6,0x14,0x58);" )
