From: Biswapriyo Nath nathbappai@gmail.com
Signed-off-by: Biswapriyo Nath nathbappai@gmail.com --- include/dxgidebug.idl | 203 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 203 insertions(+)
diff --git a/include/dxgidebug.idl b/include/dxgidebug.idl index 2daeb674f97..7806e0be013 100644 --- a/include/dxgidebug.idl +++ b/include/dxgidebug.idl @@ -18,6 +18,10 @@
import "oaidl.idl";
+const UINT DXGI_DEBUG_BINARY_VERSION = 1; + +typedef GUID DXGI_DEBUG_ID; + cpp_quote("DEFINE_GUID(DXGI_DEBUG_ALL, 0xe48ae283, 0xda80, 0x490b,0x87, 0xe6, 0x43, 0xe9, 0xa9, 0xcf, 0xda, 0x08);") cpp_quote("DEFINE_GUID(DXGI_DEBUG_DX, 0x35cdd7fc, 0x13b2, 0x421d,0xa5, 0xd7, 0x7e, 0x44, 0x51, 0x28, 0x7d, 0x64);") cpp_quote("DEFINE_GUID(DXGI_DEBUG_DXGI, 0x25cddaa4, 0xb1c6, 0x47e1,0xac, 0x3e, 0x98, 0x87, 0x5b, 0x5a, 0x2e, 0x2a);") @@ -30,6 +34,205 @@ typedef enum DXGI_DEBUG_RLO_FLAGS { DXGI_DEBUG_RLO_ALL = 0x0007 } DXGI_DEBUG_RLO_FLAGS;
+typedef enum DXGI_INFO_QUEUE_MESSAGE_CATEGORY { + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_UNKNOWN, + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_MISCELLANEOUS, + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_INITIALIZATION, + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_CLEANUP, + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_COMPILATION, + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_CREATION, + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_SETTING, + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_GETTING, + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_RESOURCE_MANIPULATION, + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_EXECUTION, + DXGI_INFO_QUEUE_MESSAGE_CATEGORY_SHADER, +} DXGI_INFO_QUEUE_MESSAGE_CATEGORY; + +typedef enum DXGI_INFO_QUEUE_MESSAGE_SEVERITY { + DXGI_INFO_QUEUE_MESSAGE_SEVERITY_CORRUPTION, + DXGI_INFO_QUEUE_MESSAGE_SEVERITY_ERROR, + DXGI_INFO_QUEUE_MESSAGE_SEVERITY_WARNING, + DXGI_INFO_QUEUE_MESSAGE_SEVERITY_INFO, + DXGI_INFO_QUEUE_MESSAGE_SEVERITY_MESSAGE +} DXGI_INFO_QUEUE_MESSAGE_SEVERITY; + +typedef int DXGI_INFO_QUEUE_MESSAGE_ID; +cpp_quote("#define DXGI_INFO_QUEUE_MESSAGE_ID_STRING_FROM_APPLICATION 0") + +typedef struct DXGI_INFO_QUEUE_MESSAGE { + DXGI_DEBUG_ID Producer; + DXGI_INFO_QUEUE_MESSAGE_CATEGORY Category; + DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity; + DXGI_INFO_QUEUE_MESSAGE_ID ID; + const char *pDescription; + SIZE_T DescriptionByteLength; +} DXGI_INFO_QUEUE_MESSAGE; + +typedef struct DXGI_INFO_QUEUE_FILTER_DESC { + UINT NumCategories; + DXGI_INFO_QUEUE_MESSAGE_CATEGORY *pCategoryList; + UINT NumSeverities; + DXGI_INFO_QUEUE_MESSAGE_SEVERITY *pSeverityList; + UINT NumIDs; + DXGI_INFO_QUEUE_MESSAGE_ID *pIDList; +} DXGI_INFO_QUEUE_FILTER_DESC; + +typedef struct DXGI_INFO_QUEUE_FILTER { + DXGI_INFO_QUEUE_FILTER_DESC AllowList; + DXGI_INFO_QUEUE_FILTER_DESC DenyList; +} DXGI_INFO_QUEUE_FILTER; + +cpp_quote("#define DXGI_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024") + +cpp_quote("HRESULT WINAPI DXGIGetDebugInterface(REFIID riid, void **ppDebug);") + +[ + uuid(d67441c7-672a-476f-9e82-cd55b44949ce), + object, + local, + pointer_default(unique) +] +interface IDXGIInfoQueue : IUnknown +{ + HRESULT SetMessageCountLimit( + [in] DXGI_DEBUG_ID producer, + [in] UINT64 limit); + + void ClearStoredMessages( + [in] DXGI_DEBUG_ID producer); + + HRESULT GetMessage( + [in] DXGI_DEBUG_ID producer, + [in] UINT64 index, + [out] DXGI_INFO_QUEUE_MESSAGE *message, + [in, out] SIZE_T *length); + + UINT64 GetNumStoredMessagesAllowedByRetrievalFilters( + [in] DXGI_DEBUG_ID producer); + + UINT64 GetNumStoredMessages( + [in] DXGI_DEBUG_ID producer); + + UINT64 GetNumMessagesDiscardedByMessageCountLimit( + [in] DXGI_DEBUG_ID producer); + + UINT64 GetMessageCountLimit( + [in] DXGI_DEBUG_ID producer); + + UINT64 GetNumMessagesAllowedByStorageFilter( + [in] DXGI_DEBUG_ID producer); + + UINT64 GetNumMessagesDeniedByStorageFilter( + [in] DXGI_DEBUG_ID producer); + + HRESULT AddStorageFilterEntries( + [in] DXGI_DEBUG_ID producer, + [in] DXGI_INFO_QUEUE_FILTER *filter); + + HRESULT GetStorageFilter( + [in] DXGI_DEBUG_ID producer, + [out] DXGI_INFO_QUEUE_FILTER *filter, + [in, out] SIZE_T *length); + + void ClearStorageFilter( + [in] DXGI_DEBUG_ID producer); + + HRESULT PushEmptyStorageFilter( + [in] DXGI_DEBUG_ID producer); + + HRESULT PushDenyAllStorageFilter( + [in] DXGI_DEBUG_ID producer); + + HRESULT PushCopyOfStorageFilter( + [in] DXGI_DEBUG_ID producer); + + HRESULT PushStorageFilter( + [in] DXGI_DEBUG_ID producer, + [in] DXGI_INFO_QUEUE_FILTER *filter); + + void PopStorageFilter( + [in] DXGI_DEBUG_ID producer); + + UINT GetStorageFilterStackSize( + [in] DXGI_DEBUG_ID producer); + + HRESULT AddRetrievalFilterEntries( + [in] DXGI_DEBUG_ID producer, + [in] DXGI_INFO_QUEUE_FILTER *filter); + + HRESULT GetRetrievalFilter( + [in] DXGI_DEBUG_ID producer, + [out] DXGI_INFO_QUEUE_FILTER *filter, + [in, out] SIZE_T *length); + + void ClearRetrievalFilter( + [in] DXGI_DEBUG_ID producer); + + HRESULT PushEmptyRetrievalFilter( + [in] DXGI_DEBUG_ID producer); + + HRESULT PushDenyAllRetrievalFilter( + [in] DXGI_DEBUG_ID producer); + + HRESULT PushCopyOfRetrievalFilter( + [in] DXGI_DEBUG_ID producer); + + HRESULT PushRetrievalFilter( + [in] DXGI_DEBUG_ID producer, + [in] DXGI_INFO_QUEUE_FILTER *filter); + + void PopRetrievalFilter( + [in] DXGI_DEBUG_ID producer); + + UINT GetRetrievalFilterStackSize( + [in] DXGI_DEBUG_ID producer); + + HRESULT AddMessage( + [in] DXGI_DEBUG_ID producer, + [in] DXGI_INFO_QUEUE_MESSAGE_CATEGORY category, + [in] DXGI_INFO_QUEUE_MESSAGE_SEVERITY severity, + [in] DXGI_INFO_QUEUE_MESSAGE_ID id, + [in] LPCSTR description); + + HRESULT AddApplicationMessage( + [in] DXGI_INFO_QUEUE_MESSAGE_SEVERITY severity, + [in] LPCSTR description); + + HRESULT SetBreakOnCategory( + [in] DXGI_DEBUG_ID producer, + [in] DXGI_INFO_QUEUE_MESSAGE_CATEGORY category, + [in] BOOL enable); + + HRESULT SetBreakOnSeverity( + [in] DXGI_DEBUG_ID producer, + [in] DXGI_INFO_QUEUE_MESSAGE_SEVERITY severity, + [in] BOOL enable); + + HRESULT SetBreakOnID( + [in] DXGI_DEBUG_ID producer, + [in] DXGI_INFO_QUEUE_MESSAGE_ID id, + [in] BOOL enable); + + BOOL GetBreakOnCategory( + [in] DXGI_DEBUG_ID producer, + [in] DXGI_INFO_QUEUE_MESSAGE_CATEGORY category); + + BOOL GetBreakOnSeverity( + [in] DXGI_DEBUG_ID producer, + [in] DXGI_INFO_QUEUE_MESSAGE_SEVERITY severity); + + BOOL GetBreakOnID( + [in] DXGI_DEBUG_ID producer, + [in] DXGI_INFO_QUEUE_MESSAGE_ID id); + + void SetMuteDebugOutput( + [in] DXGI_DEBUG_ID producer, + [in] BOOL mute); + + BOOL GetMuteDebugOutput( + [in] DXGI_DEBUG_ID producer); +} + [ object, local,
From: Biswapriyo Nath nathbappai@gmail.com
Signed-off-by: Biswapriyo Nath nathbappai@gmail.com --- include/dxgidebug.idl | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/include/dxgidebug.idl b/include/dxgidebug.idl index 7806e0be013..686637321f0 100644 --- a/include/dxgidebug.idl +++ b/include/dxgidebug.idl @@ -244,3 +244,16 @@ interface IDXGIDebug : IUnknown [in] GUID apiid, [in] DXGI_DEBUG_RLO_FLAGS flags); } + +[ + uuid(c5a05f0c-16f2-4adf-9f4d-a8c4d58ac550), + object, + local, + pointer_default(unique) +] +interface IDXGIDebug1 : IDXGIDebug +{ + void EnableLeakTrackingForThread(); + void DisableLeakTrackingForThread(); + BOOL IsLeakTrackingEnabledForThread(); +}