[PATCH 1/2] include: Add IDXGIInfoQueue declaration in dxgidebug.idl.
Biswapriyo Nath
wine at gitlab.winehq.org
Fri Jun 17 15:37:21 CDT 2022
From: Biswapriyo Nath <nathbappai at gmail.com>
Signed-off-by: Biswapriyo Nath <nathbappai at 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,
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/270
More information about the wine-devel
mailing list