include: Add the ID3D12DeviceRemovedExtendedData{,1,2} interfaces.

Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
Martin Storsjö 2023-09-06 18:00:26 +03:00 committed by Alexandre Julliard
parent 4f4afab3d5
commit edaf7fbd88
Notes: Alexandre Julliard 2023-09-13 23:18:09 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/332

View File

@ -3691,6 +3691,107 @@ interface ID3D12Device5 : ID3D12Device4
const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check); const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *identifier_to_check);
} }
typedef enum D3D12_AUTO_BREADCRUMB_OP
{
D3D12_AUTO_BREADCRUMB_OP_SETMARKER = 0x0,
D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = 0x1,
D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = 0x2,
D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = 0x3,
D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = 0x4,
D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = 0x5,
D3D12_AUTO_BREADCRUMB_OP_DISPATCH = 0x6,
D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = 0x7,
D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = 0x8,
D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = 0x9,
D3D12_AUTO_BREADCRUMB_OP_COPYTILES = 0xa,
D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = 0xb,
D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = 0xc,
D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = 0xd,
D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = 0xe,
D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = 0xf,
D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = 0x10,
D3D12_AUTO_BREADCRUMB_OP_PRESENT = 0x11,
D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = 0x12,
D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = 0x13,
D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = 0x14,
D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = 0x15,
D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = 0x16,
D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = 0x17,
D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = 0x18,
D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = 0x19,
D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = 0x1a,
D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = 0x1b,
D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = 0x1c,
D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = 0x1d,
D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = 0x1e,
D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 0x1f,
D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 0x20,
D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = 0x21,
D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = 0x22,
D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = 0x23,
D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = 0x24,
D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = 0x25,
D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = 0x26,
D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = 0x27,
D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = 0x28,
D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = 0x29,
D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = 0x2a,
D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = 0x2b,
D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = 0x2c,
} D3D12_AUTO_BREADCRUMB_OP;
typedef struct D3D12_AUTO_BREADCRUMB_NODE
{
const char *pCommandListDebugNameA;
const WCHAR *pCommandListDebugNameW;
const char *pCommandQueueDebugNameA;
const WCHAR *pCommandQueueDebugNameW;
ID3D12GraphicsCommandList *pCommandList;
ID3D12CommandQueue *pCommandQueue;
UINT32 BreadcrumbCount;
const UINT32 *pLastBreadcrumbValue;
const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
const struct D3D12_AUTO_BREADCRUMB_NODE *pNext;
} D3D12_AUTO_BREADCRUMB_NODE;
typedef struct D3D12_DRED_BREADCRUMB_CONTEXT
{
UINT BreadcrumbIndex;
const WCHAR *pContextString;
} D3D12_DRED_BREADCRUMB_CONTEXT;
typedef struct D3D12_AUTO_BREADCRUMB_NODE1
{
const char *pCommandListDebugNameA;
const WCHAR *pCommandListDebugNameW;
const char *pCommandQueueDebugNameA;
const WCHAR *pCommandQueueDebugNameW;
ID3D12GraphicsCommandList *pCommandList;
ID3D12CommandQueue *pCommandQueue;
UINT BreadcrumbCount;
const UINT *pLastBreadcrumbValue;
const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory;
const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext;
UINT BreadcrumbContextsCount;
D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts;
} D3D12_AUTO_BREADCRUMB_NODE1;
typedef enum D3D12_DRED_VERSION
{
D3D12_DRED_VERSION_1_0 = 0x1,
D3D12_DRED_VERSION_1_1 = 0x2,
D3D12_DRED_VERSION_1_2 = 0x3,
D3D12_DRED_VERSION_1_3 = 0x4,
} D3D12_DRED_VERSION;
typedef enum D3D12_DRED_FLAGS
{
D3D12_DRED_FLAG_NONE = 0x0,
D3D12_DRED_FLAG_FORCE_ENABLE = 0x1,
D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 0x2,
} D3D12_DRED_FLAGS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DRED_FLAGS);")
typedef enum D3D12_DRED_ENABLEMENT typedef enum D3D12_DRED_ENABLEMENT
{ {
D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0x0, D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0x0,
@ -3698,6 +3799,142 @@ typedef enum D3D12_DRED_ENABLEMENT
D3D12_DRED_ENABLEMENT_FORCED_ON = 0x2, D3D12_DRED_ENABLEMENT_FORCED_ON = 0x2,
} D3D12_DRED_ENABLEMENT; } D3D12_DRED_ENABLEMENT;
typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA
{
D3D12_DRED_FLAGS Flags;
D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
} D3D12_DEVICE_REMOVED_EXTENDED_DATA;
typedef enum D3D12_DRED_ALLOCATION_TYPE
{
D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 0x13,
D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 0x14,
D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 0x15,
D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 0x16,
D3D12_DRED_ALLOCATION_TYPE_FENCE = 0x17,
D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 0x18,
D3D12_DRED_ALLOCATION_TYPE_HEAP = 0x19,
D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 0x1b,
D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 0x1c,
D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 0x1d,
D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 0x1e,
D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 0x20,
D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 0x22,
D3D12_DRED_ALLOCATION_TYPE_PASS = 0x23,
D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 0x24,
D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 0x25,
D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 0x26,
D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 0x27,
D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 0x28,
D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 0x29,
D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 0x2a,
D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 0x2b,
D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 0x2c,
D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 0x2d,
D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 0x2e,
D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 0x2f,
D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 0x30,
D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 0x31,
D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xffffffff,
} D3D12_DRED_ALLOCATION_TYPE;
typedef struct D3D12_DRED_ALLOCATION_NODE
{
const char *ObjectNameA;
const WCHAR *ObjectNameW;
D3D12_DRED_ALLOCATION_TYPE AllocationType;
const struct D3D12_DRED_ALLOCATION_NODE *pNext;
} D3D12_DRED_ALLOCATION_NODE;
typedef struct D3D12_DRED_ALLOCATION_NODE1
{
const char *ObjectNameA;
const WCHAR *ObjectNameW;
D3D12_DRED_ALLOCATION_TYPE AllocationType;
const struct D3D12_DRED_ALLOCATION_NODE1 *pNext;
const IUnknown *pObject;
} D3D12_DRED_ALLOCATION_NODE1;
typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT
{
const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode;
} D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT;
typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1
{
const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode;
} D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1;
typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT
{
D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode;
const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode;
} D3D12_DRED_PAGE_FAULT_OUTPUT;
typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1
{
D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
} D3D12_DRED_PAGE_FAULT_OUTPUT1;
typedef enum D3D12_DRED_PAGE_FAULT_FLAGS
{
D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0x0,
} D3D12_DRED_PAGE_FAULT_FLAGS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DRED_PAGE_FAULT_FLAGS);")
typedef enum D3D12_DRED_DEVICE_STATE
{
D3D12_DRED_DEVICE_STATE_UNKNOWN = 0x0,
D3D12_DRED_DEVICE_STATE_HUNG = 0x3,
D3D12_DRED_DEVICE_STATE_FAULT = 0x6,
D3D12_DRED_DEVICE_STATE_PAGEFAULT = 0x7,
} D3D12_DRED_DEVICE_STATE;
typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2
{
D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA;
const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode;
const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode;
D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags;
} D3D12_DRED_PAGE_FAULT_OUTPUT2;
typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1
{
HRESULT DeviceRemovedReason;
D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput;
D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput;
} D3D12_DEVICE_REMOVED_EXTENDED_DATA1;
typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2
{
HRESULT DeviceRemovedReason;
D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput;
} D3D12_DEVICE_REMOVED_EXTENDED_DATA2;
typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3
{
HRESULT DeviceRemovedReason;
D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput;
D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput;
D3D12_DRED_DEVICE_STATE DeviceState;
} D3D12_DEVICE_REMOVED_EXTENDED_DATA3;
typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA
{
D3D12_DRED_VERSION Version;
union
{
D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0;
D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1;
D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2;
D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3;
};
} D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA;
[ [
uuid(82bc481c-6b9b-4030-aedb-7ee3d1df1e63), uuid(82bc481c-6b9b-4030-aedb-7ee3d1df1e63),
object, object,
@ -3722,6 +3959,42 @@ interface ID3D12DeviceRemovedExtendedDataSettings1 : ID3D12DeviceRemovedExtended
void SetBreadcrumbContextEnablement(D3D12_DRED_ENABLEMENT enablement); void SetBreadcrumbContextEnablement(D3D12_DRED_ENABLEMENT enablement);
} }
[
uuid(98931d33-5ae8-4791-aa3c-1a73a2934e71),
object,
local,
pointer_default(unique)
]
interface ID3D12DeviceRemovedExtendedData : IUnknown
{
HRESULT GetAutoBreadcrumbsOutput(D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *output);
HRESULT GetPageFaultAllocationOutput(D3D12_DRED_PAGE_FAULT_OUTPUT *output);
}
[
uuid(9727a022-cf1d-4dda-9eba-effa653fc506),
object,
local,
pointer_default(unique)
]
interface ID3D12DeviceRemovedExtendedData1 : ID3D12DeviceRemovedExtendedData
{
HRESULT GetAutoBreadcrumbsOutput1(D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *output);
HRESULT GetPageFaultAllocationOutput1(D3D12_DRED_PAGE_FAULT_OUTPUT1 *output);
}
[
uuid(67fc5816-e4ca-4915-bf18-42541272da54),
object,
local,
pointer_default(unique)
]
interface ID3D12DeviceRemovedExtendedData2 : ID3D12DeviceRemovedExtendedData1
{
HRESULT GetPageFaultAllocationOutput2(D3D12_DRED_PAGE_FAULT_OUTPUT2 *output);
D3D12_DRED_DEVICE_STATE GetDeviceState();
}
typedef HRESULT (__stdcall *PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)( typedef HRESULT (__stdcall *PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(
const void *data, SIZE_T data_size, REFIID iid, void **deserializer); const void *data, SIZE_T data_size, REFIID iid, void **deserializer);