// d3dkmddi.h
typedef enum _DXGK_INTERRUPT_TYPE {
DXGK_INTERRUPT_DMA_COMPLETED = 1,
DXGK_INTERRUPT_DMA_PREEMPTED = 2,
DXGK_INTERRUPT_CRTC_VSYNC = 3,
DXGK_INTERRUPT_DMA_FAULTED = 4,
DXGK_INTERRUPT_DISPLAYONLY_VSYNC = 5,
DXGK_INTERRUPT_DISPLAYONLY_PRESENT_PROGRESS = 6,
DXGK_INTERRUPT_CRTC_VSYNC_WITH_MULTIPLANE_OVERLAY = 7,
DXGK_INTERRUPT_MICACAST_CHUNK_PROCESSING_COMPLETE = 8,
DXGK_INTERRUPT_DMA_PAGE_FAULTED = 9,
DXGK_INTERRUPT_CRTC_VSYNC_WITH_MULTIPLANE_OVERLAY2 = 10,
DXGK_INTERRUPT_MONITORED_FENCE_SIGNALED = 11,
DXGK_INTERRUPT_HWQUEUE_PAGE_FAULTED = 12,
DXGK_INTERRUPT_HWCONTEXTLIST_SWITCH_COMPLETED = 13,
DXGK_INTERRUPT_PERIODIC_MONITORED_FENCE_SIGNALED = 14,
DXGK_INTERRUPT_SCHEDULING_LOG_INTERRUPT = 15,
DXGK_INTERRUPT_GPU_ENGINE_TIMEOUT = 16,
DXGK_INTERRUPT_SUSPEND_CONTEXT_COMPLETED = 17,
DXGK_INTERRUPT_CRTC_VSYNC_WITH_MULTIPLANE_OVERLAY3 = 18,
DXGK_INTERRUPT_NATIVE_FENCE_SIGNALED = 19,
DXGK_INTERRUPT_GPU_ENGINE_STATE_CHANGE = 20
} DXGK_INTERRUPT_TYPE;
View the official Windows Driver Kit DDI referenceNo description available.
The DXGK_INTERRUPT_TYPE enumeration indicates the type of the interrupt that the kernel-mode display driver (KMD) is notifying Dxgkrnl about.
DXGK_INTERRUPT_DMA_COMPLETED:1A direct memory access (DMA) buffer is completed by using a fence identifier. The driver must supply the DMA buffer fence identifier in the SubmissionFenceId member of the DmaCompleted structure in the union that is contained in the DXGKARGCB_NOTIFY_INTERRUPT_DATA structure in a call to the DxgkCbNotifyInterrupt function. This DMA buffer fence identifier was assigned during a call to the driver's DxgkDdiSubmitCommand function for the latest completed DMA buffer.
DXGK_INTERRUPT_DMA_PREEMPTED:2A preemption request is completed. The driver must supply the preemption fence identifier in the PreemptionFenceId member and the latest fence identifier that hardware completed (not preempted) in the LastCompletedFenceId member of the DmaPreempted structure in the union that is contained in the DXGKARGCB_NOTIFY_INTERRUPT_DATA structure in a call to the DxgkCbNotifyInterrupt function.
The GPU scheduler determines that the graphics hardware preempted all of the commands between the preemption request and the submission with the latest fence identifier.
DXGK_INTERRUPT_CRTC_VSYNC:3A scan out is completed. The driver must supply information in the CrtcVsync structure in the union that is contained in the DXGKARGCB_NOTIFY_INTERRUPT_DATA structure in a call to the DxgkCbNotifyInterrupt function.
The display miniport driver notifies with this interrupt type after video hardware entered into the vertical retrace period, and the pending flip address was latched into the DAC and scanned out. The display miniport driver is not required to report this interrupt after the operating system calls the driver's DxgkDdiControlInterrupt function to disable the interrupt type; however, the driver must resume reporting after the operating system calls the driver's DxgkDdiControlInterrupt function again to enable the interrupt type.
DXGK_INTERRUPT_DMA_FAULTED:4Reserved for system use. Do not use in your driver.
DXGK_INTERRUPT_DISPLAYONLY_VSYNC:5In a kernel-mode display-only driver, a VSync has completed. Supported starting with Windows 8.
DXGK_INTERRUPT_DISPLAYONLY_PRESENT_PROGRESS:6In a kernel-mode display-only driver, a present operation has completed or has failed. Supported starting with Windows 8.
DXGK_INTERRUPT_CRTC_VSYNC_WITH_MULTIPLANE_OVERLAY:7A Vsync has completed in a display miniport driver that supports multiplane overlays. Supported starting with Windows 8.1.
DXGK_INTERRUPT_MICACAST_CHUNK_PROCESSING_COMPLETE:8The GPU has completed encoding a Miracast encode chunk. Supported starting with Windows 8.1.
The display miniport driver can optionally provide private data that the user-mode driver can obtain using the GetNextChunkData function.
DXGK_INTERRUPT_DMA_PAGE_FAULTED:9This interrupt type should be raised when a GPU encounters an error condition that requires OS to perform a recovery action, such as putting the running packet device in error or resetting the GPU. Supported starting with Windows 10.
When this interrupt type is set, interrupt data should be provided in the DmaPageFaulted member of DXGKARGCB_NOTIFY_INTERRUPT_DATA structure.
DXGK_INTERRUPT_CRTC_VSYNC_WITH_MULTIPLANE_OVERLAY2:10A Vsync has completed in a display miniport driver that supports multiplane overlays. Supported starting with Windows 10.
DXGK_INTERRUPT_MONITORED_FENCE_SIGNALED:11Raise this interrupt type when the monitored fence is signaled. Supported starting with Windows 10.
DXGK_INTERRUPT_HWQUEUE_PAGE_FAULTED:12Raise this interrupt type when the hardware queue page has faulted. Supported starting with Windows 10.
DXGK_INTERRUPT_HWCONTEXTLIST_SWITCH_COMPLETED:13Raise this interrupt type when the hardware context list switch has completed. Supported starting with Windows 10.
DXGK_INTERRUPT_PERIODIC_MONITORED_FENCE_SIGNALED:14Raise this interrupt type when the periodic monitored fence is signaled. Supported starting with Windows 10.
DXGK_INTERRUPT_SCHEDULING_LOG_INTERRUPT:15Raised during a scheduling log interrupt. Supported starting with Windows 10.
DXGK_INTERRUPT_GPU_ENGINE_TIMEOUT:16Raised when the GPU engine has timed out. Supported starting with Windows 10.
DXGK_INTERRUPT_SUSPEND_CONTEXT_COMPLETED:17Raised when the suspend context has completed. Supported starting with Windows 10.
DXGK_INTERRUPT_CRTC_VSYNC_WITH_MULTIPLANE_OVERLAY3:18A Vsync has completed in a display miniport driver that supports the hardware flip queue model. Supported starting with Windows 11 (WDDM 3.0).
DXGK_INTERRUPT_NATIVE_FENCE_SIGNALED:19A set of native fence GPU objects monitored by the CPU were signaled on a GPU engine. Supported starting in Windows 11, version 24H2.
DXGK_INTERRUPT_GPU_ENGINE_STATE_CHANGE:20An engine state transition has occurred that requires a CPU power action or timeout recovery. Available starting in Windows 11, version 22H2 (WDDM 3.1).
DXGKARGCB_NOTIFY_INTERRUPT_DATA