XII Release 0.1.0
Loading...
Searching...
No Matches
xiiGALDeviceCreationDescription Struct Reference

This describes the graphics device creation description. More...

#include <Descriptors.h>

Inheritance diagram for xiiGALDeviceCreationDescription:
[legend]

Public Member Functions

 XII_DECLARE_POD_TYPE ()
Public Member Functions inherited from xiiHashableStruct< xiiGALDeviceCreationDescription >
constexpr xiiHashableStruct () noexcept
 Default constructor. Initializes all bytes to zero.
xiiHashableStruct & operator= (const xiiHashableStruct &other) noexcept
 Bitwise assignment operator.
bool operator== (const xiiHashableStruct &other) const noexcept
 Compares equality via raw byte comparison.
std::strong_ordering operator<=> (const xiiHashableStruct &other) const noexcept
 Compares ordering via raw byte comparison.
xiiUInt32 CalculateHash () const noexcept
 Calculates a 32-bit hash from raw bytes of the struct.
void Clear () noexcept
 Fills all bytes with zero.
bool IsZero () const noexcept
 Returns true if all bytes are zero.

Public Attributes

xiiEnum< xiiGALGraphicsDeviceType > m_GraphicsDeviceType = xiiGALGraphicsDeviceType::Null
 Graphics API type of the device to create.
xiiEnum< xiiGALDeviceValidationLevel > m_ValidationLevel = xiiGALDeviceValidationLevel::Disabled
 Validation level for the device. Higher validation levels may enable additional GPU-based validation and debugging features, which can help catch more issues during development, but may also have a performance impact. The optimal validation level depends on the specific needs of the application and the stage of development. For example, during early development or when debugging complex issues, a higher validation level may be beneficial. However, for performance testing or in production builds, a lower validation level or no validation may be more appropriate.
xiiUInt32 m_uiAdapterID = XII_GAL_DEFAULT_ADAPTER_ID
 Adapter ID of the device to create. This is only used when there are multiple adapters available and the application wants to specify which one to use. The optimal adapter ID depends on the specific needs of the application and the hardware configuration of the system. In most cases, using the default adapter (XII_GAL_DEFAULT_ADAPTER_ID) is sufficient, as it typically corresponds to the primary GPU in the system. However, in systems with multiple GPUs, such as those with both integrated and discrete graphics, or in multi-GPU setups, specifying a particular adapter ID may be necessary to ensure that the application uses the desired GPU for rendering.
xiiGALDeviceFeatures m_DeviceFeatures
 Device features that the application requires. The optimal device features depend on the specific needs of the application and the capabilities of the target hardware. For example, if the application relies heavily on compute shaders, it would be important to require support for compute shaders in the device features. Similarly, if the application uses ray tracing, it would need to require support for ray tracing. It's important to carefully consider which features are necessary for the application's functionality and performance requirements, as requiring unsupported features may lead to device creation failure or suboptimal performance.

Detailed Description

This describes the graphics device creation description.


The documentation for this struct was generated from the following file:
  • /home/runner/work/XII/XII/Source/Engine/GraphicsFoundation/Declarations/Descriptors.h