Interface Belongs To Purpose 🧠 ID3D12Debug3 D3D12 Enables the debug layer, GPU validation, synchronized command validation, etc. Used before device creation. 📬 ID3D12InfoQueue D3D12 Receives runtime validation messages from D3D12 — your main D3D12 validation hook. Use this like VkDebugUtilsMessengerEXT. 📦 IDXGIInfoQueue DXGI Receives swapchain/factory messages, like invalid mode, missing formats, etc. DXGI-only validation. 🔎 IDXGIDebug DXGI Used to report leaked objects at shutdown (ReportLiveObjects) — works across both DXGI and D3D12 objects.
🔁 Lifecycle + Purpose Stage Interface When/Why 🔧 Before CreateDevice ID3D12Debug3 Enable validation layers and GPU validation.