Constants, Structures and Enumerations

Defines

VSDOP_MASK
VSDOP_STREAM
VSDOP_INPUT
VSDT_MASK
VSDR_MASK
VSDS_MASK
VSDS_PER_INSTANCE_DATA
GET_VSDREG(a)
MAKE_VSDREG(a)
GET_VSDSTREAM(a)
MAKE_VSDSTREAM(a)
VSD_SKIPFLG
GET_VSDSKIP(a)
VSD_END
VSTREAMSRC_NORMAL_DATA
VSTREAMSRC_INDEXED_DATA
VSTREAMSRC_INSTANCE_DATA

Typedefs

typedef int VPROG
typedef int FSHADER
typedef int VDECL
typedef int PROGRAM
typedef int PALID
typedef int VPRTYPE
typedef unsigned long FSHTYPE
typedef unsigned long VSDTYPE
typedef unsigned long long GPUFENCEHANDLE
using DeviceDriverCapabilities = DeviceDriverCapabilitiesBase
using DeviceDriverIssues = DeviceDriverIssuesNoIssues
using DeviceDriverShaderModelVersion = d3d::shadermodel::Version

Enums

enum ShaderStage

Values:

enumerator STAGE_CS
enumerator STAGE_PS
enumerator STAGE_VS
enumerator STAGE_MAX
enumerator STAGE_RAYTRACE
enumerator STAGE_CS_ASYNC_STATE
enumerator STAGE_MAX_EXT
enum class GpuPipeline

Values:

enumerator GRAPHICS
enumerator ASYNC_COMPUTE
enumerator TRANSFER
enum [anonymous]

Values:

enumerator MAXSAMPLERS
enumerator MAXSTREAMS
enumerator MAXSAMPLERS_VS
enumerator MAX_SLI_AFRS
enum [anonymous]

Values:

enumerator VDECLUSAGE_POS
enumerator VDECLUSAGE_BLENDW
enumerator VDECLUSAGE_BLENDIND
enumerator VDECLUSAGE_NORM
enumerator VDECLUSAGE_PSIZE
enumerator VDECLUSAGE_TC
enumerator VDECLUSAGE_TANG
enumerator VDECLUSAGE_BINORM
enumerator VDECLUSAGE_TESSFACTOR
enumerator VDECLUSAGE_TPOS
enumerator VDECLUSAGE_COLOR
enumerator VDECLUSAGE_FOG
enumerator VDECLUSAGE_DEPTH
enumerator VDECLUSAGE_SAMPLE
enum [anonymous]

Values:

enumerator SBCF_USAGE_SHADER_BINDING_TABLE

Buffer can be used as a shader binding table. Should not be used directly, use get_shader_binding_table_buffer_properties to calculate all properties, including create flags.

enumerator SBCF_USAGE_ACCELLERATION_STRUCTURE_BUILD_SCRATCH_SPACE

Buffer is used as scratch space for RT structure builds.

enumerator SBCF_DYNAMIC
enumerator SBCF_ZEROMEM
enumerator SBCF_INDEX32
enumerator SBCF_FRAMEMEM
enumerator SBCF_USAGE_READ_BACK
enumerator SBCF_ALIGN16
enumerator SBCF_CPU_ACCESS_MASK
enumerator SBCF_CPU_ACCESS_WRITE
enumerator SBCF_CPU_ACCESS_READ
enumerator SBCF_BIND_MASK
enumerator SBCF_BIND_VERTEX
enumerator SBCF_BIND_INDEX
enumerator SBCF_BIND_CONSTANT
enumerator SBCF_BIND_SHADER_RES
enumerator SBCF_BIND_UNORDERED
enumerator SBCF_MISC_MASK
enumerator SBCF_MISC_DRAWINDIRECT
enumerator SBCF_MISC_ALLOW_RAW
enumerator SBCF_MISC_STRUCTURED
enumerator SBCF_MISC_ESRAM_ONLY
enumerator SBCF_CB_PERSISTENT
enumerator SBCF_CB_ONE_FRAME
enumerator SBCF_UA_SR_BYTE_ADDRESS
enumerator SBCF_UA_SR_STRUCTURED
enumerator SBCF_UA_BYTE_ADDRESS
enumerator SBCF_UA_STRUCTURED
enumerator SBCF_UA_BYTE_ADDRESS_READBACK
enumerator SBCF_UA_STRUCTURED_READBACK
enumerator SBCF_UA_INDIRECT
enumerator SBCF_INDIRECT
enumerator SBCF_STAGING_BUFFER
enum [anonymous]

Values:

enumerator WRAP_COORD0
enumerator WRAP_COORD1
enumerator WRAP_COORD2
enumerator WRAP_COORD3
enum [anonymous]

Values:

enumerator VCDEST_NONE
enumerator VCDEST_AMB
enumerator VCDEST_DIFF
enumerator VCDEST_AMB_DIFF
enumerator VCDEST_EMIS
enumerator VCDEST_SPEC
enum [anonymous]

Values:

enumerator WRITEMASK_RED0
enumerator WRITEMASK_GREEN0
enumerator WRITEMASK_BLUE0
enumerator WRITEMASK_ALPHA0
enumerator WRITEMASK_RED1
enumerator WRITEMASK_RED2
enumerator WRITEMASK_RED3
enumerator WRITEMASK_RED4
enumerator WRITEMASK_RED5
enumerator WRITEMASK_RED6
enumerator WRITEMASK_RED7
enumerator WRITEMASK_GREEN1
enumerator WRITEMASK_GREEN2
enumerator WRITEMASK_GREEN3
enumerator WRITEMASK_GREEN4
enumerator WRITEMASK_GREEN5
enumerator WRITEMASK_GREEN6
enumerator WRITEMASK_GREEN7
enumerator WRITEMASK_BLUE1
enumerator WRITEMASK_BLUE2
enumerator WRITEMASK_BLUE3
enumerator WRITEMASK_BLUE4
enumerator WRITEMASK_BLUE5
enumerator WRITEMASK_BLUE6
enumerator WRITEMASK_BLUE7
enumerator WRITEMASK_ALPHA1
enumerator WRITEMASK_ALPHA2
enumerator WRITEMASK_ALPHA3
enumerator WRITEMASK_ALPHA4
enumerator WRITEMASK_ALPHA5
enumerator WRITEMASK_ALPHA6
enumerator WRITEMASK_ALPHA7
enumerator WRITEMASK_RED
enumerator WRITEMASK_GREEN
enumerator WRITEMASK_BLUE
enumerator WRITEMASK_ALPHA
enumerator WRITEMASK_RGB
enumerator WRITEMASK_ALL
enumerator WRITEMASK_DEFAULT
enum class XessState

Values:

enumerator UNSUPPORTED_DEVICE
enumerator UNSUPPORTED_DRIVER
enumerator INIT_ERROR_UNKNOWN
enumerator DISABLED
enumerator SUPPORTED
enumerator READY
enum class Fsr2State

Values:

enumerator NOT_CHECKED
enumerator INIT_ERROR
enumerator SUPPORTED
enumerator READY
enum class MtlfxUpscaleState

Values:

enumerator UNSUPPORTED
enumerator READY
enum class HdrOutputMode

Values:

enumerator SDR_ONLY
enumerator HDR10_AND_SDR
enumerator HDR10_ONLY
enumerator HDR_ONLY
enum class CSPreloaded

Values:

enumerator No
enumerator Yes
enum DepthResolveMode

This enum defines bits signalling supported depth resolve modes. Depth resolve is a functionality supported by some GAPIs which allows to resolve MSAA depth into a single sampled one.

In the context of Vulkan, we do additional checks to determine supported depth resolve modes. Therefore, fewer modes than the driver returns can be reported.

Values:

enumerator DEPTH_RESOLVE_MODE_NONE

Depth resolve unsupported.

enumerator DEPTH_RESOLVE_MODE_SAMPLE_ZERO

Use a value from the 0th sample. If depth resolve is supported, this is generally supported too.

enumerator DEPTH_RESOLVE_MODE_AVERAGE

Use the average value from all samples. Not supported on iOS, rarely supported on Android Vulkan.

enumerator DEPTH_RESOLVE_MODE_MIN

Use the smallest value from all samples. Supported on iOS, rarely supported on Android Vulkan.

enumerator DEPTH_RESOLVE_MODE_MAX

Same as DEPTH_RESOLVE_MODE_MIN, but the largest value is used instead.

enum [anonymous]

Values:

enumerator DRV3D_FRAMERATE_LIMITED_BY_NOTHING
enumerator DRV3D_FRAMERATE_LIMITED_BY_REPLAY_WAIT
enumerator DRV3D_FRAMERATE_LIMITED_BY_REPLAY_UNDERFEED
enumerator DRV3D_FRAMERATE_LIMITED_BY_GPU_UTILIZATION
enum class VariableRateShadingCombiner

Combiners for VRS for vertex stage and pixel shader state.

Should the device support DeviceDriverCapabilities::hasVariableRateShadingCombiners, then each combiner can be used for any stage in any combination. When DeviceDriverCapabilities::hasVariableRateShadingCombiners is not supported then the following restrictions apply:

Values:

enumerator VRS_PASSTHROUGH

selects rate value from previous stage

enumerator VRS_OVERRIDE

selects rate from this stage

enumerator VRS_MIN

selects min of previous and this stage

enumerator VRS_MAX

selects max of previous and this stage

enumerator VRS_SUM

adds values of previous and this stage and clamps it to max possible value

enum ResourceBarrier

Values:

enumerator RB_RW_RENDER_TARGET
enumerator RB_RW_UAV
enumerator RB_RW_COPY_DEST
enumerator RB_RW_BLIT_DEST
enumerator RB_RO_SRV
enumerator RB_RO_CONSTANT_BUFFER
enumerator RB_RO_VERTEX_BUFFER
enumerator RB_RO_INDEX_BUFFER
enumerator RB_RO_INDIRECT_BUFFER
enumerator RB_RO_VARIABLE_RATE_SHADING_TEXTURE
enumerator RB_RO_COPY_SOURCE
enumerator RB_RO_BLIT_SOURCE
enumerator RB_RO_RAYTRACE_ACCELERATION_BUILD_SOURCE
enumerator RB_FLAG_RELEASE_PIPELINE_OWNERSHIP
enumerator RB_FLAG_ACQUIRE_PIPELINE_OWNERSHIP
enumerator RB_FLAG_SPLIT_BARRIER_BEGIN
enumerator RB_FLAG_SPLIT_BARRIER_END
enumerator RB_STAGE_VERTEX
enumerator RB_STAGE_PIXEL
enumerator RB_STAGE_COMPUTE
enumerator RB_STAGE_RAYTRACE
enumerator RB_FLUSH_UAV
enumerator RB_FLAG_DONT_PRESERVE_CONTENT
enumerator RB_SOURCE_STAGE_VERTEX
enumerator RB_SOURCE_STAGE_PIXEL
enumerator RB_SOURCE_STAGE_COMPUTE
enumerator RB_SOURCE_STAGE_RAYTRACE
enumerator RB_ALIAS_FROM
enumerator RB_ALIAS_TO
enumerator RB_RO_SHADER_BINDING_TABLE
enumerator RB_FLUSH_RAYTRACE_ACCELERATION_BUILD_SCRATCH_USE
enumerator RB_ALIAS_TO_AND_DISCARD
enumerator RB_ALIAS_ALL
enumerator RB_SOURCE_STAGE_ALL_GRAPHICS
enumerator RB_SOURCE_STAGE_ALL_SHADERS
enumerator RB_RW_DEPTH_STENCIL_TARGET
enumerator RB_RO_CONSTANT_DEPTH_STENCIL_TARGET
enumerator RB_RO_GENERIC_READ_BUFFER
enumerator RB_RO_GENERIC_READ_TEXTURE
enumerator RB_STAGE_ALL_SHADERS
enumerator RB_STAGE_ALL_GRAPHICS
enumerator RB_NONE
enum RenderPassTargetAction

Bitfield of actions that happen with target at given slot and subpass.

Values:

enumerator RP_TA_NONE

No action with target will happen.

Only dependencyBarrier of binding will be executed for this target

Warning

Content of target becomes invalid if no action is supplied overall

enumerator RP_TA_LOAD_READ

Loads contents of target from memory to framebuffer.

Note

Avoid load operations on TBDR hardware

enumerator RP_TA_LOAD_CLEAR

Loads clear value to framebuffer instead of doing any memory operation.

enumerator RP_TA_LOAD_NO_CARE

Don’t care about loading contents of target (aka discard)

Warning

Initial content of frame buffer is underfined, make sure to handle this

enumerator RP_TA_LOAD_MASK

Bitmask of any load operation.

Note

load action is performed for each target when its being accessed for the first time in render pass

enumerator RP_TA_SUBPASS_READ

Target contents will be readed by subpass.

Note

This corresponds to SubpassInput with SubpassLoad inside shader

Warning

Generic implementation uses T register with subpassBindingOffset instead of SubpassInput, this must be handled properly in shader code

enumerator RP_TA_SUBPASS_RESOLVE

Target will be used as MSAA resolve destination of MSAA target bound in same slot.

Note

MSAA Depth resolve is optional feature if non generic implementation is used

Warning

Must supply MSAA target in same slot in another binding otherwise creation on render pass will fail

enumerator RP_TA_SUBPASS_WRITE

Target contents will be written by subpass.

enumerator RP_TA_SUBPASS_KEEP

Target contents will be keeped intact if it was not used in subpass (otherwise UB)

enumerator RP_TA_SUBPASS_MASK

Bitmask of any subpass operation.

enumerator RP_TA_STORE_WRITE

Contents of framebuffer will be written to target memory.

enumerator RP_TA_STORE_NONE

Contents of framebuffer will not be stored.

enumerator RP_TA_STORE_NO_CARE

Don’t care about target memory contents.

Warning

Target memory contents will be left in UB state

enumerator RP_TA_STORE_MASK

Bitmask of any load operation.

Note

store action is performed once for each target on whole pass completion

enum RenderPassExtraIndexes

extra indexes that encode special cases of render pass description

Values:

enumerator RP_INDEX_NORMAL
enumerator RP_SUBPASS_EXTERNAL_END

Pseudo subpass index, that happens at end of render pass.

Used to provide store actions as well as dependencyBarriers for generic implementation

enumerator RP_SLOT_DEPTH_STENCIL

Slot for depth/stencil.

Using this slot will bind target as depth/stencil

Functions

inline constexpr ResourceBarrier operator|(ResourceBarrier l, ResourceBarrier r)
inline constexpr ResourceBarrier operator&(ResourceBarrier l, ResourceBarrier r)
inline constexpr ResourceBarrier operator^(ResourceBarrier l, ResourceBarrier r)
inline constexpr RenderPassTargetAction operator|(RenderPassTargetAction l, RenderPassTargetAction r)

Variables

static constexpr int BAD_VPROG = -1
static constexpr int BAD_FSHADER = -1
static constexpr int BAD_VDECL = -1
static constexpr int BAD_PROGRAM = -1
static constexpr int BAD_PALID = -1
constexpr GPUFENCEHANDLE BAD_GPUFENCEHANDLE = 0
static constexpr size_t RT_TRANSFORM_SIZE = sizeof(float) * 12
struct DeviceDriverCapabilitiesBase

A boolean bitfield that describes which optional features that are available with the used device / driver combination.

Remark

To add new capability indicators, you need to follow those steps:

  1. Add the new cap indicator boolean bit to the end of this structure.

  2. For platforms where this cap is always be available or not available, add a static constexpr boolean with the same name with the platform specific derived structures. This will hide the boolean bitfield for the target platform and the constant will be used instead.

  3. Add the documentation to all the platform specific constant overrides. Use existing documentation as a basis. Here are the basics:

    • Use \briefconstcap{“const value”, DeviceDriverCapabilitiesBase::”cap name”} to generate the basic description for the overriding value.

      • ”const value” should be replaced with the constant value of this override.

      • ”cap name” should be the name of the cap.

    • Use \NYI to indicate that the driver could support this feature, but do not implemented it yet.

  4. Add documentation to the cap indicator boolean bit of this struct.

    • Use \capbrief “brief cap description” to generate the brief description of this cap. This alias will start the brief with the standard introducing phrase “Indicates that the device driver”.

    • Use \platformtable{“cap name”,”xbone”,”scarlett”,”ps4”,”ps5”,”ios”,”tvos”,”nswitch”,”android”,”mac”,”linux”,”win32”} to generate the platform value table.

      • ”cap name” should be the name of the cap.

      • ”xbone”, “scarlett”, “ps4”, “ps5”, “ios”, “tvos”, “nswitch”, “android”, “mac”, “linux”, “win32” should be one of the following values:

        • c for constant, the actual value is pulled from the description generated by \briefconstcap for the cosponsoring platform.

        • a for alias, this works only for “scarlett” and “ps5”, for others this is the same as c. It uses the value of “xbone” and “ps4”, for “scarlett” and “ps5” respectively. This is needed when a const value is specified for “xbone” or “ps4” platform and inherited by the “scarlett” or “ps5” platform, to correctly display the inherited value.

        • r for runtime determined. This is for platforms where there is no constant override and it is determined by the active driver of the platform.

      • Ensure that there are no spaces around the platform specific values (c, a or r), otherwise the alias expansion will result in broken statements and documentation.

    • Use \someNYI to indicate that there are drivers that could support this feature, but do not implement it yet.

Note

See derived types for platform specific constant overrides.

Subclassed by DeviceDriverCapabilitiesAndroid, DeviceDriverCapabilitiesIOS, DeviceDriverCapabilitiesLinux, DeviceDriverCapabilitiesMacOSX, DeviceDriverCapabilitiesNintendoSwitch, DeviceDriverCapabilitiesPS4, DeviceDriverCapabilitiesTVOS, DeviceDriverCapabilitiesWindows, DeviceDriverCapabilitiesXboxOne

Public Members

bool hasAnisotropicFilter

Indicates that the device driver supports anisotropic filtering of textures.

Devices without support will silently treat any value for anisotropic filtering as 1.0.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant true.

tvOS

Constant true.

Nintendo Switch

Constant true.

Android

Runtime determined.

macOS

Constant true.

Linux

Constant true.

Windows

Constant true.

bool hasDepthReadOnly

Indicates that the device driver supports constant depth stencil targets that allow simultaneous sampling as a shader resource.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Constant false.

Linux

Constant true.

Windows

Runtime determined.

bool hasStructuredBuffers

Indicates that the device driver supports structured buffer types.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant true.

tvOS

Constant true.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Constant true.

Linux

Constant true.

Windows

Runtime determined.

bool hasNoOverwriteOnShaderResourceBuffers

Indicates that the device driver supports locking of structured buffers with the no-overwrite method.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant true.

tvOS

Constant true.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Constant true.

Linux

Constant true.

Windows

Runtime determined.

bool hasForcedSamplerCount

Indicates that the device driver supports forced multi-sample count during raster phase.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasVolMipMap

Indicates that the device driver supports mipmaps for vol (eg 3D) textures.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant true.

tvOS

Constant true.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Constant true.

Linux

Constant true.

Windows

Runtime determined.

bool hasAsyncCompute

Indicates that the device driver supports GpuPipeline::ASYNC_COMPUTE as selected pipeline when applicable.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Runtime determined.

PlayStation 5

Runtime determined.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasOcclusionQuery

Indicates that the device driver supports occlusion queries.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant true.

tvOS

Constant true.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Constant true.

Linux

Constant true.

Windows

Runtime determined.

bool hasConstBufferOffset

Indicates that the device driver supports values other than 0 for consts_offset of d3d::set_const_buffer.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasDepthBoundsTest

Indicates that the device driver supports depth bounds testing. See d3d::set_depth_bounds for details of depth bounds testing.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant true.

Android

Runtime determined.

macOS

Constant false.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasConditionalRender

Indicates that the device driver supports conditional rendering.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Runtime determined.

Android

Runtime determined.

macOS

Constant false.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasResourceCopyConversion

Indicates that the device driver supports copy of textures of different but compatible formats.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant true.

tvOS

Constant true.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Constant true.

Linux

Constant true.

Windows

Runtime determined.

bool hasAsyncCopy

Indicates that the device driver supports asynchronously issued copy operations.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Constant true.

Linux

Constant true.

Windows

Constant true.

bool hasReadMultisampledDepth

Indicates that the device driver supports reading from multi-sampled depth stencil targets.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant true.

tvOS

Constant true.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Constant true.

Linux

Constant true.

Windows

Runtime determined.

bool hasInstanceID

Indicates that the device driver supports instance id system variable in shaders.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant true.

tvOS

Constant true.

Nintendo Switch

Constant true.

Android

Runtime determined.

macOS

Constant true.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasConservativeRassterization

Indicates that the device driver supports conservative rastering.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Runtime determined.

macOS

Constant false.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasQuadTessellation

Indicates that the device driver supports quad tessellation.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Runtime determined.

macOS

Constant false.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasGather4

Indicates that the device driver supports gather intrinsic in shaders.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant true.

tvOS

Constant true.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Constant true.

Linux

Constant true.

Windows

Runtime determined.

bool hasAlphaCoverage

Indicates that the device driver supports the alpha to coverage raster feature.

Todo:

Candidate for removal if situation for PS4/5 is clarified, there it seems to be not implemented.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant true.

tvOS

Constant true.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Constant true.

Linux

Constant true.

Windows

Constant true.

bool hasWellSupportedIndirect

Indicates that the device driver supports indirect drawing.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant true.

Android

Runtime determined.

macOS

Constant false.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasBindless

Indicates that the device driver supports the bindless API and resource access in shaders.

Todo:

May need to split into multiple caps as some drivers do not support buffers.

Bug:

Nintendo Switch is experimental support and so is not a constant cap yet.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Runtime determined.

Android

Runtime determined.

macOS

Runtime determined.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasNVApi

Indicates that the device driver has detected that the Nvidia driver API is available for the render device.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasATIApi

Indicates that the device driver has detected that the AMD / ATI driver API is available for the render device.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasVariableRateShading

Indicates that the device driver supports basic per draw shading rates.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasVariableRateShadingTexture

Indicates that the device driver supports shading rate textures as a source of shading rate information.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasVariableRateShadingShaderOutput

Indicates that the device driver supports shader generated shading rates.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasVariableRateShadingCombiners

Indicates that the device driver supports combiners for variable rate shading to select the final shading rate.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasVariableRateShadingBy4

Indicates that the device driver supports variable rate shading blocks with sizes of 4 in X and Y direction.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasAliasedTextures

Indicates that the device driver supports creation of aliased textures.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasResourceHeaps

Indicates that the device driver supports the resource heap API.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Indicates that the device driver supports the resource heap API.

PlayStation 5

Indicates that the device driver supports the resource heap API.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Runtime determined.

macOS

Constant false.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasBufferOverlapCopy

Indicates that the device driver supports overlapping buffer copies.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasBufferOverlapRegionsCopy

Indicates that the device driver uses region based copies when overlapping copies are executed.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasUAVOnlyForcedSampleCount

Indicates that the device driver supports forced multisample count without render targets and only outputting to UAVs.

Bug:

There is no way of querying the number of samples that are supported. So the Vulkan driver, for example, assumes 1, 2, 4 and 8 samples to be required.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant true.

Android

Runtime determined.

macOS

Runtime determined.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasShader64BitIntegerResources

Indicates that the device driver supports 64 bit integers shader resource types.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasNativeRenderPassSubPasses

Indicates that the device driver is not emulating render sup-passes.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Constant false.

Linux

Constant true.

Windows

Runtime determined.

bool hasTiled2DResources

Indicates that the device driver supports tiled 2D textures.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasTiled3DResources

Indicates that the device driver supports tiled 3D textures;.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasTiledSafeResourcesAccess

Indicates that the device driver supports safe read and write access for not mapped tiles of tiled resources. Such reads return 0 and writes are ignored.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasTiledMemoryAliasing

Indicates that the device driver supports memory aliasing of multiple tiles.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasDLSS

Indicates that the device driver supports Nvidia DLSS. DLSS stand for Deep Learning Super Sampling.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasXESS

Indicates that the device driver supports Intel XESS. XESS stands for Xe Super Sampling.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasDrawID

Indicates that the device driver supports draw id in shaders.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Runtime determined.

Linux

Constant true.

Windows

Runtime determined.

bool hasMeshShader

Indicates that the device driver supports the mesh shader pipeline.

The mesh shader pipeline is a one or two shader stage that replaces the vertex shader based pre raster portion of the graphics pipeline. Mesh shaders are compute shaders that generate vertices and indices which form primitives like triangles or lines.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasBasicViewInstancing

Indicates that the device driver supports basic view instancing.

View instancing may be implemented with replicating render commands for each view.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasOptimizedViewInstancing

Indicates that the device driver has some optimizations for view instanced rendering.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasAcceleratedViewInstancing

Indicates that the device driver has hardware acceleration to natively support view instanced rendering.

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Runtime determined.

bool hasRenderPassDepthResolve

Indicates that the device driver can resolve multi-sampled depth stencil render targets in a render pass.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Runtime determined.

tvOS

Runtime determined.

Nintendo Switch

Runtime determined.

Android

Runtime determined.

macOS

Runtime determined.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasStereoExpansion

Indicates that the device driver supports stereo render expansion.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant true.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Constant false.

macOS

Constant false.

Linux

Constant false.

Windows

Constant false.

bool hasTileBasedArchitecture

Indicates that the device driver architecture is known to be a tile renderer.

Tile renderers bin raster work into tiles and execute rastering and pixel shaders tile by tile to reduce bandwidth to off chip memory (RAM). Certain optimizations favor regular rasterers over tiled rasterers and vice versa.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant true.

tvOS

Constant true.

Nintendo Switch

Constant false.

Android

Runtime determined.

macOS

Constant false.

Linux

Indicates that the device driver architecture is known to be a tile renderer.

Windows

Indicates that the device driver architecture is known to be a tile renderer.

bool hasLazyMemory

Indicates that the device driver supports lazily allocated memory.

Supported on most TBDR GPUs, allocates memory by on-chip tile/framebuffer memory for transient render targets.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Runtime determined.

macOS

Constant false.

Linux

Constant false.

Windows

Constant false.

bool hasIndirectSupport

Indicates that the device driver set when hw doesn’t support indirect calls.

This is at least true on some of the older iOS hardware (A8) which can’t do either drawIndirect nor dispatchIndirect

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Runtime determined.

tvOS

Runtime determined.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Constant true.

Linux

Constant true.

Windows

Constant true.

bool hasCompareSampler

Indicates that the device driver set when hw doesn’t support comparison samplers.

This is at least true on some of the older iOS hardware (A8) which can only do constexp inline samplers and we don’t wanna open this can of worm

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Runtime determined.

tvOS

Runtime determined.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Constant true.

Linux

Constant true.

Windows

Constant true.

bool hasShaderFloat16Support

Indicates that the device driver supports 16-bit floating-point types in shaders for arithmetic operations.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

DeviceDriverCapabilitiesXboxOne::”hasShaderFloat16Support” “Xbox One”

DeviceDriverCapabilitiesXboxOne::”hasShaderFloat16Support” “Xbox Series X / S”

DeviceDriverCapabilitiesPS4::”hasShaderFloat16Support” “PlayStation 4”

DeviceDriverCapabilitiesPS4::”hasShaderFloat16Support” “PlayStation 5”

DeviceDriverCapabilitiesIOS::”hasShaderFloat16Support” “iOS”

DeviceDriverCapabilitiesTVOS::”hasShaderFloat16Support” “tvOS”

Nintendo Switch

Runtime determined.

Android

Runtime determined.

DeviceDriverCapabilitiesMacOSX::”hasShaderFloat16Support” “macOS”

Linux

Runtime determined.

Windows

Runtime determined.

bool hasUAVOnEveryStage

Indicates that the device driver supports UAV access in every shader stage, without this cap UAV is only available in pixel and compute shaders.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

DeviceDriverCapabilitiesXboxOne::”hasUAVOnEveryStage” “Xbox One”

DeviceDriverCapabilitiesXboxOne::”hasUAVOnEveryStage” “Xbox Series X / S”

DeviceDriverCapabilitiesPS4::”hasUAVOnEveryStage” “PlayStation 4”

DeviceDriverCapabilitiesPS4::”hasUAVOnEveryStage” “PlayStation 5”

DeviceDriverCapabilitiesIOS::”hasUAVOnEveryStage” “iOS”

DeviceDriverCapabilitiesTVOS::”hasUAVOnEveryStage” “tvOS”

DeviceDriverCapabilitiesNintendoSwitch::”hasUAVOnEveryStage” “Nintendo Switch”

DeviceDriverCapabilitiesAndroid::”hasUAVOnEveryStage” “Android”

DeviceDriverCapabilitiesMacOSX::”hasUAVOnEveryStage” “macOS”

DeviceDriverCapabilitiesLinux::”hasUAVOnEveryStage” “Linux”

Windows

Runtime determined.

bool hasRayAccelerationStructure

Indicates that the device driver supports acceleration structures for ray tracing / ray queries, will be true if hasRayAccelerationStructure, hasRayQuery and / or hasRayDispatch is supported. The vertex format of VSDT_FLOAT3 is guaranteed, for additional formats d3d::raytrace::check_vertex_format_support_for_acceleration_structure_build needs to be used to check for support.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Indicates that the device driver supports acceleration structures for ray tracing / ray queries, will be true if hasRayAccelerationStructure, hasRayQuery and / or hasRayDispatch is supported. The vertex format of VSDT_FLOAT3 is guaranteed, for additional formats d3d::raytrace::check_vertex_format_support_for_acceleration_structure_build needs to be used to check for support.

tvOS

Indicates that the device driver supports acceleration structures for ray tracing / ray queries, will be true if hasRayAccelerationStructure, hasRayQuery and / or hasRayDispatch is supported. The vertex format of VSDT_FLOAT3 is guaranteed, for additional formats d3d::raytrace::check_vertex_format_support_for_acceleration_structure_build needs to be used to check for support.

Nintendo Switch

Constant false.

Android

Runtime determined.

macOS

Indicates that the device driver supports acceleration structures for ray tracing / ray queries, will be true if hasRayAccelerationStructure, hasRayQuery and / or hasRayDispatch is supported. The vertex format of VSDT_FLOAT3 is guaranteed, for additional formats d3d::raytrace::check_vertex_format_support_for_acceleration_structure_build needs to be used to check for support.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasRayQuery

Indicates that the device driver supports ray queries (“inline ray tracing”) in any shader stage.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Runtime determined.

tvOS

Runtime determined.

Nintendo Switch

Constant false.

Android

Runtime determined.

macOS

Runtime determined.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasRayDispatch

Indicates that the device driver supports ray dispatch with its own ray tracing shader stage.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Constant false.

tvOS

Constant false.

Nintendo Switch

Constant false.

Android

Runtime determined.

macOS

Constant false.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasIndirectRayDispatch

Indicates that the device driver supports indirect dispatch for dispatch rays.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Runtime determined.

tvOS

Runtime determined.

Nintendo Switch

Constant false.

Android

Runtime determined.

macOS

Runtime determined.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasGeometryIndexInRayAccelerationStructure

Indicates that the device driver supports geometry index information in acceleration structures in ray tracing / ray query shaders.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Runtime determined.

tvOS

Runtime determined.

Nintendo Switch

Constant false.

Android

Runtime determined.

macOS

Runtime determined.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasSkipPrimitiveTypeInRayTracingShaders

Indicates that the device driver supports masking flags in shaders to ignore triangle or procedural geometry during traversal.

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant true.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Runtime determined.

tvOS

Runtime determined.

Nintendo Switch

Constant false.

Android

Runtime determined.

macOS

Runtime determined.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasBaseVertexSupport

Indicates that the device driver is false when HW does not support draw cals with non-zero baseVertex.

This feature is not supported by older iOS hardware (such as A8 chips)

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Runtime determined.

tvOS

Runtime determined.

Nintendo Switch

Constant true.

Android

Constant true.

macOS

Runtime determined.

Linux

Constant true.

Windows

Constant true.

bool castingFullyTypedFormatsSupported

Indicates that the device driver castingFullyTypedFormatsSupported supports casting (aliasing) fully typed formats between each other (same as op3.CastingFullyTypedFormatSupported in DX12)

Remark

Some drivers without support could support this feature, but do not implement it yet.

Note

Platform

Value

Xbox One

Constant false.

Xbox Series X / S

Constant false.

PlayStation 4

Constant false.

PlayStation 5

Constant false.

iOS

Runtime determined.

tvOS

Runtime determined.

Nintendo Switch

Constant false.

Android

Runtime determined.

macOS

Runtime determined.

Linux

Runtime determined.

Windows

Runtime determined.

bool hasNativeRayTracePipelineExpansion
bool hasWaveOps

Indicates that the device driver supports wave ops.

  • “xbone”, “scarlett”, “ps4”, “ps5”, “ios”, “tvos”, “nswitch”, “android”, “mac”, “linux”, “win32” should be one of the following

Note

Platform

Value

Xbox One

Constant true.

Xbox Series X / S

Constant true.

PlayStation 4

Constant true.

PlayStation 5

Constant true.

iOS

Constant true.

tvOS

Constant true.

Nintendo Switch

Runtime determined.

Android

Runtime determined.

macOS

Constant true.

Linux

Runtime determined.

Windows

Runtime determined.

supports waveOps

struct DeviceDriverCapabilitiesXboxOne : public DeviceDriverCapabilitiesBase

Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for Xbox One.

Subclassed by DeviceDriverCapabilitiesScarlett

Public Static Attributes

static constexpr bool hasAnisotropicFilter = true

Constant true.

Indicates that the device driver supports anisotropic filtering of textures.

static constexpr bool hasDepthReadOnly = true

Constant true.

Indicates that the device driver supports constant depth stencil targets that allow simultaneous sampling as a shader resource.

static constexpr bool hasStructuredBuffers = true

Constant true.

Indicates that the device driver supports structured buffer types.

static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true

Constant true.

Indicates that the device driver supports locking of structured buffers with the no-overwrite method.

static constexpr bool hasForcedSamplerCount = true

Constant true.

Indicates that the device driver supports forced multi-sample count during raster phase.

static constexpr bool hasVolMipMap = true

Constant true.

Indicates that the device driver supports mipmaps for vol (eg 3D) textures.

static constexpr bool hasAsyncCompute = false

Constant false.

Indicates that the device driver supports GpuPipeline::ASYNC_COMPUTE as selected pipeline when applicable.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasOcclusionQuery = true

Constant true.

Indicates that the device driver supports occlusion queries.

static constexpr bool hasConstBufferOffset = true

Constant true.

Indicates that the device driver supports values other than 0 for consts_offset of d3d::set_const_buffer.

static constexpr bool hasDepthBoundsTest = true

Constant true.

Indicates that the device driver supports depth bounds testing. See d3d::set_depth_bounds for details of depth bounds testing.

static constexpr bool hasConditionalRender = true

Constant true.

Indicates that the device driver supports conditional rendering.

static constexpr bool hasResourceCopyConversion = true

Constant true.

Indicates that the device driver supports copy of textures of different but compatible formats.

static constexpr bool hasAsyncCopy = true

Constant true.

Indicates that the device driver supports asynchronously issued copy operations.

static constexpr bool hasReadMultisampledDepth = true

Constant true.

Indicates that the device driver supports reading from multi-sampled depth stencil targets.

static constexpr bool hasInstanceID = true

Constant true.

Indicates that the device driver supports instance id system variable in shaders.

static constexpr bool hasConservativeRassterization = false

Constant false.

Indicates that the device driver supports conservative rastering.

static constexpr bool hasQuadTessellation = true

Constant true.

Indicates that the device driver supports quad tessellation.

static constexpr bool hasGather4 = true

Constant true.

Indicates that the device driver supports gather intrinsic in shaders.

static constexpr bool hasAlphaCoverage = true

Constant true.

Indicates that the device driver supports the alpha to coverage raster feature.

static constexpr bool hasWellSupportedIndirect = true

Constant true.

Indicates that the device driver supports indirect drawing.

static constexpr bool hasBindless = true

Constant true.

Indicates that the device driver supports the bindless API and resource access in shaders.

static constexpr bool hasNVApi = false

Constant false.

Indicates that the device driver has detected that the Nvidia driver API is available for the render device.

static constexpr bool hasATIApi = false

Constant false.

Indicates that the device driver has detected that the AMD / ATI driver API is available for the render device.

static constexpr bool hasVariableRateShading = false

Constant false.

Indicates that the device driver supports basic per draw shading rates.

static constexpr bool hasVariableRateShadingTexture = false

Constant false.

Indicates that the device driver supports shading rate textures as a source of shading rate information.

static constexpr bool hasVariableRateShadingShaderOutput = false

Constant false.

Indicates that the device driver supports shader generated shading rates.

static constexpr bool hasVariableRateShadingCombiners = false

Constant false.

Indicates that the device driver supports combiners for variable rate shading to select the final shading rate.

static constexpr bool hasVariableRateShadingBy4 = false

Constant false.

Indicates that the device driver supports variable rate shading blocks with sizes of 4 in X and Y direction.

static constexpr bool hasAliasedTextures = true

Constant true.

Indicates that the device driver supports creation of aliased textures.

static constexpr bool hasResourceHeaps = true

Constant true.

Indicates that the device driver supports the resource heap API.

static constexpr bool hasBufferOverlapCopy = true

Constant true.

Indicates that the device driver supports overlapping buffer copies.

static constexpr bool hasBufferOverlapRegionsCopy = false

Constant false.

Indicates that the device driver uses region based copies when overlapping copies are executed.

static constexpr bool hasUAVOnlyForcedSampleCount = true

Constant true.

Indicates that the device driver supports forced multisample count without render targets and only outputting to UAVs.

static constexpr bool hasShader64BitIntegerResources = false

Constant false.

Indicates that the device driver supports 64 bit integers shader resource types.

static constexpr bool hasNativeRenderPassSubPasses = false

Constant false.

Indicates that the device driver is not emulating render sup-passes.

static constexpr bool hasTiled2DResources = true

Constant true.

Indicates that the device driver supports tiled 2D textures.

static constexpr bool hasTiled3DResources = true

Constant true.

Indicates that the device driver supports tiled 3D textures;.

static constexpr bool hasTiledSafeResourcesAccess = true

Constant true.

Indicates that the device driver supports safe read and write access for not mapped tiles of tiled resources. Such reads return 0 and writes are ignored.

static constexpr bool hasTiledMemoryAliasing = true

Constant true.

Indicates that the device driver supports memory aliasing of multiple tiles.

static constexpr bool hasDLSS = false

Constant false.

Indicates that the device driver supports Nvidia DLSS. DLSS stand for Deep Learning Super Sampling.

static constexpr bool hasXESS = false

Constant false.

Indicates that the device driver supports Intel XESS. XESS stands for Xe Super Sampling.

static constexpr bool hasDrawID = true

Constant true.

Indicates that the device driver supports draw id in shaders.

static constexpr bool hasMeshShader = false

Constant false.

Indicates that the device driver supports the mesh shader pipeline.

static constexpr bool hasBasicViewInstancing = true

Constant true.

Indicates that the device driver supports basic view instancing.

static constexpr bool hasOptimizedViewInstancing = true

Constant true.

Indicates that the device driver has some optimizations for view instanced rendering.

static constexpr bool hasAcceleratedViewInstancing = true

Constant true.

Indicates that the device driver has hardware acceleration to natively support view instanced rendering.

static constexpr bool hasRenderPassDepthResolve = false

Constant false.

Indicates that the device driver can resolve multi-sampled depth stencil render targets in a render pass.

static constexpr bool hasStereoExpansion = false

Constant false.

Indicates that the device driver supports stereo render expansion.

static constexpr bool hasTileBasedArchitecture = false

Constant false.

Indicates that the device driver architecture is known to be a tile renderer.

static constexpr bool hasLazyMemory = false

Constant false.

Indicates that the device driver supports lazily allocated memory.

static constexpr bool hasIndirectSupport = true

Constant true.

Indicates that the device driver set when hw doesn’t support indirect calls.

static constexpr bool hasCompareSampler = true

Constant true.

Indicates that the device driver set when hw doesn’t support comparison samplers.

static constexpr bool hasShaderFloat16Support = true

Constant false.

Indicates that the device driver supports 16-bit floating-point types in shaders for arithmetic operations.

static constexpr bool hasUAVOnEveryStage = true

Constant true.

Indicates that the device driver supports UAV access in every shader stage, without this cap UAV is only available in pixel and compute shaders.

static constexpr bool hasRayAccelerationStructure = false

Constant false.

Indicates that the device driver supports acceleration structures for ray tracing / ray queries, will be true if hasRayAccelerationStructure, hasRayQuery and / or hasRayDispatch is supported. The vertex format of VSDT_FLOAT3 is guaranteed, for additional formats d3d::raytrace::check_vertex_format_support_for_acceleration_structure_build needs to be used to check for support.

static constexpr bool hasRayQuery = false

Constant false.

Indicates that the device driver supports ray queries (“inline ray tracing”) in any shader stage.

static constexpr bool hasRayDispatch = false

Constant false.

Indicates that the device driver supports ray dispatch with its own ray tracing shader stage.

static constexpr bool hasIndirectRayDispatch = false

Constant false.

Indicates that the device driver supports indirect dispatch for dispatch rays.

static constexpr bool hasGeometryIndexInRayAccelerationStructure = false

Constant false.

Indicates that the device driver supports geometry index information in acceleration structures in ray tracing / ray query shaders.

static constexpr bool hasSkipPrimitiveTypeInRayTracingShaders = false

Constant false.

Indicates that the device driver supports masking flags in shaders to ignore triangle or procedural geometry during traversal.

static constexpr bool hasBaseVertexSupport = true

Constant true.

Indicates that the device driver is false when HW does not support draw cals with non-zero baseVertex.

static constexpr bool castingFullyTypedFormatsSupported = false

Constant false.

Indicates that the device driver castingFullyTypedFormatsSupported supports casting (aliasing) fully typed formats between each other (same as op3.CastingFullyTypedFormatSupported in DX12)

static constexpr bool hasNativeRayTracePipelineExpansion = false

Constant false.

See also

DeviceDriverCapabilitiesBase::hasNativeRayTracePipelineExpansion

static constexpr bool hasWaveOps = true

Constant true.

Indicates that the device driver supports wave ops.

struct DeviceDriverCapabilitiesScarlett : public DeviceDriverCapabilitiesXboxOne

Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for Xbox Series X / S.

Uses Xbox One optimized values and overrides only differences.

Public Static Attributes

static constexpr bool hasConservativeRassterization = true

Constant true.

Indicates that the device driver supports conservative rastering.

static constexpr bool hasVariableRateShading = true

Constant true.

Indicates that the device driver supports basic per draw shading rates.

static constexpr bool hasVariableRateShadingTexture = true

Constant true.

Indicates that the device driver supports shading rate textures as a source of shading rate information.

static constexpr bool hasVariableRateShadingShaderOutput = true

Constant true.

Indicates that the device driver supports shader generated shading rates.

static constexpr bool hasVariableRateShadingCombiners = true

Constant true.

Indicates that the device driver supports combiners for variable rate shading to select the final shading rate.

static constexpr bool hasShader64BitIntegerResources = true

Constant true.

Indicates that the device driver supports 64 bit integers shader resource types.

Warning

Documentation states that HLSL 6.6 64 bit atomics are not supported directly, but HLSL xbox extensions that offer 64 bit atomics are. So they may need different instructions to support the same operations.

static constexpr bool hasMeshShader = true

Constant true.

Indicates that the device driver supports the mesh shader pipeline.

Warning

Documentation is contradicting it self about proper support of indirect dispatch with pipelines that use amplification shaders.

static constexpr bool hasRayAccelerationStructure = true

Constant true.

Indicates that the device driver supports acceleration structures for ray tracing / ray queries, will be true if hasRayAccelerationStructure, hasRayQuery and / or hasRayDispatch is supported. The vertex format of VSDT_FLOAT3 is guaranteed, for additional formats d3d::raytrace::check_vertex_format_support_for_acceleration_structure_build needs to be used to check for support.

static constexpr bool hasRayQuery = true

Constant true.

Indicates that the device driver supports ray queries (“inline ray tracing”) in any shader stage.

Warning

This is not directly supported, there is a software implementation available, see GDK documentation for details.

static constexpr bool hasRayDispatch = true

Constant true.

Indicates that the device driver supports ray dispatch with its own ray tracing shader stage.

static constexpr bool hasIndirectRayDispatch = true

Constant true.

Indicates that the device driver supports indirect dispatch for dispatch rays.

static constexpr bool hasGeometryIndexInRayAccelerationStructure = true

Constant true.

Indicates that the device driver supports geometry index information in acceleration structures in ray tracing / ray query shaders.

static constexpr bool hasSkipPrimitiveTypeInRayTracingShaders = true

Constant true.

Indicates that the device driver supports masking flags in shaders to ignore triangle or procedural geometry during traversal.

static constexpr bool hasBaseVertexSupport = true

Constant true.

Indicates that the device driver is false when HW does not support draw cals with non-zero baseVertex.

static constexpr bool castingFullyTypedFormatsSupported = false

Constant false.

Indicates that the device driver castingFullyTypedFormatsSupported supports casting (aliasing) fully typed formats between each other (same as op3.CastingFullyTypedFormatSupported in DX12)

static constexpr bool hasNativeRayTracePipelineExpansion = true

Constant true.

See also

DeviceDriverCapabilitiesBase::hasNativeRayTracePipelineExpansion

struct DeviceDriverCapabilitiesPS4 : public DeviceDriverCapabilitiesBase

Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for PlayStation 4.

Subclassed by DeviceDriverCapabilitiesPS5

Public Static Attributes

static constexpr bool hasAnisotropicFilter = true

Constant true.

Indicates that the device driver supports anisotropic filtering of textures.

static constexpr bool hasDepthReadOnly = true

Constant true.

Indicates that the device driver supports constant depth stencil targets that allow simultaneous sampling as a shader resource.

static constexpr bool hasStructuredBuffers = true

Constant true.

Indicates that the device driver supports structured buffer types.

static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true

Constant true.

Indicates that the device driver supports locking of structured buffers with the no-overwrite method.

static constexpr bool hasForcedSamplerCount = false

Constant false.

Indicates that the device driver supports forced multi-sample count during raster phase.

static constexpr bool hasVolMipMap = true

Constant true.

Indicates that the device driver supports mipmaps for vol (eg 3D) textures.

static constexpr bool hasOcclusionQuery = true

Constant true.

Indicates that the device driver supports occlusion queries.

static constexpr bool hasConstBufferOffset = false

Constant false.

Indicates that the device driver supports values other than 0 for consts_offset of d3d::set_const_buffer.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasDepthBoundsTest = true

Constant true.

Indicates that the device driver supports depth bounds testing. See d3d::set_depth_bounds for details of depth bounds testing.

static constexpr bool hasConditionalRender = true

Constant true.

Indicates that the device driver supports conditional rendering.

static constexpr bool hasResourceCopyConversion = true

Constant true.

Indicates that the device driver supports copy of textures of different but compatible formats.

static constexpr bool hasAsyncCopy = true

Constant true.

Indicates that the device driver supports asynchronously issued copy operations.

static constexpr bool hasReadMultisampledDepth = false

Constant false.

Indicates that the device driver supports reading from multi-sampled depth stencil targets.

static constexpr bool hasInstanceID = true

Constant true.

Indicates that the device driver supports instance id system variable in shaders.

static constexpr bool hasConservativeRassterization = false

Constant false.

Indicates that the device driver supports conservative rastering.

static constexpr bool hasQuadTessellation = true

Constant true.

Indicates that the device driver supports quad tessellation.

static constexpr bool hasGather4 = false

Constant false.

Indicates that the device driver supports gather intrinsic in shaders.

Todo:

Clarify why no support is advertised.

static constexpr bool hasAlphaCoverage = false

Constant false.

Indicates that the device driver supports the alpha to coverage raster feature.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasWellSupportedIndirect = true

Constant true.

Indicates that the device driver supports indirect drawing.

static constexpr bool hasBindless = true

Constant true.

Indicates that the device driver supports the bindless API and resource access in shaders.

static constexpr bool hasNVApi = false

Constant false.

Indicates that the device driver has detected that the Nvidia driver API is available for the render device.

static constexpr bool hasATIApi = false

Constant false.

Indicates that the device driver has detected that the AMD / ATI driver API is available for the render device.

static constexpr bool hasVariableRateShading = false

Constant false.

Indicates that the device driver supports basic per draw shading rates.

static constexpr bool hasVariableRateShadingTexture = false

Constant false.

Indicates that the device driver supports shading rate textures as a source of shading rate information.

static constexpr bool hasVariableRateShadingShaderOutput = false

Constant false.

Indicates that the device driver supports shader generated shading rates.

static constexpr bool hasVariableRateShadingCombiners = false

Constant false.

Indicates that the device driver supports combiners for variable rate shading to select the final shading rate.

static constexpr bool hasVariableRateShadingBy4 = false

Constant false.

Indicates that the device driver supports variable rate shading blocks with sizes of 4 in X and Y direction.

static constexpr bool hasAliasedTextures = true

Constant true.

Indicates that the device driver supports creation of aliased textures.

static constexpr bool hasBufferOverlapCopy = false

Constant false.

Indicates that the device driver supports overlapping buffer copies.

static constexpr bool hasBufferOverlapRegionsCopy = false

Constant false.

Indicates that the device driver uses region based copies when overlapping copies are executed.

static constexpr bool hasUAVOnlyForcedSampleCount = true

Constant true.

Indicates that the device driver supports forced multisample count without render targets and only outputting to UAVs.

static constexpr bool hasShader64BitIntegerResources = false

Constant false.

Indicates that the device driver supports 64 bit integers shader resource types.

static constexpr bool hasNativeRenderPassSubPasses = false

Constant false.

Indicates that the device driver is not emulating render sup-passes.

static constexpr bool hasTiled2DResources = false

Constant false.

Indicates that the device driver supports tiled 2D textures.

static constexpr bool hasTiled3DResources = false

Constant false.

Indicates that the device driver supports tiled 3D textures;.

static constexpr bool hasTiledSafeResourcesAccess = false

Constant false.

Indicates that the device driver supports safe read and write access for not mapped tiles of tiled resources. Such reads return 0 and writes are ignored.

static constexpr bool hasTiledMemoryAliasing = false

Constant false.

Indicates that the device driver supports memory aliasing of multiple tiles.

static constexpr bool hasDLSS = false

Constant false.

Indicates that the device driver supports Nvidia DLSS. DLSS stand for Deep Learning Super Sampling.

static constexpr bool hasXESS = false

Constant false.

Indicates that the device driver supports Intel XESS. XESS stands for Xe Super Sampling.

static constexpr bool hasDrawID = true

Constant true.

Indicates that the device driver supports draw id in shaders.

static constexpr bool hasMeshShader = false

Constant false.

Indicates that the device driver supports the mesh shader pipeline.

static constexpr bool hasBasicViewInstancing = false

Constant false.

Indicates that the device driver supports basic view instancing.

static constexpr bool hasOptimizedViewInstancing = false

Constant false.

Indicates that the device driver has some optimizations for view instanced rendering.

static constexpr bool hasAcceleratedViewInstancing = false

Constant false.

Indicates that the device driver has hardware acceleration to natively support view instanced rendering.

static constexpr bool hasRenderPassDepthResolve = false

Constant false.

Indicates that the device driver can resolve multi-sampled depth stencil render targets in a render pass.

static constexpr bool hasStereoExpansion = false

Constant false.

Indicates that the device driver supports stereo render expansion.

static constexpr bool hasTileBasedArchitecture = false

Constant false.

Indicates that the device driver architecture is known to be a tile renderer.

static constexpr bool hasLazyMemory = false

Constant false.

Indicates that the device driver supports lazily allocated memory.

static constexpr bool hasIndirectSupport = true

Constant true.

Indicates that the device driver set when hw doesn’t support indirect calls.

static constexpr bool hasCompareSampler = true

Constant true.

Indicates that the device driver set when hw doesn’t support comparison samplers.

static constexpr bool hasShaderFloat16Support = false

Constant false.

Indicates that the device driver supports 16-bit floating-point types in shaders for arithmetic operations.

static constexpr bool hasUAVOnEveryStage = true

Constant true.

Indicates that the device driver supports UAV access in every shader stage, without this cap UAV is only available in pixel and compute shaders.

static constexpr bool hasRayAccelerationStructure = false

Constant false.

Indicates that the device driver supports acceleration structures for ray tracing / ray queries, will be true if hasRayAccelerationStructure, hasRayQuery and / or hasRayDispatch is supported. The vertex format of VSDT_FLOAT3 is guaranteed, for additional formats d3d::raytrace::check_vertex_format_support_for_acceleration_structure_build needs to be used to check for support.

static constexpr bool hasRayQuery = false

Constant false.

Indicates that the device driver supports ray queries (“inline ray tracing”) in any shader stage.

static constexpr bool hasRayDispatch = false

Constant false.

Indicates that the device driver supports ray dispatch with its own ray tracing shader stage.

static constexpr bool hasIndirectRayDispatch = false

Constant false.

Indicates that the device driver supports indirect dispatch for dispatch rays.

static constexpr bool hasGeometryIndexInRayAccelerationStructure = false

Constant false.

Indicates that the device driver supports geometry index information in acceleration structures in ray tracing / ray query shaders.

static constexpr bool hasSkipPrimitiveTypeInRayTracingShaders = false

Constant false.

Indicates that the device driver supports masking flags in shaders to ignore triangle or procedural geometry during traversal.

static constexpr bool hasBaseVertexSupport = true

Constant true.

Indicates that the device driver is false when HW does not support draw cals with non-zero baseVertex.

static constexpr bool castingFullyTypedFormatsSupported = false

Constant false.

Indicates that the device driver castingFullyTypedFormatsSupported supports casting (aliasing) fully typed formats between each other (same as op3.CastingFullyTypedFormatSupported in DX12)

static constexpr bool hasNativeRayTracePipelineExpansion = false

Constant false.

See also

DeviceDriverCapabilitiesBase::hasNativeRayTracePipelineExpansion

static constexpr bool hasWaveOps = true

Constant true.

Indicates that the device driver supports wave ops.

struct DeviceDriverCapabilitiesPS5 : public DeviceDriverCapabilitiesPS4

Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for PlayStation 5.

Uses PlayStation 4 optimized values and overrides only differences.

Public Static Attributes

static constexpr bool hasStereoExpansion = true

Constant true.

Indicates that the device driver supports stereo render expansion.

static constexpr bool hasRayAccelerationStructure = true

Constant false.

Indicates that the device driver supports acceleration structures for ray tracing / ray queries, will be true if hasRayAccelerationStructure, hasRayQuery and / or hasRayDispatch is supported. The vertex format of VSDT_FLOAT3 is guaranteed, for additional formats d3d::raytrace::check_vertex_format_support_for_acceleration_structure_build needs to be used to check for support.

static constexpr bool hasRayQuery = true

Constant false.

Indicates that the device driver supports ray queries (“inline ray tracing”) in any shader stage.

static constexpr bool hasRayDispatch = false

Constant false.

Indicates that the device driver supports ray dispatch with its own ray tracing shader stage.

static constexpr bool hasIndirectRayDispatch = false

Constant false.

Indicates that the device driver supports indirect dispatch for dispatch rays.

static constexpr bool hasGeometryIndexInRayAccelerationStructure = false

Constant false.

Indicates that the device driver supports geometry index information in acceleration structures in ray tracing / ray query shaders.

static constexpr bool hasSkipPrimitiveTypeInRayTracingShaders = false

Constant false.

Indicates that the device driver supports masking flags in shaders to ignore triangle or procedural geometry during traversal.

struct DeviceDriverCapabilitiesIOS : public DeviceDriverCapabilitiesBase

Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for iOS.

Public Static Attributes

static constexpr bool hasAnisotropicFilter = true

Constant true.

Indicates that the device driver supports anisotropic filtering of textures.

static constexpr bool hasDepthReadOnly = false

Constant false.

Indicates that the device driver supports constant depth stencil targets that allow simultaneous sampling as a shader resource.

static constexpr bool hasStructuredBuffers = true

Constant true.

Indicates that the device driver supports structured buffer types.

static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true

Constant true.

Indicates that the device driver supports locking of structured buffers with the no-overwrite method.

static constexpr bool hasForcedSamplerCount = false

Constant false.

Indicates that the device driver supports forced multi-sample count during raster phase.

static constexpr bool hasVolMipMap = true

Constant true.

Indicates that the device driver supports mipmaps for vol (eg 3D) textures.

static constexpr bool hasAsyncCompute = false

Constant false.

Indicates that the device driver supports GpuPipeline::ASYNC_COMPUTE as selected pipeline when applicable.

static constexpr bool hasOcclusionQuery = true

Constant true.

Indicates that the device driver supports occlusion queries.

static constexpr bool hasConstBufferOffset = false

Constant false.

Indicates that the device driver supports values other than 0 for consts_offset of d3d::set_const_buffer.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasDepthBoundsTest = false

Constant false.

Indicates that the device driver supports depth bounds testing. See d3d::set_depth_bounds for details of depth bounds testing.

static constexpr bool hasConditionalRender = false

Constant false.

Indicates that the device driver supports conditional rendering.

static constexpr bool hasResourceCopyConversion = true

Constant true.

Indicates that the device driver supports copy of textures of different but compatible formats.

static constexpr bool hasAsyncCopy = false

Constant false.

Indicates that the device driver supports asynchronously issued copy operations.

static constexpr bool hasReadMultisampledDepth = true

Constant true.

Indicates that the device driver supports reading from multi-sampled depth stencil targets.

static constexpr bool hasInstanceID = true

Constant true.

Indicates that the device driver supports instance id system variable in shaders.

static constexpr bool hasConservativeRassterization = false

Constant false.

Indicates that the device driver supports conservative rastering.

static constexpr bool hasQuadTessellation = false

Constant false.

Indicates that the device driver supports quad tessellation.

static constexpr bool hasGather4 = true

Constant true.

Indicates that the device driver supports gather intrinsic in shaders.

static constexpr bool hasAlphaCoverage = true

Constant true.

Indicates that the device driver supports the alpha to coverage raster feature.

static constexpr bool hasWellSupportedIndirect = false

Constant false.

Indicates that the device driver supports indirect drawing.

static constexpr bool hasBindless = false

Constant false.

Indicates that the device driver supports the bindless API and resource access in shaders.

static constexpr bool hasNVApi = false

Constant false.

Indicates that the device driver has detected that the Nvidia driver API is available for the render device.

static constexpr bool hasATIApi = false

Constant false.

Indicates that the device driver has detected that the AMD / ATI driver API is available for the render device.

static constexpr bool hasVariableRateShading = false

Constant false.

Indicates that the device driver supports basic per draw shading rates.

static constexpr bool hasVariableRateShadingTexture = false

Constant false.

Indicates that the device driver supports shading rate textures as a source of shading rate information.

static constexpr bool hasVariableRateShadingShaderOutput = false

Constant false.

Indicates that the device driver supports shader generated shading rates.

static constexpr bool hasVariableRateShadingCombiners = false

Constant false.

Indicates that the device driver supports combiners for variable rate shading to select the final shading rate.

static constexpr bool hasVariableRateShadingBy4 = false

Constant false.

Indicates that the device driver supports variable rate shading blocks with sizes of 4 in X and Y direction.

static constexpr bool hasAliasedTextures = false

Constant false.

Indicates that the device driver supports creation of aliased textures.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasResourceHeaps = false

Constant false.

Indicates that the device driver supports the resource heap API.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasBufferOverlapCopy = false

Constant false.

Indicates that the device driver supports overlapping buffer copies.

static constexpr bool hasBufferOverlapRegionsCopy = false

Constant false.

Indicates that the device driver uses region based copies when overlapping copies are executed.

static constexpr bool hasUAVOnlyForcedSampleCount = false

Constant false.

Indicates that the device driver supports forced multisample count without render targets and only outputting to UAVs.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasShader64BitIntegerResources = false

Constant false.

Indicates that the device driver supports 64 bit integers shader resource types.

static constexpr bool hasNativeRenderPassSubPasses = true

Constant false.

Indicates that the device driver is not emulating render sup-passes.

static constexpr bool hasTiled2DResources = false

Constant false.

Indicates that the device driver supports tiled 2D textures.

static constexpr bool hasTiled3DResources = false

Constant false.

Indicates that the device driver supports tiled 3D textures;.

static constexpr bool hasTiledSafeResourcesAccess = false

Constant false.

Indicates that the device driver supports safe read and write access for not mapped tiles of tiled resources. Such reads return 0 and writes are ignored.

static constexpr bool hasTiledMemoryAliasing = false

Constant false.

Indicates that the device driver supports memory aliasing of multiple tiles.

static constexpr bool hasDLSS = false

Constant false.

Indicates that the device driver supports Nvidia DLSS. DLSS stand for Deep Learning Super Sampling.

static constexpr bool hasXESS = false

Constant false.

Indicates that the device driver supports Intel XESS. XESS stands for Xe Super Sampling.

static constexpr bool hasDrawID = false

Constant false.

Indicates that the device driver supports draw id in shaders.

static constexpr bool hasMeshShader = false

Constant false.

Indicates that the device driver supports the mesh shader pipeline.

static constexpr bool hasBasicViewInstancing = false

Constant false.

Indicates that the device driver supports basic view instancing.

static constexpr bool hasOptimizedViewInstancing = false

Constant false.

Indicates that the device driver has some optimizations for view instanced rendering.

static constexpr bool hasAcceleratedViewInstancing = false

Constant false.

Indicates that the device driver has hardware acceleration to natively support view instanced rendering.

static constexpr bool hasStereoExpansion = false

Constant false.

Indicates that the device driver supports stereo render expansion.

static constexpr bool hasTileBasedArchitecture = true

Constant true.

Indicates that the device driver architecture is known to be a tile renderer.

static constexpr bool hasLazyMemory = false

Constant false.

Indicates that the device driver supports lazily allocated memory.

static constexpr bool hasShaderFloat16Support = true

Constant true.

Indicates that the device driver supports 16-bit floating-point types in shaders for arithmetic operations.

static constexpr bool hasUAVOnEveryStage = true

Constant true.

Indicates that the device driver supports UAV access in every shader stage, without this cap UAV is only available in pixel and compute shaders.

static constexpr bool hasRayDispatch = false

Constant false.

Indicates that the device driver supports ray dispatch with its own ray tracing shader stage.

static constexpr bool hasIndirectRayDispatch = false

Constant false.

Indicates that the device driver supports indirect dispatch for dispatch rays.

static constexpr bool castingFullyTypedFormatsSupported = false

Constant false.

Indicates that the device driver castingFullyTypedFormatsSupported supports casting (aliasing) fully typed formats between each other (same as op3.CastingFullyTypedFormatSupported in DX12)

static constexpr bool hasWaveOps = true

Constant true.

Indicates that the device driver supports wave ops.

struct DeviceDriverCapabilitiesTVOS : public DeviceDriverCapabilitiesBase

Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for tvOS.

Public Static Attributes

static constexpr bool hasAnisotropicFilter = true

Constant true.

Indicates that the device driver supports anisotropic filtering of textures.

static constexpr bool hasDepthReadOnly = false

Constant false.

Indicates that the device driver supports constant depth stencil targets that allow simultaneous sampling as a shader resource.

static constexpr bool hasStructuredBuffers = true

Constant true.

Indicates that the device driver supports structured buffer types.

static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true

Constant true.

Indicates that the device driver supports locking of structured buffers with the no-overwrite method.

static constexpr bool hasForcedSamplerCount = false

Constant false.

Indicates that the device driver supports forced multi-sample count during raster phase.

static constexpr bool hasVolMipMap = true

Constant true.

Indicates that the device driver supports mipmaps for vol (eg 3D) textures.

static constexpr bool hasAsyncCompute = false

Constant false.

Indicates that the device driver supports GpuPipeline::ASYNC_COMPUTE as selected pipeline when applicable.

static constexpr bool hasOcclusionQuery = true

Constant true.

Indicates that the device driver supports occlusion queries.

static constexpr bool hasConstBufferOffset = false

Constant false.

Indicates that the device driver supports values other than 0 for consts_offset of d3d::set_const_buffer.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasDepthBoundsTest = false

Constant false.

Indicates that the device driver supports depth bounds testing. See d3d::set_depth_bounds for details of depth bounds testing.

static constexpr bool hasConditionalRender = false

Constant false.

Indicates that the device driver supports conditional rendering.

static constexpr bool hasResourceCopyConversion = true

Constant true.

Indicates that the device driver supports copy of textures of different but compatible formats.

static constexpr bool hasAsyncCopy = false

Constant false.

Indicates that the device driver supports asynchronously issued copy operations.

static constexpr bool hasReadMultisampledDepth = true

Constant true.

Indicates that the device driver supports reading from multi-sampled depth stencil targets.

static constexpr bool hasInstanceID = true

Constant true.

Indicates that the device driver supports instance id system variable in shaders.

static constexpr bool hasConservativeRassterization = false

Constant false.

Indicates that the device driver supports conservative rastering.

static constexpr bool hasQuadTessellation = false

Constant false.

Indicates that the device driver supports quad tessellation.

static constexpr bool hasGather4 = true

Constant true.

Indicates that the device driver supports gather intrinsic in shaders.

static constexpr bool hasAlphaCoverage = true

Constant true.

Indicates that the device driver supports the alpha to coverage raster feature.

static constexpr bool hasWellSupportedIndirect = false

Constant false.

Indicates that the device driver supports indirect drawing.

static constexpr bool hasBindless = false

Constant false.

Indicates that the device driver supports the bindless API and resource access in shaders.

static constexpr bool hasNVApi = false

Constant false.

Indicates that the device driver has detected that the Nvidia driver API is available for the render device.

static constexpr bool hasATIApi = false

Constant false.

Indicates that the device driver has detected that the AMD / ATI driver API is available for the render device.

static constexpr bool hasVariableRateShading = false

Constant false.

Indicates that the device driver supports basic per draw shading rates.

static constexpr bool hasVariableRateShadingTexture = false

Constant false.

Indicates that the device driver supports shading rate textures as a source of shading rate information.

static constexpr bool hasVariableRateShadingShaderOutput = false

Constant false.

Indicates that the device driver supports shader generated shading rates.

static constexpr bool hasVariableRateShadingCombiners = false

Constant false.

Indicates that the device driver supports combiners for variable rate shading to select the final shading rate.

static constexpr bool hasVariableRateShadingBy4 = false

Constant false.

Indicates that the device driver supports variable rate shading blocks with sizes of 4 in X and Y direction.

static constexpr bool hasAliasedTextures = false

Constant false.

Indicates that the device driver supports creation of aliased textures.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasResourceHeaps = false

Constant false.

Indicates that the device driver supports the resource heap API.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasBufferOverlapCopy = false

Constant false.

Indicates that the device driver supports overlapping buffer copies.

static constexpr bool hasBufferOverlapRegionsCopy = false

Constant false.

Indicates that the device driver uses region based copies when overlapping copies are executed.

static constexpr bool hasUAVOnlyForcedSampleCount = false

Constant false.

Indicates that the device driver supports forced multisample count without render targets and only outputting to UAVs.

static constexpr bool hasShader64BitIntegerResources = false

Constant false.

Indicates that the device driver supports 64 bit integers shader resource types.

static constexpr bool hasNativeRenderPassSubPasses = true

Constant false.

Indicates that the device driver is not emulating render sup-passes.

static constexpr bool hasTiled2DResources = false

Constant false.

Indicates that the device driver supports tiled 2D textures.

static constexpr bool hasTiled3DResources = false

Constant false.

Indicates that the device driver supports tiled 3D textures;.

static constexpr bool hasTiledSafeResourcesAccess = false

Constant false.

Indicates that the device driver supports safe read and write access for not mapped tiles of tiled resources. Such reads return 0 and writes are ignored.

static constexpr bool hasTiledMemoryAliasing = false

Constant false.

Indicates that the device driver supports memory aliasing of multiple tiles.

static constexpr bool hasDLSS = false

Constant false.

Indicates that the device driver supports Nvidia DLSS. DLSS stand for Deep Learning Super Sampling.

static constexpr bool hasXESS = false

Constant false.

Indicates that the device driver supports Intel XESS. XESS stands for Xe Super Sampling.

static constexpr bool hasDrawID = false

Constant false.

Indicates that the device driver supports draw id in shaders.

static constexpr bool hasMeshShader = false

Constant false.

Indicates that the device driver supports the mesh shader pipeline.

static constexpr bool hasBasicViewInstancing = false

Constant false.

Indicates that the device driver supports basic view instancing.

static constexpr bool hasOptimizedViewInstancing = false

Constant false.

Indicates that the device driver has some optimizations for view instanced rendering.

static constexpr bool hasAcceleratedViewInstancing = false

Constant false.

Indicates that the device driver has hardware acceleration to natively support view instanced rendering.

static constexpr bool hasStereoExpansion = false

Constant false.

Indicates that the device driver supports stereo render expansion.

static constexpr bool hasTileBasedArchitecture = true

Constant true.

Indicates that the device driver architecture is known to be a tile renderer.

static constexpr bool hasLazyMemory = false

Constant false.

Indicates that the device driver supports lazily allocated memory.

static constexpr bool hasShaderFloat16Support = true

Constant true.

Indicates that the device driver supports 16-bit floating-point types in shaders for arithmetic operations.

static constexpr bool hasUAVOnEveryStage = true

Constant true.

Indicates that the device driver supports UAV access in every shader stage, without this cap UAV is only available in pixel and compute shaders.

static constexpr bool hasRayDispatch = false

Constant false.

Indicates that the device driver supports ray dispatch with its own ray tracing shader stage.

static constexpr bool hasIndirectRayDispatch = false

Constant false.

Indicates that the device driver supports indirect dispatch for dispatch rays.

static constexpr bool castingFullyTypedFormatsSupported = false

Constant false.

Indicates that the device driver castingFullyTypedFormatsSupported supports casting (aliasing) fully typed formats between each other (same as op3.CastingFullyTypedFormatSupported in DX12)

static constexpr bool hasWaveOps = true

Constant true.

Indicates that the device driver supports wave ops.

struct DeviceDriverCapabilitiesNintendoSwitch : public DeviceDriverCapabilitiesBase

Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for Nintendo Switch.

Public Static Attributes

static constexpr bool hasAnisotropicFilter = true

Constant true.

Indicates that the device driver supports anisotropic filtering of textures.

static constexpr bool hasDepthReadOnly = true

Constant true.

Indicates that the device driver supports constant depth stencil targets that allow simultaneous sampling as a shader resource.

static constexpr bool hasStructuredBuffers = true

Constant true.

Indicates that the device driver supports structured buffer types.

static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true

Constant true.

Indicates that the device driver supports locking of structured buffers with the no-overwrite method.

static constexpr bool hasForcedSamplerCount = false

Constant false.

Indicates that the device driver supports forced multi-sample count during raster phase.

static constexpr bool hasVolMipMap = true

Constant true.

Indicates that the device driver supports mipmaps for vol (eg 3D) textures.

static constexpr bool hasAsyncCompute = false

Constant false.

Indicates that the device driver supports GpuPipeline::ASYNC_COMPUTE as selected pipeline when applicable.

static constexpr bool hasOcclusionQuery = false

Constant true.

Indicates that the device driver supports occlusion queries.

static constexpr bool hasConstBufferOffset = false

Constant false.

Indicates that the device driver supports values other than 0 for consts_offset of d3d::set_const_buffer.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasDepthBoundsTest = true

Constant true.

Indicates that the device driver supports depth bounds testing. See d3d::set_depth_bounds for details of depth bounds testing.

static constexpr bool hasResourceCopyConversion = true

Constant true.

Indicates that the device driver supports copy of textures of different but compatible formats.

static constexpr bool hasAsyncCopy = true

Constant true.

Indicates that the device driver supports asynchronously issued copy operations.

static constexpr bool hasReadMultisampledDepth = true

Constant true.

Indicates that the device driver supports reading from multi-sampled depth stencil targets.

static constexpr bool hasInstanceID = true

Constant true.

Indicates that the device driver supports instance id system variable in shaders.

static constexpr bool hasConservativeRassterization = false

Constant false.

Indicates that the device driver supports conservative rastering.

static constexpr bool hasQuadTessellation = false

Constant false.

Indicates that the device driver supports quad tessellation.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasGather4 = true

Constant true.

Indicates that the device driver supports gather intrinsic in shaders.

static constexpr bool hasAlphaCoverage = true

Constant true.

Indicates that the device driver supports the alpha to coverage raster feature.

static constexpr bool hasWellSupportedIndirect = true

Constant true.

Indicates that the device driver supports indirect drawing.

static constexpr bool hasNVApi = false

Constant false.

Indicates that the device driver has detected that the Nvidia driver API is available for the render device.

static constexpr bool hasATIApi = false

Constant false.

Indicates that the device driver has detected that the AMD / ATI driver API is available for the render device.

static constexpr bool hasVariableRateShading = false

Constant false.

Indicates that the device driver supports basic per draw shading rates.

static constexpr bool hasVariableRateShadingTexture = false

Constant false.

Indicates that the device driver supports shading rate textures as a source of shading rate information.

static constexpr bool hasVariableRateShadingShaderOutput = false

Constant false.

Indicates that the device driver supports shader generated shading rates.

static constexpr bool hasVariableRateShadingCombiners = false

Constant false.

Indicates that the device driver supports combiners for variable rate shading to select the final shading rate.

static constexpr bool hasVariableRateShadingBy4 = false

Constant false.

Indicates that the device driver supports variable rate shading blocks with sizes of 4 in X and Y direction.

static constexpr bool hasAliasedTextures = false

Constant false.

Indicates that the device driver supports creation of aliased textures.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasResourceHeaps = true

Constant false.

Indicates that the device driver supports the resource heap API.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasBufferOverlapCopy = false

Constant false.

Indicates that the device driver supports overlapping buffer copies.

static constexpr bool hasBufferOverlapRegionsCopy = false

Constant false.

Indicates that the device driver uses region based copies when overlapping copies are executed.

static constexpr bool hasUAVOnlyForcedSampleCount = true

Constant true.

Indicates that the device driver supports forced multisample count without render targets and only outputting to UAVs.

static constexpr bool hasShader64BitIntegerResources = false

Constant false.

Indicates that the device driver supports 64 bit integers shader resource types.

static constexpr bool hasNativeRenderPassSubPasses = true

Constant true.

Indicates that the device driver is not emulating render sup-passes.

static constexpr bool hasTiled2DResources = false

Constant false.

Indicates that the device driver supports tiled 2D textures.

static constexpr bool hasTiled3DResources = false

Constant false.

Indicates that the device driver supports tiled 3D textures;.

static constexpr bool hasTiledSafeResourcesAccess = false

Constant false.

Indicates that the device driver supports safe read and write access for not mapped tiles of tiled resources. Such reads return 0 and writes are ignored.

static constexpr bool hasTiledMemoryAliasing = false

Constant false.

Indicates that the device driver supports memory aliasing of multiple tiles.

static constexpr bool hasDLSS = false

Constant false.

Indicates that the device driver supports Nvidia DLSS. DLSS stand for Deep Learning Super Sampling.

static constexpr bool hasXESS = false

Constant false.

Indicates that the device driver supports Intel XESS. XESS stands for Xe Super Sampling.

static constexpr bool hasDrawID = true

Constant true.

Indicates that the device driver supports draw id in shaders.

static constexpr bool hasMeshShader = false

Constant false.

Indicates that the device driver supports the mesh shader pipeline.

static constexpr bool hasBasicViewInstancing = false

Constant false.

Indicates that the device driver supports basic view instancing.

static constexpr bool hasOptimizedViewInstancing = false

Constant false.

Indicates that the device driver has some optimizations for view instanced rendering.

static constexpr bool hasAcceleratedViewInstancing = false

Constant false.

Indicates that the device driver has hardware acceleration to natively support view instanced rendering.

static constexpr bool hasStereoExpansion = false

Constant false.

Indicates that the device driver supports stereo render expansion.

static constexpr bool hasTileBasedArchitecture = false

Constant false.

Indicates that the device driver architecture is known to be a tile renderer.

static constexpr bool hasLazyMemory = false

Constant false.

Indicates that the device driver supports lazily allocated memory.

static constexpr bool hasIndirectSupport = true

Constant true.

Indicates that the device driver set when hw doesn’t support indirect calls.

static constexpr bool hasCompareSampler = true

Constant true.

Indicates that the device driver set when hw doesn’t support comparison samplers.

static constexpr bool hasUAVOnEveryStage = true

Constant true.

Indicates that the device driver supports UAV access in every shader stage, without this cap UAV is only available in pixel and compute shaders.

static constexpr bool hasRayAccelerationStructure = false

Constant false.

Indicates that the device driver supports acceleration structures for ray tracing / ray queries, will be true if hasRayAccelerationStructure, hasRayQuery and / or hasRayDispatch is supported. The vertex format of VSDT_FLOAT3 is guaranteed, for additional formats d3d::raytrace::check_vertex_format_support_for_acceleration_structure_build needs to be used to check for support.

static constexpr bool hasRayQuery = false

Constant false.

Indicates that the device driver supports ray queries (“inline ray tracing”) in any shader stage.

static constexpr bool hasRayDispatch = false

Constant false.

Indicates that the device driver supports ray dispatch with its own ray tracing shader stage.

static constexpr bool hasIndirectRayDispatch = false

Constant false.

Indicates that the device driver supports indirect dispatch for dispatch rays.

static constexpr bool hasGeometryIndexInRayAccelerationStructure = false

Constant false.

Indicates that the device driver supports geometry index information in acceleration structures in ray tracing / ray query shaders.

static constexpr bool hasSkipPrimitiveTypeInRayTracingShaders = false

Constant false.

Indicates that the device driver supports masking flags in shaders to ignore triangle or procedural geometry during traversal.

static constexpr bool hasBaseVertexSupport = true

Constant true.

Indicates that the device driver is false when HW does not support draw cals with non-zero baseVertex.

static constexpr bool castingFullyTypedFormatsSupported = false

Constant false.

Indicates that the device driver castingFullyTypedFormatsSupported supports casting (aliasing) fully typed formats between each other (same as op3.CastingFullyTypedFormatSupported in DX12)

static constexpr bool hasNativeRayTracePipelineExpansion = false

Constant false.

See also

DeviceDriverCapabilitiesBase::hasNativeRayTracePipelineExpansion

struct DeviceDriverCapabilitiesAndroid : public DeviceDriverCapabilitiesBase

Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for Android.

Public Static Attributes

static constexpr bool hasDepthReadOnly = true

Constant true.

Indicates that the device driver supports constant depth stencil targets that allow simultaneous sampling as a shader resource.

static constexpr bool hasStructuredBuffers = true

Constant true.

Indicates that the device driver supports structured buffer types.

static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true

Constant true.

Indicates that the device driver supports locking of structured buffers with the no-overwrite method.

static constexpr bool hasForcedSamplerCount = false

Constant false.

Indicates that the device driver supports forced multi-sample count during raster phase.

static constexpr bool hasVolMipMap = true

Constant true.

Indicates that the device driver supports mipmaps for vol (eg 3D) textures.

static constexpr bool hasAsyncCompute = false

Constant false.

Indicates that the device driver supports GpuPipeline::ASYNC_COMPUTE as selected pipeline when applicable.

static constexpr bool hasOcclusionQuery = false

Constant true.

Indicates that the device driver supports occlusion queries.

static constexpr bool hasConstBufferOffset = false

Constant false.

Indicates that the device driver supports values other than 0 for consts_offset of d3d::set_const_buffer.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasAsyncCopy = true

Constant true.

Indicates that the device driver supports asynchronously issued copy operations.

static constexpr bool hasReadMultisampledDepth = true

Constant true.

Indicates that the device driver supports reading from multi-sampled depth stencil targets.

static constexpr bool hasGather4 = true

Constant true.

Indicates that the device driver supports gather intrinsic in shaders.

static constexpr bool hasAlphaCoverage = true

Constant true.

Indicates that the device driver supports the alpha to coverage raster feature.

static constexpr bool hasNVApi = false

Constant false.

Indicates that the device driver has detected that the Nvidia driver API is available for the render device.

static constexpr bool hasATIApi = false

Constant false.

Indicates that the device driver has detected that the AMD / ATI driver API is available for the render device.

static constexpr bool hasVariableRateShading = false

Constant false.

Indicates that the device driver supports basic per draw shading rates.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasVariableRateShadingTexture = false

Constant false.

Indicates that the device driver supports shading rate textures as a source of shading rate information.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasVariableRateShadingShaderOutput = false

Constant false.

Indicates that the device driver supports shader generated shading rates.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasVariableRateShadingCombiners = false

Constant false.

Indicates that the device driver supports combiners for variable rate shading to select the final shading rate.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasVariableRateShadingBy4 = false

Constant false.

Indicates that the device driver supports variable rate shading blocks with sizes of 4 in X and Y direction.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasAliasedTextures = false

Constant false.

Indicates that the device driver supports creation of aliased textures.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasBufferOverlapCopy = false

Constant false.

Indicates that the device driver supports overlapping buffer copies.

static constexpr bool hasBufferOverlapRegionsCopy = false

Constant false.

Indicates that the device driver uses region based copies when overlapping copies are executed.

static constexpr bool hasResourceCopyConversion = true

Constant true.

Indicates that the device driver supports copy of textures of different but compatible formats.

static constexpr bool hasShader64BitIntegerResources = false

Constant false.

Indicates that the device driver supports 64 bit integers shader resource types.

static constexpr bool hasNativeRenderPassSubPasses = true

Constant true.

Indicates that the device driver is not emulating render sup-passes.

static constexpr bool hasTiled2DResources = false

Constant false.

Indicates that the device driver supports tiled 2D textures.

static constexpr bool hasTiled3DResources = false

Constant false.

Indicates that the device driver supports tiled 3D textures;.

static constexpr bool hasTiledSafeResourcesAccess = false

Constant false.

Indicates that the device driver supports safe read and write access for not mapped tiles of tiled resources. Such reads return 0 and writes are ignored.

static constexpr bool hasTiledMemoryAliasing = false

Constant false.

Indicates that the device driver supports memory aliasing of multiple tiles.

static constexpr bool hasDLSS = false

Constant false.

Indicates that the device driver supports Nvidia DLSS. DLSS stand for Deep Learning Super Sampling.

static constexpr bool hasXESS = false

Constant false.

Indicates that the device driver supports Intel XESS. XESS stands for Xe Super Sampling.

static constexpr bool hasDrawID = true

Constant true.

Indicates that the device driver supports draw id in shaders.

static constexpr bool hasMeshShader = false

Constant false.

Indicates that the device driver supports the mesh shader pipeline.

static constexpr bool hasBasicViewInstancing = false

Constant false.

Indicates that the device driver supports basic view instancing.

static constexpr bool hasOptimizedViewInstancing = false

Constant false.

Indicates that the device driver has some optimizations for view instanced rendering.

static constexpr bool hasAcceleratedViewInstancing = false

Constant false.

Indicates that the device driver has hardware acceleration to natively support view instanced rendering.

static constexpr bool hasStereoExpansion = false

Constant false.

Indicates that the device driver supports stereo render expansion.

static constexpr bool hasIndirectSupport = true

Constant true.

Indicates that the device driver set when hw doesn’t support indirect calls.

static constexpr bool hasCompareSampler = true

Constant true.

Indicates that the device driver set when hw doesn’t support comparison samplers.

static constexpr bool hasUAVOnEveryStage = true

Constant true.

Indicates that the device driver supports UAV access in every shader stage, without this cap UAV is only available in pixel and compute shaders.

static constexpr bool hasBaseVertexSupport = true

Constant true.

Indicates that the device driver is false when HW does not support draw cals with non-zero baseVertex.

static constexpr bool castingFullyTypedFormatsSupported = false

Constant false.

Indicates that the device driver castingFullyTypedFormatsSupported supports casting (aliasing) fully typed formats between each other (same as op3.CastingFullyTypedFormatSupported in DX12)

struct DeviceDriverCapabilitiesMacOSX : public DeviceDriverCapabilitiesBase

Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for macOS.

Public Static Attributes

static constexpr bool hasAnisotropicFilter = true

Constant true.

Indicates that the device driver supports anisotropic filtering of textures.

static constexpr bool hasDepthReadOnly = false

Constant false.

Indicates that the device driver supports constant depth stencil targets that allow simultaneous sampling as a shader resource.

static constexpr bool hasStructuredBuffers = true

Constant true.

Indicates that the device driver supports structured buffer types.

static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true

Constant true.

Indicates that the device driver supports locking of structured buffers with the no-overwrite method.

static constexpr bool hasForcedSamplerCount = false

Constant false.

Indicates that the device driver supports forced multi-sample count during raster phase.

static constexpr bool hasVolMipMap = true

Constant true.

Indicates that the device driver supports mipmaps for vol (eg 3D) textures.

static constexpr bool hasAsyncCompute = false

Constant false.

Indicates that the device driver supports GpuPipeline::ASYNC_COMPUTE as selected pipeline when applicable.

static constexpr bool hasOcclusionQuery = true

Constant true.

Indicates that the device driver supports occlusion queries.

static constexpr bool hasConstBufferOffset = false

Constant false.

Indicates that the device driver supports values other than 0 for consts_offset of d3d::set_const_buffer.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasAsyncCopy = true

Constant true.

Indicates that the device driver supports asynchronously issued copy operations.

static constexpr bool hasDepthBoundsTest = false

Constant false.

Indicates that the device driver supports depth bounds testing. See d3d::set_depth_bounds for details of depth bounds testing.

static constexpr bool hasReadMultisampledDepth = true

Constant true.

Indicates that the device driver supports reading from multi-sampled depth stencil targets.

static constexpr bool hasInstanceID = true

Constant true.

Indicates that the device driver supports instance id system variable in shaders.

static constexpr bool hasConservativeRassterization = false

Constant false.

Indicates that the device driver supports conservative rastering.

static constexpr bool hasQuadTessellation = false

Constant false.

Indicates that the device driver supports quad tessellation.

static constexpr bool hasGather4 = true

Constant true.

Indicates that the device driver supports gather intrinsic in shaders.

static constexpr bool hasAlphaCoverage = true

Constant true.

Indicates that the device driver supports the alpha to coverage raster feature.

static constexpr bool hasWellSupportedIndirect = false

Constant false.

Indicates that the device driver supports indirect drawing.

static constexpr bool hasNVApi = false

Constant false.

Indicates that the device driver has detected that the Nvidia driver API is available for the render device.

static constexpr bool hasATIApi = false

Constant false.

Indicates that the device driver has detected that the AMD / ATI driver API is available for the render device.

static constexpr bool hasVariableRateShading = false

Constant false.

Indicates that the device driver supports basic per draw shading rates.

static constexpr bool hasVariableRateShadingTexture = false

Constant false.

Indicates that the device driver supports shading rate textures as a source of shading rate information.

static constexpr bool hasVariableRateShadingShaderOutput = false

Constant false.

Indicates that the device driver supports shader generated shading rates.

static constexpr bool hasVariableRateShadingCombiners = false

Constant false.

Indicates that the device driver supports combiners for variable rate shading to select the final shading rate.

static constexpr bool hasVariableRateShadingBy4 = false

Constant false.

Indicates that the device driver supports variable rate shading blocks with sizes of 4 in X and Y direction.

static constexpr bool hasAliasedTextures = false

Constant false.

Indicates that the device driver supports creation of aliased textures.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasResourceHeaps = false

Constant false.

Indicates that the device driver supports the resource heap API.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasBufferOverlapCopy = false

Constant false.

Indicates that the device driver supports overlapping buffer copies.

static constexpr bool hasBufferOverlapRegionsCopy = false

Constant false.

Indicates that the device driver uses region based copies when overlapping copies are executed.

static constexpr bool hasConditionalRender = false

Constant false.

Indicates that the device driver supports conditional rendering.

static constexpr bool hasResourceCopyConversion = true

Constant true.

Indicates that the device driver supports copy of textures of different but compatible formats.

static constexpr bool hasShader64BitIntegerResources = false

Constant false.

Indicates that the device driver supports 64 bit integers shader resource types.

static constexpr bool hasNativeRenderPassSubPasses = true

Constant false.

Indicates that the device driver is not emulating render sup-passes.

static constexpr bool hasTiled2DResources = false

Constant false.

Indicates that the device driver supports tiled 2D textures.

static constexpr bool hasTiled3DResources = false

Constant false.

Indicates that the device driver supports tiled 3D textures;.

static constexpr bool hasTiledSafeResourcesAccess = false

Constant false.

Indicates that the device driver supports safe read and write access for not mapped tiles of tiled resources. Such reads return 0 and writes are ignored.

static constexpr bool hasTiledMemoryAliasing = false

Constant false.

Indicates that the device driver supports memory aliasing of multiple tiles.

static constexpr bool hasDLSS = false

Constant false.

Indicates that the device driver supports Nvidia DLSS. DLSS stand for Deep Learning Super Sampling.

static constexpr bool hasXESS = false

Constant false.

Indicates that the device driver supports Intel XESS. XESS stands for Xe Super Sampling.

static constexpr bool hasMeshShader = false

Constant false.

Indicates that the device driver supports the mesh shader pipeline.

static constexpr bool hasBasicViewInstancing = false

Constant false.

Indicates that the device driver supports basic view instancing.

static constexpr bool hasOptimizedViewInstancing = false

Constant false.

Indicates that the device driver has some optimizations for view instanced rendering.

static constexpr bool hasAcceleratedViewInstancing = false

Constant false.

Indicates that the device driver has hardware acceleration to natively support view instanced rendering.

static constexpr bool hasStereoExpansion = false

Constant false.

Indicates that the device driver supports stereo render expansion.

static constexpr bool hasTileBasedArchitecture = false

Constant false.

Indicates that the device driver architecture is known to be a tile renderer.

static constexpr bool hasLazyMemory = false

Constant false.

Indicates that the device driver supports lazily allocated memory.

static constexpr bool hasIndirectSupport = true

Constant true.

Indicates that the device driver set when hw doesn’t support indirect calls.

static constexpr bool hasCompareSampler = true

Constant true.

Indicates that the device driver set when hw doesn’t support comparison samplers.

static constexpr bool hasShaderFloat16Support = false

Constant false.

Indicates that the device driver supports 16-bit floating-point types in shaders for arithmetic operations.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasUAVOnEveryStage = true

Constant true.

Indicates that the device driver supports UAV access in every shader stage, without this cap UAV is only available in pixel and compute shaders.

static constexpr bool hasRayDispatch = false

Constant false.

Indicates that the device driver supports ray dispatch with its own ray tracing shader stage.

static constexpr bool hasIndirectRayDispatch = false

Constant false.

Indicates that the device driver supports indirect dispatch for dispatch rays.

static constexpr bool castingFullyTypedFormatsSupported = false

Constant false.

Indicates that the device driver castingFullyTypedFormatsSupported supports casting (aliasing) fully typed formats between each other (same as op3.CastingFullyTypedFormatSupported in DX12)

static constexpr bool hasWaveOps = true

Constant true.

Indicates that the device driver supports wave ops.

struct DeviceDriverCapabilitiesLinux : public DeviceDriverCapabilitiesBase

Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for Linux.

Public Static Attributes

static constexpr bool hasAnisotropicFilter = true

Constant true.

Indicates that the device driver supports anisotropic filtering of textures.

static constexpr bool hasDepthReadOnly = true

Constant true.

Indicates that the device driver supports constant depth stencil targets that allow simultaneous sampling as a shader resource.

static constexpr bool hasStructuredBuffers = true

Constant true.

Indicates that the device driver supports structured buffer types.

static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true

Constant true.

Indicates that the device driver supports locking of structured buffers with the no-overwrite method.

static constexpr bool hasForcedSamplerCount = false

Constant false.

Indicates that the device driver supports forced multi-sample count during raster phase.

static constexpr bool hasVolMipMap = true

Constant true.

Indicates that the device driver supports mipmaps for vol (eg 3D) textures.

static constexpr bool hasReadMultisampledDepth = true

Constant true.

Indicates that the device driver supports reading from multi-sampled depth stencil targets.

static constexpr bool hasGather4 = true

Constant true.

Indicates that the device driver supports gather intrinsic in shaders.

static constexpr bool hasAlphaCoverage = true

Constant true.

Indicates that the device driver supports the alpha to coverage raster feature.

static constexpr bool hasShader64BitIntegerResources = false

Constant false.

Indicates that the device driver supports 64 bit integers shader resource types.

static constexpr bool hasNativeRenderPassSubPasses = true

Constant true.

Indicates that the device driver is not emulating render sup-passes.

static constexpr bool hasTiled2DResources = false

Constant false.

Indicates that the device driver supports tiled 2D textures.

static constexpr bool hasTiled3DResources = false

Constant false.

Indicates that the device driver supports tiled 3D textures;.

static constexpr bool hasTiledSafeResourcesAccess = false

Constant false.

Indicates that the device driver supports safe read and write access for not mapped tiles of tiled resources. Such reads return 0 and writes are ignored.

static constexpr bool hasTiledMemoryAliasing = false

Constant false.

Indicates that the device driver supports memory aliasing of multiple tiles.

static constexpr bool hasDLSS = false

Constant false.

Indicates that the device driver supports Nvidia DLSS. DLSS stand for Deep Learning Super Sampling.

static constexpr bool hasXESS = false

Constant false.

Indicates that the device driver supports Intel XESS. XESS stands for Xe Super Sampling.

static constexpr bool hasDrawID = true

Constant true.

Indicates that the device driver supports draw id in shaders.

static constexpr bool hasMeshShader = false

Constant false.

Indicates that the device driver supports the mesh shader pipeline.

static constexpr bool hasBasicViewInstancing = false

Constant false.

Indicates that the device driver supports basic view instancing.

static constexpr bool hasOptimizedViewInstancing = false

Constant false.

Indicates that the device driver has some optimizations for view instanced rendering.

static constexpr bool hasAcceleratedViewInstancing = false

Constant false.

Indicates that the device driver has hardware acceleration to natively support view instanced rendering.

static constexpr bool hasAsyncCompute = false

Constant false.

Indicates that the device driver supports GpuPipeline::ASYNC_COMPUTE as selected pipeline when applicable.

static constexpr bool hasOcclusionQuery = false

Constant true.

Indicates that the device driver supports occlusion queries.

static constexpr bool hasNVApi = false

Constant false.

Indicates that the device driver has detected that the Nvidia driver API is available for the render device.

static constexpr bool hasATIApi = false

Constant false.

Indicates that the device driver has detected that the AMD / ATI driver API is available for the render device.

static constexpr bool hasVariableRateShading = false

Constant false.

Indicates that the device driver supports basic per draw shading rates.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasVariableRateShadingTexture = false

Constant false.

Indicates that the device driver supports shading rate textures as a source of shading rate information.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasVariableRateShadingShaderOutput = false

Constant false.

Indicates that the device driver supports shader generated shading rates.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasVariableRateShadingCombiners = false

Constant false.

Indicates that the device driver supports combiners for variable rate shading to select the final shading rate.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasVariableRateShadingBy4 = false

Constant false.

Indicates that the device driver supports variable rate shading blocks with sizes of 4 in X and Y direction.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasAliasedTextures = false

Constant false.

Indicates that the device driver supports creation of aliased textures.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasBufferOverlapCopy = false

Constant false.

Indicates that the device driver supports overlapping buffer copies.

static constexpr bool hasBufferOverlapRegionsCopy = false

Constant false.

Indicates that the device driver uses region based copies when overlapping copies are executed.

static constexpr bool hasConstBufferOffset = false

Constant false.

Indicates that the device driver supports values other than 0 for consts_offset of d3d::set_const_buffer.

Remark

This feature can be supported, but is not yet implemented.

static constexpr bool hasAsyncCopy = true

Constant true.

Indicates that the device driver supports asynchronously issued copy operations.

static constexpr bool hasResourceCopyConversion = true

Constant true.

Indicates that the device driver supports copy of textures of different but compatible formats.

static constexpr bool hasStereoExpansion = false

Constant false.

Indicates that the device driver supports stereo render expansion.

static constexpr bool hasLazyMemory = false

Constant false.

Indicates that the device driver supports lazily allocated memory.

static constexpr bool hasIndirectSupport = true

Constant true.

Indicates that the device driver set when hw doesn’t support indirect calls.

static constexpr bool hasCompareSampler = true

Constant true.

Indicates that the device driver set when hw doesn’t support comparison samplers.

static constexpr bool hasUAVOnEveryStage = true

Constant true.

Indicates that the device driver supports UAV access in every shader stage, without this cap UAV is only available in pixel and compute shaders.

static constexpr bool hasBaseVertexSupport = true

Constant true.

Indicates that the device driver is false when HW does not support draw cals with non-zero baseVertex.

static constexpr bool castingFullyTypedFormatsSupported = false

Constant false.

Indicates that the device driver castingFullyTypedFormatsSupported supports casting (aliasing) fully typed formats between each other (same as op3.CastingFullyTypedFormatSupported in DX12)

struct DeviceDriverCapabilitiesWindows : public DeviceDriverCapabilitiesBase

Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for Windows.

Public Static Attributes

static constexpr bool hasAnisotropicFilter = true

Constant true.

Indicates that the device driver supports anisotropic filtering of textures.

static constexpr bool hasAlphaCoverage = true

Constant true.

Indicates that the device driver supports the alpha to coverage raster feature.

static constexpr bool hasAsyncCopy = true

Constant true.

Indicates that the device driver supports asynchronously issued copy operations.

static constexpr bool hasStereoExpansion = false

Constant false.

Indicates that the device driver supports stereo render expansion.

static constexpr bool hasLazyMemory = false

Constant false.

Indicates that the device driver supports lazily allocated memory.

static constexpr bool hasIndirectSupport = true

Constant true.

Indicates that the device driver set when hw doesn’t support indirect calls.

static constexpr bool hasCompareSampler = true

Constant true.

Indicates that the device driver set when hw doesn’t support comparison samplers.

static constexpr bool hasBaseVertexSupport = true

Constant true.

Indicates that the device driver is false when HW does not support draw cals with non-zero baseVertex.

struct DeviceDriverIssuesBase

A boolean bitfield that describes which known issues the used device / driver combination has.

Subclassed by DeviceDriverIssuesAndroid, DeviceDriverIssuesWindows

Public Members

bool hasComputeTimeLimited

Some devices have issues with long running compute stages and may cause a TDR (Timeout Detection and Recovery) to reset the device.

Note

Known on the following devices:

  • Qualcomm Adreno

  • ARM Mali

Note

bool hasComputeCanNotWrite3DTex

Some device have issues with writing to 3D textures in the compute stage.

Note

Known on the following devices:

  • Qualcomm Adreno

Note

bool hasStrictRenderPassesOnly

Some device drivers have issues with unused render pass attachments and my crash during pipeline creation.

Note

Known on the following devices:

  • Qualcomm Adreno

Note

bool hasSmallSampledBuffers

Some device driver have a very limited size for sampled buffers. This indicates that device driver only works reliably with buffers not exceeding the 64KiByte size limit.

Note

Some mobile device are actually limited and also fall in this category, even when this is expected behavior. Known to be a bug on the following devices, as they report larger supported sizes, but fail to work with those limits:

  • Qualcomm Adreno

  • ARM Mali

Note

bool hasRenderPassClearDataRace

Some devices have issues in render passes properly scheduling clears before render, which may result in random flickering.

Note

Known on the following devices:

  • Qualcomm Adreno with certain driver versions

Note

bool hasBrokenBaseInstanceID

Some device drivers have broken base instance ids in shaders.

Note

Known on the following devices:

  • ARM Mali with certain driver versions

Note

bool hasMultisampledAndInstancingHang

Some device drivers may hang during instanced rendering with multisampled rastering.

Note

Known for certain device driver combinations.

Note

bool hasIgnoreDeviceLost

Some device drivers spam device lost error codes while the device still remains functional normally.

Note

Known for certain device driver combinations.

Note

bool hasPollDeviceFences

Some device drivers may randomly fail with a device reset on fence waits, the driver falls back to polling the state of fences instead.

Note

Known for certain device driver combinations.

Note

bool hasBrokenShadersAfterAppSwitch

Some device drivers may not render some long shaders after switching from the application and back.

Note

Known for certain device driver combinations.

Note

bool hasBrokenSRGBConverionWithMRT

Some device drivers have issues with sRGB conversion for render targets in the MRT setup.

Note

Known for certain device driver combinations.

Note

bool hasBrokenComputeFormattedOutput

Some device drivers have issues with format conversion while outputting to image with format other than fp32.

Note

Known for certain device driver combinations.

Note

bool hasClearColorBug

AMD Radeon hangs with DEVICE_LOST on clearview of R8G8 target with a color other than the basic B/W combinations

Note

Known for certain device driver combinations.

Note

bool hasBrokenMTRecreateImage

Image creation during texture reload seems to crash on some devies. Reports exist for Mali G710 and G610.

Note

Known for certain device driver combinations.

Note

bool hasBrokenSubpasses

Some device drivers have some issues with subpasses.

Note

Known on the following devices:

  • Qualcomm Adreno with certain driver versions

Note

struct DeviceDriverIssuesAndroid : public DeviceDriverIssuesBase

Issues structure specific for Android.

Public Static Attributes

static constexpr bool hasClearColorBug = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Android.

struct DeviceDriverIssuesWindows : public DeviceDriverIssuesBase

Issues structure specific for Windows.

Subclassed by DeviceDriverIssuesNoIssues

Public Static Attributes

static constexpr bool hasComputeTimeLimited = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

static constexpr bool hasComputeCanNotWrite3DTex = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

static constexpr bool hasStrictRenderPassesOnly = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

static constexpr bool hasSmallSampledBuffers = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

static constexpr bool hasRenderPassClearDataRace = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

static constexpr bool hasBrokenBaseInstanceID = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

static constexpr bool hasMultisampledAndInstancingHang = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

static constexpr bool hasIgnoreDeviceLost = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

static constexpr bool hasPollDeviceFences = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

static constexpr bool hasBrokenShadersAfterAppSwitch = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

static constexpr bool hasBrokenSRGBConverionWithMRT = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

static constexpr bool hasBrokenComputeFormattedOutput = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

static constexpr bool hasBrokenMTRecreateImage = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

static constexpr bool hasBrokenSubpasses = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows.

struct DeviceDriverIssuesNoIssues : public DeviceDriverIssuesWindows

Optimized issues structure for all platforms that are known to suffer from none of those.

Public Static Attributes

static constexpr bool hasClearColorBug = false

Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Android.

struct DeviceDriverRaytraceProperties

Holds the device and driver specific ray tracing related properties. NOTE some platforms may override these with fixed values.

Public Members

unsigned topAccelerationStructureInstanceElementSize = 0
unsigned accelerationStructureBuildScratchBufferOffsetAlignment = 0

Offsets for scratch buffers for acceleration structures builds have to be aligned to this value.

unsigned maxRecursionDepth = 0

Describes how many “recursions” ray dispatching supports. This describes how many rays can be cast without returning. A value of 1 would mean that only the ray gen shader can shoot the initial ray and no other shader invoked by the rays miss or hit shader. A value of 2 means that the ray gen shader shoots the first ray and the invoked hit or miss shader may also shoot one ray.

struct Driver3dDesc

Public Members

int zcmpfunc
int acmpfunc
int sblend
int dblend
int mintexw
int mintexh
int maxtexw
int maxtexh
int mincubesize
int maxcubesize
int minvolsize
int maxvolsize
int maxtexaspect

1 means texture should be square, 0 means no limit

int maxtexcoord
int maxsimtex
int maxvertexsamplers
int maxclipplanes
int maxstreams
int maxstreamstr
int maxvpconsts
int maxprims
int maxvertind
float upixofs

pixel-size UV offsets that align texture pixels to frame buffer pixels; usually .5 for DX, and 0 for OGL

float vpixofs
int maxSimRT

Maximum number of simultaneous render targets, will be at least 1.

bool is20ArbitrarySwizzleAvailable
int minWarpSize
int maxWarpSize
unsigned variableRateTextureTileSizeX
unsigned variableRateTextureTileSizeY
unsigned depthResolveModes = DepthResolveMode::DEPTH_RESOLVE_MODE_NONE
DeviceDriverCapabilities caps
DeviceDriverIssues issues
DeviceDriverShaderModelVersion shaderModel
DeviceDriverRaytraceProperties raytrace

Defines

VSD_STREAM(n)
VSD_STREAM_PER_VERTEX_DATA(n)
VSD_STREAM_PER_INSTANCE_DATA(n)
VSD_REG(n, t)
VSD_SKIP(n)
VSDT_FLOAT1
VSDT_FLOAT2
VSDT_FLOAT3
VSDT_FLOAT4
VSDT_E3DCOLOR
VSDT_UBYTE4
VSDT_SHORT2
VSDT_SHORT4
VSDT_SHORT2N
VSDT_SHORT4N
VSDT_USHORT2N
VSDT_USHORT4N
VSDT_UDEC3
VSDT_DEC3N
VSDT_HALF2
VSDT_HALF4
VSDT_INT1
VSDT_INT2
VSDT_INT3
VSDT_INT4
VSDT_UINT1
VSDT_UINT2
VSDT_UINT3
VSDT_UINT4
VSDR_POS
VSDR_BLENDW
VSDR_BLENDIND
VSDR_NORM
VSDR_PSIZE
VSDR_DIFF
VSDR_SPEC
VSDR_TEXC0
VSDR_TEXC1
VSDR_TEXC2
VSDR_TEXC3
VSDR_TEXC4
VSDR_TEXC5
VSDR_TEXC6
VSDR_TEXC7
VSDR_POS2
VSDR_NORM2
VSDR_TEXC15
VSDR_TEXC8
VSDR_TEXC9
VSDR_TEXC10
VSDR_TEXC11
VSDR_TEXC12
VSDR_TEXC13
VSDR_TEXC14

Enums

enum [anonymous]

Values:

enumerator VBLOCK_READONLY
enumerator VBLOCK_WRITEONLY
enumerator VBLOCK_NOSYSLOCK
enumerator VBLOCK_DISCARD
enumerator VBLOCK_NOOVERWRITE
enum [anonymous]

Values:

enumerator PRIM_POINTLIST
enumerator PRIM_LINELIST
enumerator PRIM_LINESTRIP
enumerator PRIM_TRILIST
enumerator PRIM_TRISTRIP
enumerator PRIM_TRIFAN
enumerator PRIM_4_CONTROL_POINTS
enumerator PRIM_COUNT
enum [anonymous]

Values:

enumerator TM_WORLD
enumerator TM_VIEW
enumerator TM_PROJ
enumerator TM_LOCAL2VIEW
enumerator TM_VIEW2LOCAL
enumerator TM_GLOBAL
enumerator TM__NUM
enum [anonymous]

Values:

enumerator CLEAR_TARGET
enumerator CLEAR_ZBUFFER
enumerator CLEAR_STENCIL
enumerator CLEAR_DISCARD_TARGET
enumerator CLEAR_DISCARD_ZBUFFER
enumerator CLEAR_DISCARD_STENCIL
enumerator CLEAR_DISCARD
enum BLEND_FACTOR

Values:

enumerator BLEND_ZERO
enumerator BLEND_ONE
enumerator BLEND_SRCCOLOR
enumerator BLEND_INVSRCCOLOR
enumerator BLEND_SRCALPHA
enumerator BLEND_INVSRCALPHA
enumerator BLEND_DESTALPHA
enumerator BLEND_INVDESTALPHA
enumerator BLEND_DESTCOLOR
enumerator BLEND_INVDESTCOLOR
enumerator BLEND_SRCALPHASAT
enumerator BLEND_BOTHINVSRCALPHA
enumerator BLEND_BLENDFACTOR
enumerator BLEND_INVBLENDFACTOR
enum BLENDOP

Values:

enumerator BLENDOP_ADD
enumerator BLENDOP_SUBTRACT
enumerator BLENDOP_REVSUBTRACT
enumerator BLENDOP_MIN
enumerator BLENDOP_MAX
enum CMPF

Values:

enumerator CMPF_NEVER
enumerator CMPF_LESS
enumerator CMPF_EQUAL
enumerator CMPF_LESSEQUAL
enumerator CMPF_GREATER
enumerator CMPF_NOTEQUAL
enumerator CMPF_GREATEREQUAL
enumerator CMPF_ALWAYS
enum CULL_TYPE

Values:

enumerator CULL_NONE
enumerator CULL_CW
enumerator CULL_CCW
enum [anonymous]

Values:

enumerator STNCLOP_KEEP
enumerator STNCLOP_ZERO
enumerator STNCLOP_REPLACE
enumerator STNCLOP_INCRSAT
enumerator STNCLOP_DECRSAT
enumerator STNCLOP_INVERT
enumerator STNCLOP_INCR
enumerator STNCLOP_DECR
enum [anonymous]

Values:

enumerator TEXADDR_WRAP
enumerator TEXADDR_MIRROR
enumerator TEXADDR_CLAMP
enumerator TEXADDR_BORDER
enumerator TEXADDR_MIRRORONCE
enum [anonymous]

Values:

enumerator TEXFILTER_DEFAULT
enumerator TEXFILTER_POINT
enumerator TEXFILTER_LINEAR
enumerator TEXFILTER_BEST
enumerator TEXFILTER_COMPARE
enumerator TEXFILTER_NONE

Variables

static constexpr int MAX_SURVEY_INDEX = 0