![]() |
XII Release 0.1.0
|
This describes the device features. More...
#include <Descriptors.h>
Public Member Functions | |
XII_DECLARE_POD_TYPE () | |
![]() | |
xiiHashableStruct (const xiiHashableStruct< xiiGALDeviceFeatures > &other) | |
void | operator= (const xiiHashableStruct< xiiGALDeviceFeatures > &other) |
XII_ALWAYS_INLINE constexpr bool | operator== (const xiiHashableStruct< xiiGALDeviceFeatures > &rhs) const=default |
xiiUInt32 | CalculateHash () const |
Calculates the 32 bit hash of the struct and returns it. | |
Public Attributes | |
xiiEnum< xiiGALDeviceFeatureState > | m_SeparablePrograms = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports separable shader programs. | |
xiiEnum< xiiGALDeviceFeatureState > | m_ShaderResourceQueries = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports resource queries from shader objects. | |
xiiEnum< xiiGALDeviceFeatureState > | m_WireframeFill = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports wireframe fill mode. | |
xiiEnum< xiiGALDeviceFeatureState > | m_MultithreadedResourceCreation = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports multithreaded resource creation. | |
xiiEnum< xiiGALDeviceFeatureState > | m_ComputeShaders = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports compute shaders. | |
xiiEnum< xiiGALDeviceFeatureState > | m_GeometryShaders = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports geometry shaders. | |
xiiEnum< xiiGALDeviceFeatureState > | m_Tessellation = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports tessellation. | |
xiiEnum< xiiGALDeviceFeatureState > | m_MeshShaders = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports mesh and amplification shaders. | |
xiiEnum< xiiGALDeviceFeatureState > | m_RayTracing = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports ray tracing. | |
xiiEnum< xiiGALDeviceFeatureState > | m_BindlessResources = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports bindless resources. | |
xiiEnum< xiiGALDeviceFeatureState > | m_OcclusionQueries = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports occlusion queries. | |
xiiEnum< xiiGALDeviceFeatureState > | m_BinaryOcclusionQueries = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports binary occlusion queries. | |
xiiEnum< xiiGALDeviceFeatureState > | m_TimestampQueries = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports timestamp queries. | |
xiiEnum< xiiGALDeviceFeatureState > | m_PipelineStatisticsQueries = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports pipeline statistics queries. | |
xiiEnum< xiiGALDeviceFeatureState > | m_DurationQueries = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports duration queries. | |
xiiEnum< xiiGALDeviceFeatureState > | m_DepthBiasClamp = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports depth bias clamp. | |
xiiEnum< xiiGALDeviceFeatureState > | m_DepthClamp = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports depth clamp. | |
xiiEnum< xiiGALDeviceFeatureState > | m_IndependentBlend = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports independent blend. | |
xiiEnum< xiiGALDeviceFeatureState > | m_DualSourceBlend = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports dual-source blend. | |
xiiEnum< xiiGALDeviceFeatureState > | m_MultiViewport = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports multi-viewport. | |
xiiEnum< xiiGALDeviceFeatureState > | m_TextureCompressionBC = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports all BC-compressed formats. | |
xiiEnum< xiiGALDeviceFeatureState > | m_VertexPipelineUAVWritesAndAtomics = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports writes to UAVs as well as atomic operations in vertex, tessellation, and geometry shader stages. | |
xiiEnum< xiiGALDeviceFeatureState > | m_PixelUAVWritesAndAtomics = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports writes to UAVs as well as atomic operations in pixel shader stage. | |
xiiEnum< xiiGALDeviceFeatureState > | m_TextureUAVExtendedFormats = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports all the extended UAV texture formats available in the shader code. | |
xiiEnum< xiiGALDeviceFeatureState > | m_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< xiiGALDeviceFeatureState > | m_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< xiiGALDeviceFeatureState > | m_UniformBuffer16BitAccess = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports reading 16-bit floats and integers from uniform buffers. | |
xiiEnum< xiiGALDeviceFeatureState > | m_ShaderInputOutput16 = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports using 16-bit floats and integers as input/output of a shader entry point. | |
xiiEnum< xiiGALDeviceFeatureState > | m_ShaderInt8 = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports native 8-bit integer operations. | |
xiiEnum< xiiGALDeviceFeatureState > | m_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< xiiGALDeviceFeatureState > | m_UniformBuffer8BitAccess = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports reading 8-bit types from uniform buffers. | |
xiiEnum< xiiGALDeviceFeatureState > | m_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< xiiGALDeviceFeatureState > | m_WaveOperation = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports wave operations or (DirectX 12) or subgroups (Vulkan). | |
xiiEnum< xiiGALDeviceFeatureState > | m_InstanceDataStepRate = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports instance data step rates other than 1. | |
xiiEnum< xiiGALDeviceFeatureState > | m_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< xiiGALDeviceFeatureState > | m_TileShaders = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports tile shaders. | |
xiiEnum< xiiGALDeviceFeatureState > | m_TransferQueueTimestampQueries = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports timestamp and duration queries in transfer queues. | |
xiiEnum< xiiGALDeviceFeatureState > | m_VariableRateShading = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports variable rate shading. | |
xiiEnum< xiiGALDeviceFeatureState > | m_SparseResources = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports sparse (aka. tiled or partially resident) resources. | |
xiiEnum< xiiGALDeviceFeatureState > | m_SubpassFramebufferFetch = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports framebuffer fetch for input attachments. | |
xiiEnum< xiiGALDeviceFeatureState > | m_TextureComponentSwizzle = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports texture component swizzle. | |
xiiEnum< xiiGALDeviceFeatureState > | m_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< xiiGALDeviceFeatureState > | m_AsynchronousShaderCompilation = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports asynchronous shader compilation. | |
xiiEnum< xiiGALDeviceFeatureState > | m_VertexShaderRenderTargetArrayIndex = xiiGALDeviceFeatureState::Disabled |
Indicates if the device supports SV_RenderTargetArrayIndex semantic in the vertex shader. | |
This describes the device features.