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
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
-
enumerator STAGE_CS
-
enum [anonymous]
Values:
-
enumerator MAXSAMPLERS
-
enumerator MAXSTREAMS
-
enumerator MAXSAMPLERS_VS
-
enumerator MAX_SLI_AFRS
-
enumerator MAXSAMPLERS
-
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
-
enumerator VDECLUSAGE_POS
-
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
-
enumerator SBCF_USAGE_SHADER_BINDING_TABLE
-
enum [anonymous]
Values:
-
enumerator WRAP_COORD0
-
enumerator WRAP_COORD1
-
enumerator WRAP_COORD2
-
enumerator WRAP_COORD3
-
enumerator WRAP_COORD0
-
enum [anonymous]
Values:
-
enumerator VCDEST_NONE
-
enumerator VCDEST_AMB
-
enumerator VCDEST_DIFF
-
enumerator VCDEST_AMB_DIFF
-
enumerator VCDEST_EMIS
-
enumerator VCDEST_SPEC
-
enumerator VCDEST_NONE
-
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
-
enumerator WRITEMASK_RED0
-
enum class XessState
Values:
-
enumerator UNSUPPORTED_DEVICE
-
enumerator UNSUPPORTED_DRIVER
-
enumerator INIT_ERROR_UNKNOWN
-
enumerator DISABLED
-
enumerator SUPPORTED
-
enumerator READY
-
enumerator UNSUPPORTED_DEVICE
-
enum class Fsr2State
Values:
-
enumerator NOT_CHECKED
-
enumerator INIT_ERROR
-
enumerator SUPPORTED
-
enumerator READY
-
enumerator NOT_CHECKED
-
enum class HdrOutputMode
Values:
-
enumerator SDR_ONLY
-
enumerator HDR10_AND_SDR
-
enumerator HDR10_ONLY
-
enumerator HDR_ONLY
-
enumerator SDR_ONLY
-
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.
-
enumerator DEPTH_RESOLVE_MODE_NONE
-
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
-
enumerator DRV3D_FRAMERATE_LIMITED_BY_NOTHING
-
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:
vertex state can only be PASSTHROUGH
if DeviceDriverCapabilities::hasVariableRateShadingShaderOutput is supported then vertex state can additionally be OVERRIDE
pixel state can only be PASSTHROUGH
if DeviceDriverCapabilities::hasVariableRateShadingTexture is supported then pixel state can additionally be OVERRIDE
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
-
enumerator RB_RW_RENDER_TARGET
-
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
-
enumerator RP_TA_NONE
-
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
-
enumerator RP_INDEX_NORMAL
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:
Add the new cap indicator boolean bit to the end of this structure.
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.
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.
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
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Runtime determined.
Constant true.
Constant true.
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
Constant true.
Constant true.
Constant true.
Constant true.
Constant false.
Constant false.
Constant true.
Constant true.
Constant false.
Constant true.
Runtime determined.
-
bool hasStructuredBuffers
Indicates that the device driver supports structured buffer types.
Note
Platform
Value
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Runtime determined.
-
bool hasNoOverwriteOnShaderResourceBuffers
Indicates that the device driver supports locking of structured buffers with the no-overwrite method.
Note
Platform
Value
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Runtime determined.
-
bool hasForcedSamplerCount
Indicates that the device driver supports forced multi-sample count during raster phase.
Note
Platform
Value
Constant true.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
-
bool hasVolMipMap
Indicates that the device driver supports mipmaps for vol (eg 3D) textures.
Note
Platform
Value
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
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
Constant false.
Constant false.
Runtime determined.
Runtime determined.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
-
bool hasOcclusionQuery
Indicates that the device driver supports occlusion queries.
Note
Platform
Value
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
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
Constant true.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
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
Constant true.
Constant true.
Constant true.
Constant true.
Constant false.
Constant false.
Constant true.
Runtime determined.
Constant false.
Runtime determined.
Runtime determined.
-
bool hasConditionalRender
Indicates that the device driver supports conditional rendering.
Note
Platform
Value
Constant true.
Constant true.
Constant true.
Constant true.
Constant false.
Constant false.
Runtime determined.
Runtime determined.
Constant false.
Runtime determined.
Runtime determined.
-
bool hasResourceCopyConversion
Indicates that the device driver supports copy of textures of different but compatible formats.
Note
Platform
Value
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Runtime determined.
-
bool hasAsyncCopy
Indicates that the device driver supports asynchronously issued copy operations.
Note
Platform
Value
Constant true.
Constant true.
Constant true.
Constant true.
Constant false.
Constant false.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
-
bool hasReadMultisampledDepth
Indicates that the device driver supports reading from multi-sampled depth stencil targets.
Note
Platform
Value
Constant true.
Constant true.
Constant false.
Constant false.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Runtime determined.
-
bool hasInstanceID
Indicates that the device driver supports instance id system variable in shaders.
Note
Platform
Value
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Runtime determined.
Constant true.
Runtime determined.
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
Constant false.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
Constant false.
Runtime determined.
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
Constant true.
Constant true.
Constant true.
Constant true.
Constant false.
Constant false.
Constant false.
Runtime determined.
Constant false.
Runtime determined.
Runtime determined.
-
bool hasGather4
Indicates that the device driver supports gather intrinsic in shaders.
Note
Platform
Value
Constant true.
Constant true.
Constant false.
Constant false.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
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
Constant true.
Constant true.
Constant false.
Constant false.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
-
bool hasWellSupportedIndirect
Indicates that the device driver supports indirect drawing.
Note
Platform
Value
Constant true.
Constant true.
Constant true.
Constant true.
Constant false.
Constant false.
Constant true.
Runtime determined.
Constant false.
Runtime determined.
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
Constant true.
Constant true.
Constant true.
Constant true.
Constant false.
Constant false.
Runtime determined.
Runtime determined.
Runtime determined.
Runtime determined.
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
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
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
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
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
Constant false.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
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
Constant false.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
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
Constant false.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
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
Constant false.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
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
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
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
Constant true.
Constant true.
Constant true.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
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
Constant true.
Constant true.
Indicates that the device driver supports the resource heap API.
Indicates that the device driver supports the resource heap API.
Constant false.
Constant false.
Constant false.
Runtime determined.
Constant false.
Runtime determined.
Runtime determined.
-
bool hasBufferOverlapCopy
Indicates that the device driver supports overlapping buffer copies.
Note
Platform
Value
Constant true.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
-
bool hasBufferOverlapRegionsCopy
Indicates that the device driver uses region based copies when overlapping copies are executed.
Note
Platform
Value
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
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
Constant true.
Constant true.
Constant true.
Constant true.
Constant false.
Constant false.
Constant true.
Runtime determined.
Runtime determined.
Runtime determined.
Runtime determined.
-
bool hasShader64BitIntegerResources
Indicates that the device driver supports 64 bit integers shader resource types.
Note
Platform
Value
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
-
bool hasNativeRenderPassSubPasses
Indicates that the device driver is not emulating render sup-passes.
Note
Platform
Value
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant true.
Constant true.
Constant false.
Constant true.
Runtime determined.
-
bool hasTiled2DResources
Indicates that the device driver supports tiled 2D textures.
Note
Platform
Value
Constant true.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
-
bool hasTiled3DResources
Indicates that the device driver supports tiled 3D textures;.
Note
Platform
Value
Constant true.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
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
Constant true.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
-
bool hasTiledMemoryAliasing
Indicates that the device driver supports memory aliasing of multiple tiles.
Note
Platform
Value
Constant true.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
-
bool hasDLSS
Indicates that the device driver supports Nvidia DLSS. DLSS stand for Deep Learning Super Sampling.
Note
Platform
Value
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
-
bool hasXESS
Indicates that the device driver supports Intel XESS. XESS stands for Xe Super Sampling.
Note
Platform
Value
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
-
bool hasDrawID
Indicates that the device driver supports draw id in shaders.
Note
Platform
Value
Constant true.
Constant true.
Constant true.
Constant true.
Constant false.
Constant false.
Constant true.
Constant true.
Runtime determined.
Constant true.
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
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
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
Constant true.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
-
bool hasOptimizedViewInstancing
Indicates that the device driver has some optimizations for view instanced rendering.
Note
Platform
Value
Constant true.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
-
bool hasAcceleratedViewInstancing
Indicates that the device driver has hardware acceleration to natively support view instanced rendering.
Note
Platform
Value
Constant true.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
-
bool hasRenderPassDepthResolve
Indicates that the device driver can resolve multi-sampled depth stencil render targets in a render pass.
Note
Platform
Value
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
Runtime determined.
Runtime determined.
Runtime determined.
Runtime determined.
Runtime determined.
Runtime determined.
-
bool hasStereoExpansion
Indicates that the device driver supports stereo render expansion.
Note
Platform
Value
Constant false.
Constant false.
Constant false.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
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
Constant false.
Constant false.
Constant false.
Constant false.
Constant true.
Constant true.
Constant false.
Runtime determined.
Constant false.
Indicates that the device driver architecture is known to be a tile renderer.
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
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
Constant false.
Constant false.
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
Constant true.
Constant true.
Constant true.
Constant true.
Runtime determined.
Runtime determined.
Constant true.
Constant true.
Constant true.
Constant true.
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
Constant true.
Constant true.
Constant true.
Constant true.
Runtime determined.
Runtime determined.
Constant true.
Constant true.
Constant true.
Constant true.
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”
Runtime determined.
Runtime determined.
DeviceDriverCapabilitiesMacOSX::”hasShaderFloat16Support” “macOS”
Runtime determined.
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”
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
Constant false.
Constant true.
Constant 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.
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.
Constant false.
Runtime determined.
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.
Runtime determined.
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
Constant false.
Constant true.
Constant false.
Constant false.
Runtime determined.
Runtime determined.
Constant false.
Runtime determined.
Runtime determined.
Runtime determined.
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
Constant false.
Constant true.
Constant false.
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
Constant false.
Runtime determined.
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
Constant false.
Constant true.
Constant false.
Constant false.
Runtime determined.
Runtime determined.
Constant false.
Runtime determined.
Runtime determined.
Runtime determined.
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
Constant false.
Constant true.
Constant false.
Constant false.
Runtime determined.
Runtime determined.
Constant false.
Runtime determined.
Runtime determined.
Runtime determined.
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
Constant false.
Constant true.
Constant false.
Constant false.
Runtime determined.
Runtime determined.
Constant false.
Runtime determined.
Runtime determined.
Runtime determined.
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
Constant true.
Constant true.
Constant true.
Constant true.
Runtime determined.
Runtime determined.
Constant true.
Constant true.
Runtime determined.
Constant true.
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
Constant false.
Constant false.
Constant false.
Constant false.
Runtime determined.
Runtime determined.
Constant false.
Runtime determined.
Runtime determined.
Runtime determined.
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
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Constant true.
Runtime determined.
Runtime determined.
Constant true.
Runtime determined.
Runtime determined.
-
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.
-
static constexpr bool hasAnisotropicFilter = true
-
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.
See also
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
-
static constexpr bool hasConservativeRassterization = true
-
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.
-
static constexpr bool hasAnisotropicFilter = true
-
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.
See also
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.
-
static constexpr bool hasStereoExpansion = true
-
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.
-
static constexpr bool hasAnisotropicFilter = true
-
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.
-
static constexpr bool hasAnisotropicFilter = true
-
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
-
static constexpr bool hasAnisotropicFilter = true
-
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)
-
static constexpr bool hasDepthReadOnly = true
-
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.
-
static constexpr bool hasAnisotropicFilter = true
-
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)
-
static constexpr bool hasAnisotropicFilter = true
-
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.
-
static constexpr bool hasAnisotropicFilter = true
-
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
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasComputeTimeLimited
Runtime defined on Android. DeviceDriverIssuesAndroid
-
bool hasComputeCanNotWrite3DTex
Some device have issues with writing to 3D textures in the compute stage.
Note
Known on the following devices:
Qualcomm Adreno
Note
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasComputeCanNotWrite3DTex
Runtime defined on Android. DeviceDriverIssuesAndroid
-
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
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasStrictRenderPassesOnly
Runtime defined on Android. DeviceDriverIssuesAndroid
-
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
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasSmallSampledBuffers
Runtime defined on Android. DeviceDriverIssuesAndroid
-
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
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasRenderPassClearDataRace
Runtime defined on Android. DeviceDriverIssuesAndroid
-
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
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasBrokenBaseInstanceID
Runtime defined on Android. DeviceDriverIssuesAndroid
-
bool hasMultisampledAndInstancingHang
Some device drivers may hang during instanced rendering with multisampled rastering.
Note
Known for certain device driver combinations.
Note
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasMultisampledAndInstancingHang
Runtime defined on Android. DeviceDriverIssuesAndroid
-
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
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasIgnoreDeviceLost
Runtime defined on Android. DeviceDriverIssuesAndroid
-
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
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasPollDeviceFences
Runtime defined on Android. DeviceDriverIssuesAndroid
-
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
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasBrokenShadersAfterAppSwitch
Runtime defined on Android. DeviceDriverIssuesAndroid
-
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
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasBrokenSRGBConverionWithMRT
Runtime defined on Android. DeviceDriverIssuesAndroid
-
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
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasBrokenComputeFormattedOutput
Runtime defined on Android. DeviceDriverIssuesAndroid
-
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
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Android. DeviceDriverIssuesNoIssues::hasClearColorBug
Runtime defined on Windows. DeviceDriverIssuesWindows
-
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
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasBrokenMTRecreateImage
Runtime defined on Android. DeviceDriverIssuesAndroid
-
bool hasBrokenSubpasses
Some device drivers have some issues with subpasses.
Note
Known on the following devices:
Qualcomm Adreno with certain driver versions
Note
Is constant true on Xbox One, Xbox Series X / S, PlayStation 4, PlayStation 5, iOS, tvOS, Nintendo Switch, macOS, Linux and Windows. DeviceDriverIssuesNoIssues::hasBrokenSubpasses
Runtime defined on Android. DeviceDriverIssuesAndroid
-
bool hasComputeTimeLimited
-
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.
-
static constexpr bool hasClearColorBug = false
-
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.
-
static constexpr bool hasComputeTimeLimited = false
-
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.
-
static constexpr bool hasClearColorBug = false
-
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.
-
unsigned topAccelerationStructureInstanceElementSize = 0
-
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
-
DeviceDriverIssues issues
-
DeviceDriverShaderModelVersion shaderModel
-
DeviceDriverRaytraceProperties raytrace
-
int zcmpfunc
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
-
enumerator VBLOCK_READONLY
-
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
-
enumerator PRIM_POINTLIST
-
enum [anonymous]
Values:
-
enumerator TM_WORLD
-
enumerator TM_VIEW
-
enumerator TM_PROJ
-
enumerator TM_LOCAL2VIEW
-
enumerator TM_VIEW2LOCAL
-
enumerator TM_GLOBAL
-
enumerator TM__NUM
-
enumerator TM_WORLD
-
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
-
enumerator CLEAR_TARGET
-
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
-
enumerator BLEND_ZERO
-
enum BLENDOP
Values:
-
enumerator BLENDOP_ADD
-
enumerator BLENDOP_SUBTRACT
-
enumerator BLENDOP_REVSUBTRACT
-
enumerator BLENDOP_MIN
-
enumerator BLENDOP_MAX
-
enumerator BLENDOP_ADD
-
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
-
enumerator CMPF_NEVER
-
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
-
enumerator STNCLOP_KEEP
Variables
-
static constexpr int MAX_SURVEY_INDEX = 0