- Qt 6.8
- Qt GUI
- C++ Classes
- QRhiD3D12InitParams
- Qt 6.8.0 Reference Documentation

# QRhiD3D12InitParams Struct

Direct3D 12 specific initialization parameters. More...

Header: | #include <QRhiD3D12InitParams>
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: | QT += gui
Inherits: | QRhiInitParams

- List of all members, including inherited members

## Public Variables

bool | enableDebugLayer

## Detailed Description

Note: This is a RHI API with limited compatibility guarantees, see QRhi for details.

A D3D12-based QRhi needs no special parameters for initialization. If desired, enableDebugLayer can be set to `true` to enable the Direct3D debug layer. This can be useful during development, but should be avoided in production builds.

     QRhiD3D12InitParams params;
     params.enableDebugLayer = true;
     rhi = QRhi::create(QRhi::D3D12, &params);

Note: QRhiSwapChain should only be used in combination with QWindow instances that have their surface type set to QSurface::Direct3DSurface.

#### Working with existing Direct3D 12 devices

When interoperating with another graphics engine, it may be necessary to get a QRhi instance that uses the same Direct3D device. This can be achieved by passing a pointer to a QRhiD3D12NativeHandles to QRhi::create(). QRhi does not take ownership of any of the external objects.

Sometimes, for example when using QRhi in combination with OpenXR, one will want to specify which adapter to use, and optionally, which feature level to request on the device, while leaving the device creation to QRhi. This is achieved by leaving the device pointer set to null, while specifying the adapter LUID and feature level.

Optionally the ID3D12CommandQueue can be specified as well, by setting `commandQueue` to a non-null value.

## Member Variable Documentation

### bool QRhiD3D12InitParams::enableDebugLayer

When set to true, the debug layer is enabled, if installed and available. The default value is false.