Files
Juliet/Romeo/docs/Juliet_src_Graphics_D3D12_D3D12GraphicsDevice.md
T

49 lines
1.9 KiB
Markdown

# Juliet\src\Graphics\D3D12\D3D12GraphicsDevice
## Source Files
- Header: `Juliet\src\Graphics\D3D12\D3D12GraphicsDevice.h`
- Source: `Juliet\src\Graphics\D3D12\D3D12GraphicsDevice.cpp`
## AI Description
The provided code snippet is a part of a graphics driver implementation for DirectX 12. It includes functions to initialize and shutdown debugging features for the graphics device. The `InitializeDXGIDebug` function sets up the debug interface for DXGI (DirectX Graphics Infrastructure), while the `InitializeD3D12DebugLayer` function enables the debug layer in D3D12.
The `OnD3D12DebugInfoMsg` callback function is used to handle debug messages generated by the graphics driver. It logs these messages at different severity levels, such as ERROR and WARNING, using the `LogWarning` function from the `Log` module.
Here's a breakdown of the key functions and their functionalities:
1. **InitializeDXGIDebug**:
- Loads the DXGI debug DLL.
- Retrieves the IDXGIDebug interface.
- Sets up the break-on-severity for different message severities.
- Reports live objects to the debug interface.
2. **ShutdownDXGIDebug**:
- Releases the IDXGIDebug interface and the debug DLL.
3. **InitializeD3D12DebugLayer**:
- Retrieves the ID3D12Debug interface using `D3D12GetDebugInterfaceFunc`.
- Enables the debug layer in D3D12.
4. **OnD3D12DebugInfoMsg**:
- Registers a message callback for handling debug messages.
- Logs debug messages at different severity levels.
This setup is crucial for debugging issues related to DirectX 12, such as resource management, shader compilation, and execution errors.
## Symbols
### Namespace `Juliet::D3D12`
#### Classes, Structs & Unions
- `struct D3D12WindowData`
- `struct D3D12Driver`
#### Enums
- `enum class RootParameters`
### Namespace `Juliet::D3D12::Internal`
#### Functions & Methods
- `void DisposePendingResourcces(NonNullPtr<D3D12Driver> driver)`