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

This describes the device features. More...

#include <Descriptors.h>

Inheritance diagram for xiiGALDeviceFeatures:
[legend]

Public Member Functions

 XII_DECLARE_POD_TYPE ()
 
- Public Member Functions inherited from xiiHashableStruct< xiiGALDeviceFeatures >
constexpr xiiHashableStruct () noexcept
 Default constructor. Initializes all bytes to zero.
 
 xiiHashableStruct (const xiiHashableStruct &other) noexcept
 Bitwise copy constructor.
 
xiiHashableStructoperator= (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< xiiGALDeviceFeatureStatem_WireframeFill = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports wireframe fill mode.
 
xiiEnum< xiiGALDeviceFeatureStatem_MultithreadedResourceCreation = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports multithreaded resource creation.
 
xiiEnum< xiiGALDeviceFeatureStatem_ComputeShaders = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports compute shaders.
 
xiiEnum< xiiGALDeviceFeatureStatem_GeometryShaders = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports geometry shaders.
 
xiiEnum< xiiGALDeviceFeatureStatem_Tessellation = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports tessellation.
 
xiiEnum< xiiGALDeviceFeatureStatem_MeshShaders = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports mesh and amplification shaders.
 
xiiEnum< xiiGALDeviceFeatureStatem_RayTracing = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports ray tracing.
 
xiiEnum< xiiGALDeviceFeatureStatem_BindlessResources = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports bindless resources.
 
xiiEnum< xiiGALDeviceFeatureStatem_OcclusionQueries = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports occlusion queries.
 
xiiEnum< xiiGALDeviceFeatureStatem_BinaryOcclusionQueries = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports binary occlusion queries.
 
xiiEnum< xiiGALDeviceFeatureStatem_TimestampQueries = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports timestamp queries.
 
xiiEnum< xiiGALDeviceFeatureStatem_PipelineStatisticsQueries = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports pipeline statistics queries.
 
xiiEnum< xiiGALDeviceFeatureStatem_DurationQueries = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports duration queries.
 
xiiEnum< xiiGALDeviceFeatureStatem_DepthBiasClamp = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports depth bias clamp.
 
xiiEnum< xiiGALDeviceFeatureStatem_DepthClamp = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports depth clamp.
 
xiiEnum< xiiGALDeviceFeatureStatem_IndependentBlend = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports independent blend.
 
xiiEnum< xiiGALDeviceFeatureStatem_DualSourceBlend = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports dual-source blend.
 
xiiEnum< xiiGALDeviceFeatureStatem_MultiViewport = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports multi-viewport.
 
xiiEnum< xiiGALDeviceFeatureStatem_TextureCompressionBC = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports all BC-compressed formats.
 
xiiEnum< xiiGALDeviceFeatureStatem_VertexPipelineUAVWritesAndAtomics = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports writes to UAVs as well as atomic operations in vertex, tessellation, and geometry shader stages.
 
xiiEnum< xiiGALDeviceFeatureStatem_PixelUAVWritesAndAtomics = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports writes to UAVs as well as atomic operations in pixel shader stage.
 
xiiEnum< xiiGALDeviceFeatureStatem_TextureUAVExtendedFormats = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports all the extended UAV texture formats available in the shader code.
 
xiiEnum< xiiGALDeviceFeatureStatem_ShaderFloat16 = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports native 16-bit float operations. Note that there are separate features that indicate if device supports loading 16-bit floats from buffers and passing them between shader stages. See https://therealmjp.github.io/posts/shader-fp16/ more info.
 
xiiEnum< xiiGALDeviceFeatureStatem_ResourceBuffer16BitAccess = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports reading and writing 16-bit floats and integers from buffers bound as shader resource or unordered access views.
 
xiiEnum< xiiGALDeviceFeatureStatem_UniformBuffer16BitAccess = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports reading 16-bit floats and integers from uniform buffers.
 
xiiEnum< xiiGALDeviceFeatureStatem_ShaderInputOutput16 = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports using 16-bit floats and integers as input/output of a shader entry point.
 
xiiEnum< xiiGALDeviceFeatureStatem_ShaderInt8 = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports native 8-bit integer operations.
 
xiiEnum< xiiGALDeviceFeatureStatem_ResourceBuffer8BitAccess = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports reading and writing 8-bit types from buffers bound as shader resource or unordered access views.
 
xiiEnum< xiiGALDeviceFeatureStatem_UniformBuffer8BitAccess = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports reading 8-bit types from uniform buffers.
 
xiiEnum< xiiGALDeviceFeatureStatem_ShaderResourceRuntimeArray = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports runtime-sized shader arrays (eg. arrays without a specific size).This feature is always enabled in DirectX12 backend and can optionally be enabled in Vulkan backend. Run-time sized shader arrays are not available in other backends.
 
xiiEnum< xiiGALDeviceFeatureStatem_WaveOperation = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports wave operations or (DirectX 12) or subgroups (Vulkan).
 
xiiEnum< xiiGALDeviceFeatureStatem_InstanceDataStepRate = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports instance data step rates other than 1.
 
xiiEnum< xiiGALDeviceFeatureStatem_NativeFence = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports fence with Uint64 counter. Native fence can wait on GPU for a signal from CPU, can be enqueued for wait operation for any value. If not natively supported by the device, the fence is emulated where possible.
 
xiiEnum< xiiGALDeviceFeatureStatem_TileShaders = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports tile shaders.
 
xiiEnum< xiiGALDeviceFeatureStatem_TransferQueueTimestampQueries = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports timestamp and duration queries in transfer queues.
 
xiiEnum< xiiGALDeviceFeatureStatem_VariableRateShading = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports variable rate shading.
 
xiiEnum< xiiGALDeviceFeatureStatem_SparseResources = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports sparse (aka. tiled or partially resident) resources.
 
xiiEnum< xiiGALDeviceFeatureStatem_SubpassFramebufferFetch = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports framebuffer fetch for input attachments.
 
xiiEnum< xiiGALDeviceFeatureStatem_TextureComponentSwizzle = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports texture component swizzle.
 
xiiEnum< xiiGALDeviceFeatureStatem_NativeMultiDraw = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports a dedicated command that can be used to issue multiple draw calls with a single command (e.g. vkCmdDrawMultiExt).
 
xiiEnum< xiiGALDeviceFeatureStatem_AsynchronousShaderCompilation = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports asynchronous shader compilation.
 
xiiEnum< xiiGALDeviceFeatureStatem_VertexShaderRenderTargetArrayIndex = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports SV_RenderTargetArrayIndex semantic in the vertex shader.
 
xiiEnum< xiiGALDeviceFeatureStatem_DepthStencilResolve = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports depth/stencil resolve operations.
 
xiiEnum< xiiGALDeviceFeatureStatem_ExternalMemory = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports shared memory across multiple devices or APIs.
 
xiiEnum< xiiGALDeviceFeatureStatem_ExternalSemaphore = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports shared semaphores across multiple devices or APIs.
 
xiiEnum< xiiGALDeviceFeatureStatem_ExternalFence = xiiGALDeviceFeatureState::Disabled
 Indicates if the device supports shared fences across multiple devices or APIs.
 

Detailed Description

This describes the device features.


The documentation for this struct was generated from the following file: