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 DeviceAttributes = DeviceAttributesBase
-
using DeviceDriverCapabilities = DeviceDriverCapabilitiesBase
-
using DeviceDriverIssues = DeviceDriverIssuesNoIssues
-
using DeviceDriverShaderModelVersion = d3d::shadermodel::Version
Enums
-
enum ShaderStage
Values:
-
enumerator STAGE_CS
-
enumerator STAGE_PS
-
enumerator STAGE_VS
-
enumerator STAGE_MAX
-
enumerator STAGE_CS_ASYNC_STATE
-
enumerator STAGE_MAX_EXT
-
enumerator STAGE_CS
Values:
-
enumerator MAXSAMPLERS
-
enumerator MAXSTREAMS
-
enumerator MAXSAMPLERS_VS
-
enumerator MAX_SLI_AFRS
-
enumerator MAXSAMPLERS
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
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_USAGE_STREAM_OUTPUT_COUNTER
-
enumerator SBCF_USAGE_STREAM_OUTPUT
-
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
Values:
-
enumerator WRAP_COORD0
-
enumerator WRAP_COORD1
-
enumerator WRAP_COORD2
-
enumerator WRAP_COORD3
-
enumerator WRAP_COORD0
Values:
-
enumerator VCDEST_NONE
-
enumerator VCDEST_AMB
-
enumerator VCDEST_DIFF
-
enumerator VCDEST_AMB_DIFF
-
enumerator VCDEST_EMIS
-
enumerator VCDEST_SPEC
-
enumerator VCDEST_NONE
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 class GpuVendor : uint8_t
Dagor specific ID of the currently used GPU’s vendor.
Values:
-
enumerator UNKNOWN
-
enumerator MESA
-
enumerator IMGTEC
-
enumerator AMD
-
enumerator NVIDIA
-
enumerator INTEL
-
enumerator APPLE
-
enumerator SHIM_DRIVER
-
enumerator ARM
-
enumerator QUALCOMM
-
enumerator SAMSUNG
-
enumerator HUAWEI
-
enumerator ATI
-
enumerator UNKNOWN
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_STREAM_OUTPUT
-
enumerator RB_STREAM_OUTPUT_COUNTER
-
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
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)
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
-
static constexpr int MAX_STREAM_OUTPUT_SLOTS = 4
-
struct DeviceAttributesBase
- #include <dag_consts.h>
Contains non-volatile info about the currently used GPU.
Subclassed by DeviceAttributesAndroid, DeviceAttributesIOS, DeviceAttributesLinux, DeviceAttributesMacOSX, DeviceAttributesNintendoSwitch, DeviceAttributesPS4, DeviceAttributesPS5, DeviceAttributesScarlett, DeviceAttributesTVOS, DeviceAttributesWindows, DeviceAttributesXboxOne
Public Types
-
enum AmdFamily
Values:
-
enumerator PRE_GCN
-
enumerator GCN1
-
enumerator GCN2
-
enumerator GCN3
-
enumerator GCN4
-
enumerator Vega
-
enumerator RDNA
-
enumerator RDNA2
-
enumerator RDNA3
-
enumerator RDNA4
-
enumerator PRE_GCN
-
enum IntelFamily
Values:
-
enumerator SANDYBRIDGE
-
enumerator IVYBRIDGE
-
enumerator HASWELL
-
enumerator VALLEYVIEW
-
enumerator BROADWELL
-
enumerator CHERRYVIEW
-
enumerator SKYLAKE
-
enumerator KABYLAKE
-
enumerator COFFEELAKE
-
enumerator WILLOWVIEW
-
enumerator BROXTON
-
enumerator GEMINILAKE
-
enumerator WHISKEYLAKE
-
enumerator CANNONLAKE
-
enumerator COMETLAKE
-
enumerator ICELAKE
-
enumerator ICELAKE_LP
-
enumerator LAKEFIELD
-
enumerator ELKHARTLAKE
-
enumerator JASPERLAKE
-
enumerator TIGERLAKE_LP
-
enumerator ROCKETLAKE
-
enumerator ALDERLAKE_S
-
enumerator ALDERLAKE_P
-
enumerator ALDERLAKE_N
-
enumerator TWINLAKE
-
enumerator RAPTORLAKE
-
enumerator RAPTORLAKE_S
-
enumerator RAPTORLAKE_P
-
enumerator DG1
-
enumerator XE_HP_SDV
-
enumerator ALCHEMIST
-
enumerator PONTEVECCHIO
-
enumerator METEORLAKE
-
enumerator ARROWLAKE_H
-
enumerator ARROWLAKE_S
-
enumerator BATTLEMAGE
-
enumerator LUNARLAKE
-
enumerator PANTHERLAKE
-
enumerator SANDYBRIDGE
-
enum NvidiaFamily
Values:
-
enumerator T2X
-
enumerator T3X
-
enumerator T4X
-
enumerator T12X
-
enumerator NV40
-
enumerator NV50
-
enumerator G78
-
enumerator G80
-
enumerator G90
-
enumerator GT200
-
enumerator GF100
-
enumerator GF110
-
enumerator GK100
-
enumerator GK110
-
enumerator GK200
-
enumerator GM000
-
enumerator GM200
-
enumerator GP100
-
enumerator GV100
-
enumerator GV110
-
enumerator TU100
-
enumerator GA100
-
enumerator AD100
-
enumerator GB200
-
enumerator T2X
Public Members
-
GpuVendor vendor = GpuVendor::UNKNOWN
Dagor specific value about the vendor of the currently use GPU.
-
bool isUMA = false
Unified Memory Architecture, true if the GPU is integrated.
Public Static Attributes
-
static constexpr uint32_t UNKNOWN = 0
-
enum AmdFamily
-
struct DeviceAttributesXboxOne : public DeviceAttributesBase
- #include <dag_consts.h>
Optimized device attribute structure, hiding bitfield entries with static const values of known platform features for \xbone.
-
struct DeviceAttributesScarlett : public DeviceAttributesBase
- #include <dag_consts.h>
Optimized device attribute structure, hiding bitfield entries with static const values of known platform features for \scarlett.
-
struct DeviceAttributesPS4 : public DeviceAttributesBase
- #include <dag_consts.h>
Optimized device attribute structure, hiding bitfield entries with static const values of known platform features for \ps4.
-
struct DeviceAttributesPS5 : public DeviceAttributesBase
- #include <dag_consts.h>
Optimized device attribute structure, hiding bitfield entries with static const values of known platform features for \ps5.
-
struct DeviceAttributesIOS : public DeviceAttributesBase
- #include <dag_consts.h>
Optimized device attribute structure, hiding bitfield entries with static const values of known platform features for \ios.
-
struct DeviceAttributesTVOS : public DeviceAttributesBase
- #include <dag_consts.h>
Optimized device attribute structure, hiding bitfield entries with static const values of known platform features for \tvos.
-
struct DeviceAttributesNintendoSwitch : public DeviceAttributesBase
- #include <dag_consts.h>
Optimized device attribute structure, hiding bitfield entries with static const values of known platform features for \nswitch.
-
struct DeviceAttributesAndroid : public DeviceAttributesBase
- #include <dag_consts.h>
Optimized device attribute structure, hiding bitfield entries with static const values of known platform features for \android.
-
struct DeviceAttributesMacOSX : public DeviceAttributesBase
- #include <dag_consts.h>
Optimized device attribute structure, hiding bitfield entries with static const values of known platform features for \mac.
-
struct DeviceAttributesLinux : public DeviceAttributesBase
- #include <dag_consts.h>
Optimized device attribute structure, hiding bitfield entries with static const values of known platform features for \linux.
-
struct DeviceAttributesWindows : public DeviceAttributesBase
- #include <dag_consts.h>
Optimized device attribute structure, hiding bitfield entries with static const values of known platform features for \windows.
-
struct DeviceDriverCapabilitiesBase
- #include <dag_consts.h>
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
\capbrief supports anisotropic filtering of textures.
Devices without support will silently treat any value for anisotropic filtering as 1.0. \platformtable{hasAnisotropicFilter,c,a,c,a,c,c,c,r,c,c,c}
-
bool hasDepthReadOnly
\capbrief supports constant depth stencil targets that allow simultaneous sampling as a shader resource. \platformtable{hasDepthReadOnly,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasStructuredBuffers
\capbrief supports structured buffer types. \platformtable{hasStructuredBuffers,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasNoOverwriteOnShaderResourceBuffers
\capbrief supports locking of structured buffers with the no-overwrite method. \platformtable{hasNoOverwriteOnShaderResourceBuffers,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasForcedSamplerCount
\capbrief supports forced multi-sample count during raster phase. \platformtable{hasForcedSamplerCount,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasVolMipMap
\capbrief supports mipmaps for vol (eg 3D) textures. \platformtable{hasVolMipMap,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasAsyncCompute
\capbrief supports GpuPipeline::ASYNC_COMPUTE as selected pipeline when applicable. \someNYI \platformtable{hasAsyncCompute,c,a,r,r,c,c,c,c,c,c,r}
-
bool hasOcclusionQuery
\capbrief supports occlusion queries. \platformtable{hasOcclusionQuery,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasConstBufferOffset
\capbrief supports values other than 0 for
consts_offset
of d3d::set_const_buffer \platformtable{hasConstBufferOffset,c,a,c,a,c,c,c,c,c,c,r} \someNYI
-
bool hasDepthBoundsTest
\capbrief supports depth bounds testing. See d3d::set_depth_bounds for details of depth bounds testing. \platformtable{hasDepthBoundsTest,c,a,c,a,c,c,c,r,c,r,r}
-
bool hasConditionalRender
\capbrief supports conditional rendering. \platformtable{hasConditionalRender,c,a,c,a,c,c,r,r,c,r,r}
-
bool hasResourceCopyConversion
\capbrief supports copy of textures of different but compatible formats. \platformtable{hasResourceCopyConversion,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasAsyncCopy
\capbrief supports asynchronously issued copy operations. \platformtable{hasAsyncCopy,c,a,c,a,c,c,c,c,c,c,c}
-
bool hasReadMultisampledDepth
\capbrief supports reading from multi-sampled depth stencil targets. \platformtable{hasReadMultisampledDepth,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasInstanceID
\capbrief supports instance id system variable in shaders. \platformtable{hasInstanceID,c,a,c,a,c,c,c,r,c,r,r}
-
bool hasConservativeRassterization
\capbrief supports conservative rastering. \someNYI \platformtable{hasConservativeRassterization,c,c,c,a,c,c,c,r,c,r,r}
-
bool hasQuadTessellation
\capbrief supports quad tessellation. \someNYI \platformtable{hasQuadTessellation,c,a,c,a,c,c,c,r,c,r,r}
-
bool hasGather4
\capbrief supports gather intrinsic in shaders. \platformtable{hasGather4,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasAlphaCoverage
\capbrief 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. \someNYI \platformtable{hasAlphaCoverage,c,a,c,a,c,c,c,c,c,c,c}
-
bool hasWellSupportedIndirect
\capbrief supports indirect drawing. \platformtable{hasWellSupportedIndirect,c,a,c,a,c,c,c,r,c,r,r}
-
bool hasBindless
\capbrief 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:
\nswitch is experimental support and so is not a constant cap yet. \platformtable{hasBindless,c,a,c,a,c,c,r,r,r,r,r}
-
bool hasNVApi
\capbrief has detected that the Nvidia driver API is available for the render device. \platformtable{hasNVApi,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasATIApi
\capbrief has detected that the \ati driver API is available for the render device. \platformtable{hasATIApi,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasVariableRateShading
\capbrief supports basic per draw shading rates. \someNYI \platformtable{hasVariableRateShading,c,c,c,a,c,c,c,c,c,c,r}
-
bool hasVariableRateShadingTexture
\capbrief supports shading rate textures as a source of shading rate information. \someNYI \platformtable{hasVariableRateShadingTexture,c,c,c,a,c,c,c,c,c,c,r}
-
bool hasVariableRateShadingShaderOutput
\capbrief supports shader generated shading rates. \someNYI \platformtable{hasVariableRateShadingShaderOutput,c,c,c,a,c,c,c,c,c,c,r}
-
bool hasVariableRateShadingCombiners
\capbrief supports combiners for variable rate shading to select the final shading rate. \someNYI \platformtable{hasVariableRateShadingCombiners,c,c,c,a,c,c,c,c,c,c,r}
-
bool hasVariableRateShadingBy4
\capbrief supports variable rate shading blocks with sizes of 4 in X and Y direction. \someNYI \platformtable{hasVariableRateShadingBy4,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasStreamOutput
\capbrief supports stream output. \someNYI \platformtable{ hasStreamOutput, c, a, c, a, c, c, c, c, c, c, r}
-
bool hasAliasedTextures
\capbrief supports creation of aliased textures. \someNYI \platformtable{hasAliasedTextures,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasResourceHeaps
\capbrief supports the resource heap API. \someNYI \platformtable{hasResourceHeaps,c,a,c,a,c,c,c,r,c,r,r}
-
bool hasBufferOverlapCopy
\capbrief supports overlapping buffer copies. \platformtable{hasBufferOverlapCopy,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasBufferOverlapRegionsCopy
\capbrief uses region based copies when overlapping copies are executed. \platformtable{hasBufferOverlapRegionsCopy,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasUAVOnlyForcedSampleCount
\capbrief supports forced multisample count without render targets and only outputting to UAVs. \someNYI \platformtable{hasUAVOnlyForcedSampleCount,c,a,c,a,c,c,c,r,r,r,r}
- 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.
-
bool hasShader64BitIntegerResources
\capbrief supports 64 bit integers shader resource types. \platformtable{hasShader64BitIntegerResources,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasNativeRenderPassSubPasses
\capbrief is not emulating render sup-passes. \platformtable{hasNativeRenderPassSubPasses,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasTiled2DResources
\capbrief supports tiled 2D textures. \platformtable{hasTiled2DResources,c,a,c,a,c,c,c,r,c,r,r}
-
bool hasTiled3DResources
\capbrief supports tiled 3D textures; \platformtable{hasTiled3DResources,c,a,c,a,c,c,c,r,c,r,r}
-
bool hasTiledSafeResourcesAccess
\capbrief supports safe read and write access for not mapped tiles of tiled resources. Such reads return 0 and writes are ignored. \platformtable{hasTiledSafeResourcesAccess,c,a,c,a,c,c,c,r,c,r,r}
-
bool hasTiledMemoryAliasing
\capbrief supports memory aliasing of multiple tiles. \platformtable{hasTiledMemoryAliasing,c,a,c,a,c,c,c,r,c,r,r}
-
bool hasDLSS
\capbrief supports Nvidia DLSS. DLSS stand for Deep Learning Super Sampling. \platformtable{hasDLSS,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasXESS
\capbrief supports Intel XESS. XESS stands for Xe Super Sampling. \platformtable{hasXESS,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasDrawID
\capbrief supports draw id in shaders. \platformtable{hasDrawID,c,a,c,a,c,c,c,c,r,c,r}
-
bool hasMeshShader
\capbrief 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. \platformtable{hasMeshShader,c,a,c,a,r,c,c,c,r,c,r}
-
bool hasBasicViewInstancing
\capbrief supports basic view instancing.
View instancing may be implemented with replicating render commands for each view. \platformtable{hasBasicViewInstancing,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasOptimizedViewInstancing
\capbrief has some optimizations for view instanced rendering. \platformtable{hasOptimizedViewInstancing,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasAcceleratedViewInstancing
\capbrief has hardware acceleration to natively support view instanced rendering. \platformtable{hasAcceleratedViewInstancing,c,a,c,a,c,c,c,c,c,c,r}
-
bool hasRenderPassDepthResolve
\capbrief can resolve multi-sampled depth stencil render targets in a render pass. \platformtable{hasRenderPassDepthResolve,c,a,c,a,r,r,r,r,r,r,r}
-
bool hasStereoExpansion
\capbrief supports stereo render expansion. \platformtable{hasStereoExpansion,c,a,c,c,c,c,c,c,c,c,c}
-
bool hasTileBasedArchitecture
\capbrief 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. \platformtable{hasTileBasedArchitecture,c,a,c,a,c,c,c,r,c,c,c}
-
bool hasLazyMemory
\capbrief supports lazily allocated memory.
Supported on most TBDR GPUs, allocates memory by on-chip tile/framebuffer memory for transient render targets. \platformtable{hasLazyMemory,c,a,c,a,c,c,c,r,c,c,c}
-
bool hasIndirectSupport
\capbrief 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 \platformtable{hasIndirectSupport,c,c,c,c,r,r,c,c,c,c,c}
-
bool hasCompareSampler
\capbrief 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 \platformtable{hasCompareSampler,c,c,c,c,r,r,c,c,c,c,c}
-
bool hasShaderFloat16Support
\capbrief supports 16-bit floating-point types in shaders for arithmetic operations. \someNYI \platformtable{“hasShaderFloat16Support”,c,a,c,a,c,c,r,r,c,r,r}
-
bool hasUAVOnEveryStage
\capbrief supports UAV access in every shader stage, without this cap UAV is only available in pixel and compute shaders. \someNYI \platformtable{“hasUAVOnEveryStage”,c,a,c,a,c,c,c,r,c,r,r}
-
bool hasRayAccelerationStructure
\capbrief 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. \someNYI \platformtable{hasRayAccelerationStructure,c,c,c,a,c,c,c,r,c,r,r}
-
bool hasRayQuery
\capbrief supports ray queries (“inline ray tracing”) in any shader stage. \someNYI \platformtable{hasRayQuery,c,c,c,a,r,r,c,r,r,r,r}
-
bool hasRayDispatch
\capbrief supports ray dispatch with its own ray tracing shader stage. \someNYI \platformtable{hasRayDispatch,c,c,c,a,c,c,c,r,c,r,r}
-
bool hasIndirectRayDispatch
\capbrief supports indirect dispatch for dispatch rays. \someNYI \platformtable{hasIndirectRayDispatch,c,c,c,a,r,r,c,r,r,r,r}
-
bool hasEmulatedRaytracing
\capbrief uses emulation withing gapi for ray tracing features. \someNYI \platformtable{hasEmulatedRaytracing,c,c,c,c,r,c,c,c,r,c,c}
-
bool hasGeometryIndexInRayAccelerationStructure
\capbrief supports geometry index information in acceleration structures in ray tracing / ray query shaders. \someNYI \platformtable{hasGeometryIndexInRayAccelerationStructure,c,c,c,a,r,r,c,r,r,r,r}
-
bool hasSkipPrimitiveTypeInRayTracingShaders
\capbrief supports masking flags in shaders to ignore triangle or procedural geometry during traversal. \someNYI \platformtable{hasSkipPrimitiveTypeInRayTracingShaders,c,c,c,a,r,r,c,r,r,r,r}
-
bool hasBaseVertexSupport
\capbrief 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) \platformtable{hasBaseVertexSupport,c,c,c,c,r,r,c,c,r,c,c}
-
bool castingFullyTypedFormatsSupported
\capbrief castingFullyTypedFormatsSupported supports casting (aliasing) fully typed formats between each other (same as op3.CastingFullyTypedFormatSupported in DX12) \someNYI \platformtable{castingFullyTypedFormatsSupported,c,c,c,c,r,r,c,r,r,r,r}
-
bool hasNativeRayTracePipelineExpansion
-
bool hasWaveOps
supports waveOps
\capbrief supports wave ops
”xbone”, “scarlett”, “ps4”, “ps5”, “ios”, “tvos”, “nswitch”, “android”, “mac”, “linux”, “win32” should be one of the following \platformtable{hasWaveOps,c,a,c,a,c,c,r,r,c,r,r}
-
bool hasPersistentShaderHandles
\capbrief hasPersistentShaderHandles indicates that shader handles of pipeline objects, that are used for shader binding tables, are persistent and are the same for derived pipelines and pipelines that use the same shader from the same shader library. \platformtable{hasPersistentShaderHandles,c,c,c,a,r,r,c,r,r,r,r}
-
bool hasDualSourceBlending
\capbrief hasDualSourceBlending indicates that dual source blending is available (only for one render target). \someNYI \platformtable{hasDualSourceBlending,c,a,c,a,c,c,c,r,c,c,c}
-
struct DeviceDriverCapabilitiesXboxOne : public DeviceDriverCapabilitiesBase
- #include <dag_consts.h>
Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for \xbone.
Subclassed by DeviceDriverCapabilitiesScarlett
Public Static Attributes
-
static constexpr bool hasAnisotropicFilter = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAnisotropicFilter}
-
static constexpr bool hasDepthReadOnly = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDepthReadOnly}
-
static constexpr bool hasStructuredBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasStructuredBuffers}
-
static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasNoOverwriteOnShaderResourceBuffers}
-
static constexpr bool hasForcedSamplerCount = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasForcedSamplerCount}
-
static constexpr bool hasVolMipMap = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasVolMipMap}
-
static constexpr bool hasAsyncCompute = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAsyncCompute} \NYI
-
static constexpr bool hasOcclusionQuery = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasOcclusionQuery}
-
static constexpr bool hasConstBufferOffset = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasConstBufferOffset}
-
static constexpr bool hasDepthBoundsTest = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDepthBoundsTest}
-
static constexpr bool hasConditionalRender = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasConditionalRender}
-
static constexpr bool hasResourceCopyConversion = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasResourceCopyConversion}
-
static constexpr bool hasAsyncCopy = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAsyncCopy}
-
static constexpr bool hasReadMultisampledDepth = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasReadMultisampledDepth}
-
static constexpr bool hasInstanceID = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasInstanceID}
-
static constexpr bool hasConservativeRassterization = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConservativeRassterization}
-
static constexpr bool hasQuadTessellation = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasQuadTessellation}
-
static constexpr bool hasGather4 = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasGather4}
-
static constexpr bool hasAlphaCoverage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAlphaCoverage}
-
static constexpr bool hasWellSupportedIndirect = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasWellSupportedIndirect}
-
static constexpr bool hasBindless = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasBindless}
-
static constexpr bool hasNVApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNVApi}
-
static constexpr bool hasATIApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasATIApi}
-
static constexpr bool hasVariableRateShading = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShading}
-
static constexpr bool hasVariableRateShadingTexture = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingTexture}
-
static constexpr bool hasVariableRateShadingShaderOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingShaderOutput}
-
static constexpr bool hasVariableRateShadingCombiners = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingCombiners}
-
static constexpr bool hasVariableRateShadingBy4 = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingBy4}
-
static constexpr bool hasStreamOutput = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasStreamOutput}
-
static constexpr bool hasAliasedTextures = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAliasedTextures}
-
static constexpr bool hasResourceHeaps = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasResourceHeaps}
-
static constexpr bool hasBufferOverlapCopy = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasBufferOverlapCopy}
-
static constexpr bool hasBufferOverlapRegionsCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapRegionsCopy}
-
static constexpr bool hasUAVOnlyForcedSampleCount = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasUAVOnlyForcedSampleCount}
-
static constexpr bool hasShader64BitIntegerResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasShader64BitIntegerResources}
-
static constexpr bool hasNativeRenderPassSubPasses = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNativeRenderPassSubPasses}
-
static constexpr bool hasTiled2DResources = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasTiled2DResources}
-
static constexpr bool hasTiled3DResources = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasTiled3DResources}
-
static constexpr bool hasTiledSafeResourcesAccess = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasTiledSafeResourcesAccess}
-
static constexpr bool hasTiledMemoryAliasing = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasTiledMemoryAliasing}
-
static constexpr bool hasDLSS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDLSS}
-
static constexpr bool hasXESS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasXESS}
-
static constexpr bool hasDrawID = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDrawID}
-
static constexpr bool hasMeshShader = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasMeshShader}
-
static constexpr bool hasBasicViewInstancing = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasBasicViewInstancing}
-
static constexpr bool hasOptimizedViewInstancing = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasOptimizedViewInstancing}
-
static constexpr bool hasAcceleratedViewInstancing = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAcceleratedViewInstancing}
-
static constexpr bool hasRenderPassDepthResolve = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRenderPassDepthResolve}
-
static constexpr bool hasStereoExpansion = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStereoExpansion}
-
static constexpr bool hasTileBasedArchitecture = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTileBasedArchitecture}
-
static constexpr bool hasLazyMemory = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasLazyMemory}
-
static constexpr bool hasIndirectSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasIndirectSupport}
-
static constexpr bool hasCompareSampler = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasCompareSampler}
-
static constexpr bool hasShaderFloat16Support = true
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasShaderFloat16Support}
-
static constexpr bool hasUAVOnEveryStage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasUAVOnEveryStage}
-
static constexpr bool hasRayAccelerationStructure = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayAccelerationStructure}
-
static constexpr bool hasRayQuery = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayQuery}
-
static constexpr bool hasRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayDispatch}
-
static constexpr bool hasIndirectRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasIndirectRayDispatch}
-
static constexpr bool hasEmulatedRaytracing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasEmulatedRaytracing}
-
static constexpr bool hasGeometryIndexInRayAccelerationStructure = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasGeometryIndexInRayAccelerationStructure}
-
static constexpr bool hasSkipPrimitiveTypeInRayTracingShaders = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasSkipPrimitiveTypeInRayTracingShaders}
-
static constexpr bool hasBaseVertexSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasBaseVertexSupport}
-
static constexpr bool castingFullyTypedFormatsSupported = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::castingFullyTypedFormatsSupported}
-
static constexpr bool hasNativeRayTracePipelineExpansion = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNativeRayTracePipelineExpansion}
-
static constexpr bool hasWaveOps = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasWaveOps}
-
static constexpr bool hasPersistentShaderHandles = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasPersistentShaderHandles}
-
static constexpr bool hasDualSourceBlending = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDualSourceBlending}
-
static constexpr bool hasAnisotropicFilter = true
-
struct DeviceDriverCapabilitiesScarlett : public DeviceDriverCapabilitiesXboxOne
- #include <dag_consts.h>
Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for \scarlett.
Uses \xbone optimized values and overrides only differences.
See also
Public Static Attributes
-
static constexpr bool hasConservativeRassterization = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasConservativeRassterization}
-
static constexpr bool hasVariableRateShading = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasVariableRateShading}
-
static constexpr bool hasVariableRateShadingTexture = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasVariableRateShadingTexture}
-
static constexpr bool hasVariableRateShadingShaderOutput = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasVariableRateShadingShaderOutput}
-
static constexpr bool hasVariableRateShadingCombiners = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasVariableRateShadingCombiners}
-
static constexpr bool hasShader64BitIntegerResources = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasShader64BitIntegerResources}
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
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasMeshShader}
Warning
Documentation is contradicting it self about proper support of indirect dispatch with pipelines that use amplification shaders.
-
static constexpr bool hasRayAccelerationStructure = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasRayAccelerationStructure}
-
static constexpr bool hasRayQuery = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasRayQuery}
Warning
This is not directly supported, there is a software implementation available, see GDK documentation for details.
-
static constexpr bool hasRayDispatch = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasRayDispatch}
-
static constexpr bool hasIndirectRayDispatch = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasIndirectRayDispatch}
-
static constexpr bool hasEmulatedRaytracing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasEmulatedRaytracing}
-
static constexpr bool hasGeometryIndexInRayAccelerationStructure = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasGeometryIndexInRayAccelerationStructure}
-
static constexpr bool hasSkipPrimitiveTypeInRayTracingShaders = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasSkipPrimitiveTypeInRayTracingShaders}
-
static constexpr bool hasBaseVertexSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasBaseVertexSupport}
-
static constexpr bool castingFullyTypedFormatsSupported = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::castingFullyTypedFormatsSupported}
-
static constexpr bool hasNativeRayTracePipelineExpansion = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasNativeRayTracePipelineExpansion}
-
static constexpr bool hasPersistentShaderHandles = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasPersistentShaderHandles}
-
static constexpr bool hasConservativeRassterization = true
-
struct DeviceDriverCapabilitiesPS4 : public DeviceDriverCapabilitiesBase
- #include <dag_consts.h>
Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for \ps4.
Subclassed by DeviceDriverCapabilitiesPS5
Public Static Attributes
-
static constexpr bool hasAnisotropicFilter = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAnisotropicFilter}
-
static constexpr bool hasDepthReadOnly = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDepthReadOnly}
-
static constexpr bool hasStructuredBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasStructuredBuffers}
-
static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasNoOverwriteOnShaderResourceBuffers}
-
static constexpr bool hasForcedSamplerCount = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasForcedSamplerCount}
-
static constexpr bool hasVolMipMap = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasVolMipMap}
-
static constexpr bool hasOcclusionQuery = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasOcclusionQuery}
-
static constexpr bool hasConstBufferOffset = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConstBufferOffset} \NYI
-
static constexpr bool hasDepthBoundsTest = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDepthBoundsTest}
-
static constexpr bool hasConditionalRender = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasConditionalRender}
-
static constexpr bool hasResourceCopyConversion = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasResourceCopyConversion}
-
static constexpr bool hasAsyncCopy = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAsyncCopy}
-
static constexpr bool hasReadMultisampledDepth = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasReadMultisampledDepth}
-
static constexpr bool hasInstanceID = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasInstanceID}
-
static constexpr bool hasConservativeRassterization = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConservativeRassterization}
-
static constexpr bool hasQuadTessellation = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasQuadTessellation}
-
static constexpr bool hasGather4 = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasGather4}
- Todo:
Clarify why no support is advertised.
-
static constexpr bool hasAlphaCoverage = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAlphaCoverage} \NYI
-
static constexpr bool hasWellSupportedIndirect = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasWellSupportedIndirect}
-
static constexpr bool hasBindless = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasBindless}
-
static constexpr bool hasNVApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNVApi}
-
static constexpr bool hasATIApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasATIApi}
-
static constexpr bool hasVariableRateShading = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShading}
-
static constexpr bool hasVariableRateShadingTexture = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingTexture}
-
static constexpr bool hasVariableRateShadingShaderOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingShaderOutput}
-
static constexpr bool hasVariableRateShadingCombiners = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingCombiners}
-
static constexpr bool hasVariableRateShadingBy4 = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingBy4}
-
static constexpr bool hasStreamOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStreamOutput}
-
static constexpr bool hasAliasedTextures = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAliasedTextures}
-
static constexpr bool hasBufferOverlapCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapCopy}
-
static constexpr bool hasBufferOverlapRegionsCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapRegionsCopy}
-
static constexpr bool hasUAVOnlyForcedSampleCount = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasUAVOnlyForcedSampleCount}
-
static constexpr bool hasShader64BitIntegerResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasShader64BitIntegerResources}
-
static constexpr bool hasNativeRenderPassSubPasses = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNativeRenderPassSubPasses}
-
static constexpr bool hasTiled2DResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiled2DResources}
-
static constexpr bool hasTiled3DResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiled3DResources}
-
static constexpr bool hasTiledSafeResourcesAccess = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiledSafeResourcesAccess}
-
static constexpr bool hasTiledMemoryAliasing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiledMemoryAliasing}
-
static constexpr bool hasDLSS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDLSS}
-
static constexpr bool hasXESS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasXESS}
-
static constexpr bool hasDrawID = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDrawID}
-
static constexpr bool hasMeshShader = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasMeshShader}
-
static constexpr bool hasBasicViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBasicViewInstancing}
-
static constexpr bool hasOptimizedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasOptimizedViewInstancing}
-
static constexpr bool hasAcceleratedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAcceleratedViewInstancing}
-
static constexpr bool hasRenderPassDepthResolve = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRenderPassDepthResolve}
-
static constexpr bool hasStereoExpansion = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStereoExpansion}
-
static constexpr bool hasTileBasedArchitecture = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTileBasedArchitecture}
-
static constexpr bool hasLazyMemory = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasLazyMemory}
-
static constexpr bool hasIndirectSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasIndirectSupport}
-
static constexpr bool hasCompareSampler = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasCompareSampler}
-
static constexpr bool hasShaderFloat16Support = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasShaderFloat16Support}
-
static constexpr bool hasUAVOnEveryStage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasUAVOnEveryStage}
-
static constexpr bool hasRayAccelerationStructure = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayAccelerationStructure}
-
static constexpr bool hasRayQuery = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayQuery}
-
static constexpr bool hasRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayDispatch}
-
static constexpr bool hasIndirectRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasIndirectRayDispatch}
-
static constexpr bool hasEmulatedRaytracing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasEmulatedRaytracing}
-
static constexpr bool hasGeometryIndexInRayAccelerationStructure = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasGeometryIndexInRayAccelerationStructure}
-
static constexpr bool hasSkipPrimitiveTypeInRayTracingShaders = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasSkipPrimitiveTypeInRayTracingShaders}
-
static constexpr bool hasBaseVertexSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasBaseVertexSupport}
-
static constexpr bool castingFullyTypedFormatsSupported = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::castingFullyTypedFormatsSupported}
-
static constexpr bool hasNativeRayTracePipelineExpansion = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNativeRayTracePipelineExpansion}
-
static constexpr bool hasWaveOps = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasWaveOps}
-
static constexpr bool hasPersistentShaderHandles = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasPersistentShaderHandles}
-
static constexpr bool hasDualSourceBlending = true
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDualSourceBlending}
-
static constexpr bool hasAnisotropicFilter = true
-
struct DeviceDriverCapabilitiesPS5 : public DeviceDriverCapabilitiesPS4
- #include <dag_consts.h>
Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for \ps5.
Uses \ps4 optimized values and overrides only differences.
See also
Public Static Attributes
-
static constexpr bool hasStereoExpansion = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasStereoExpansion}
-
static constexpr bool hasRayAccelerationStructure = true
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayAccelerationStructure}
-
static constexpr bool hasRayQuery = true
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayQuery}
-
static constexpr bool hasRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayDispatch}
-
static constexpr bool hasIndirectRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasIndirectRayDispatch}
-
static constexpr bool hasEmulatedRaytracing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasEmulatedRaytracing}
-
static constexpr bool hasGeometryIndexInRayAccelerationStructure = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasGeometryIndexInRayAccelerationStructure}
-
static constexpr bool hasSkipPrimitiveTypeInRayTracingShaders = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasSkipPrimitiveTypeInRayTracingShaders}
-
static constexpr bool hasStereoExpansion = true
-
struct DeviceDriverCapabilitiesIOS : public DeviceDriverCapabilitiesBase
- #include <dag_consts.h>
Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for \ios.
Public Static Attributes
-
static constexpr bool hasAnisotropicFilter = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAnisotropicFilter}
-
static constexpr bool hasDepthReadOnly = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDepthReadOnly}
-
static constexpr bool hasStructuredBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasStructuredBuffers}
-
static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasNoOverwriteOnShaderResourceBuffers}
-
static constexpr bool hasForcedSamplerCount = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasForcedSamplerCount}
-
static constexpr bool hasVolMipMap = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasVolMipMap}
-
static constexpr bool hasAsyncCompute = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAsyncCompute}
-
static constexpr bool hasOcclusionQuery = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasOcclusionQuery}
-
static constexpr bool hasConstBufferOffset = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConstBufferOffset} \NYI
-
static constexpr bool hasDepthBoundsTest = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDepthBoundsTest}
-
static constexpr bool hasConditionalRender = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConditionalRender}
-
static constexpr bool hasResourceCopyConversion = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasResourceCopyConversion}
-
static constexpr bool hasAsyncCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAsyncCopy}
-
static constexpr bool hasReadMultisampledDepth = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasReadMultisampledDepth}
-
static constexpr bool hasInstanceID = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasInstanceID}
-
static constexpr bool hasConservativeRassterization = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConservativeRassterization}
-
static constexpr bool hasQuadTessellation = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasQuadTessellation}
-
static constexpr bool hasGather4 = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasGather4}
-
static constexpr bool hasAlphaCoverage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAlphaCoverage}
-
static constexpr bool hasWellSupportedIndirect = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasWellSupportedIndirect}
-
static constexpr bool hasBindless = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBindless}
-
static constexpr bool hasNVApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNVApi}
-
static constexpr bool hasATIApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasATIApi}
-
static constexpr bool hasVariableRateShading = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShading}
-
static constexpr bool hasVariableRateShadingTexture = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingTexture}
-
static constexpr bool hasVariableRateShadingShaderOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingShaderOutput}
-
static constexpr bool hasVariableRateShadingCombiners = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingCombiners}
-
static constexpr bool hasVariableRateShadingBy4 = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingBy4}
-
static constexpr bool hasStreamOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStreamOutput}
-
static constexpr bool hasAliasedTextures = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAliasedTextures} \NYI
-
static constexpr bool hasBufferOverlapCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapCopy}
-
static constexpr bool hasBufferOverlapRegionsCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapRegionsCopy}
-
static constexpr bool hasUAVOnlyForcedSampleCount = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasUAVOnlyForcedSampleCount} \NYI
-
static constexpr bool hasShader64BitIntegerResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasShader64BitIntegerResources}
-
static constexpr bool hasNativeRenderPassSubPasses = true
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNativeRenderPassSubPasses}
-
static constexpr bool hasTiled2DResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiled2DResources}
-
static constexpr bool hasTiled3DResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiled3DResources}
-
static constexpr bool hasTiledSafeResourcesAccess = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiledSafeResourcesAccess}
-
static constexpr bool hasTiledMemoryAliasing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiledMemoryAliasing}
-
static constexpr bool hasDLSS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDLSS}
-
static constexpr bool hasXESS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasXESS}
-
static constexpr bool hasDrawID = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDrawID}
-
static constexpr bool hasBasicViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBasicViewInstancing}
-
static constexpr bool hasOptimizedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasOptimizedViewInstancing}
-
static constexpr bool hasAcceleratedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAcceleratedViewInstancing}
-
static constexpr bool hasStereoExpansion = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStereoExpansion}
-
static constexpr bool hasTileBasedArchitecture = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasTileBasedArchitecture}
-
static constexpr bool hasLazyMemory = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasLazyMemory}
-
static constexpr bool hasShaderFloat16Support = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasShaderFloat16Support}
-
static constexpr bool hasUAVOnEveryStage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasUAVOnEveryStage}
-
static constexpr bool hasRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayDispatch}
-
static constexpr bool hasIndirectRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasIndirectRayDispatch}
-
static constexpr bool castingFullyTypedFormatsSupported = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::castingFullyTypedFormatsSupported}
-
static constexpr bool hasWaveOps = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasWaveOps}
-
static constexpr bool hasPersistentShaderHandles = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasPersistentShaderHandles}
-
static constexpr bool hasDualSourceBlending = true
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDualSourceBlending}
-
static constexpr bool hasAnisotropicFilter = true
-
struct DeviceDriverCapabilitiesTVOS : public DeviceDriverCapabilitiesBase
- #include <dag_consts.h>
Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for \tvos.
Public Static Attributes
-
static constexpr bool hasAnisotropicFilter = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAnisotropicFilter}
-
static constexpr bool hasDepthReadOnly = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDepthReadOnly}
-
static constexpr bool hasStructuredBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasStructuredBuffers}
-
static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasNoOverwriteOnShaderResourceBuffers}
-
static constexpr bool hasForcedSamplerCount = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasForcedSamplerCount}
-
static constexpr bool hasVolMipMap = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasVolMipMap}
-
static constexpr bool hasAsyncCompute = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAsyncCompute}
-
static constexpr bool hasOcclusionQuery = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasOcclusionQuery}
-
static constexpr bool hasConstBufferOffset = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConstBufferOffset} \NYI
-
static constexpr bool hasDepthBoundsTest = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDepthBoundsTest}
-
static constexpr bool hasConditionalRender = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConditionalRender}
-
static constexpr bool hasResourceCopyConversion = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasResourceCopyConversion}
-
static constexpr bool hasAsyncCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAsyncCopy}
-
static constexpr bool hasReadMultisampledDepth = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasReadMultisampledDepth}
-
static constexpr bool hasInstanceID = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasInstanceID}
-
static constexpr bool hasConservativeRassterization = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConservativeRassterization}
-
static constexpr bool hasQuadTessellation = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasQuadTessellation}
-
static constexpr bool hasGather4 = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasGather4}
-
static constexpr bool hasAlphaCoverage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAlphaCoverage}
-
static constexpr bool hasWellSupportedIndirect = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasWellSupportedIndirect}
-
static constexpr bool hasBindless = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBindless}
-
static constexpr bool hasNVApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNVApi}
-
static constexpr bool hasATIApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasATIApi}
-
static constexpr bool hasVariableRateShading = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShading}
-
static constexpr bool hasVariableRateShadingTexture = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingTexture}
-
static constexpr bool hasVariableRateShadingShaderOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingShaderOutput}
-
static constexpr bool hasVariableRateShadingCombiners = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingCombiners}
-
static constexpr bool hasVariableRateShadingBy4 = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingBy4}
-
static constexpr bool hasStreamOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStreamOutput}
-
static constexpr bool hasAliasedTextures = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAliasedTextures} \NYI
-
static constexpr bool hasResourceHeaps = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasResourceHeaps} \NYI
-
static constexpr bool hasBufferOverlapCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapCopy}
-
static constexpr bool hasBufferOverlapRegionsCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapRegionsCopy}
-
static constexpr bool hasUAVOnlyForcedSampleCount = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasUAVOnlyForcedSampleCount}
-
static constexpr bool hasShader64BitIntegerResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasShader64BitIntegerResources}
-
static constexpr bool hasNativeRenderPassSubPasses = true
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNativeRenderPassSubPasses}
-
static constexpr bool hasTiled2DResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiled2DResources}
-
static constexpr bool hasTiled3DResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiled3DResources}
-
static constexpr bool hasTiledSafeResourcesAccess = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiledSafeResourcesAccess}
-
static constexpr bool hasTiledMemoryAliasing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiledMemoryAliasing}
-
static constexpr bool hasDLSS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDLSS}
-
static constexpr bool hasXESS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasXESS}
-
static constexpr bool hasDrawID = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDrawID}
-
static constexpr bool hasMeshShader = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasMeshShader}
-
static constexpr bool hasBasicViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBasicViewInstancing}
-
static constexpr bool hasOptimizedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasOptimizedViewInstancing}
-
static constexpr bool hasAcceleratedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAcceleratedViewInstancing}
-
static constexpr bool hasStereoExpansion = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStereoExpansion}
-
static constexpr bool hasTileBasedArchitecture = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasTileBasedArchitecture}
-
static constexpr bool hasLazyMemory = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasLazyMemory}
-
static constexpr bool hasShaderFloat16Support = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasShaderFloat16Support}
-
static constexpr bool hasUAVOnEveryStage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasUAVOnEveryStage}
-
static constexpr bool hasRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayDispatch}
-
static constexpr bool hasIndirectRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasIndirectRayDispatch}
-
static constexpr bool hasEmulatedRaytracing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasEmulatedRaytracing}
-
static constexpr bool castingFullyTypedFormatsSupported = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::castingFullyTypedFormatsSupported}
-
static constexpr bool hasWaveOps = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasWaveOps}
-
static constexpr bool hasPersistentShaderHandles = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasPersistentShaderHandles}
-
static constexpr bool hasDualSourceBlending = true
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDualSourceBlending}
-
static constexpr bool hasAnisotropicFilter = true
-
struct DeviceDriverCapabilitiesNintendoSwitch : public DeviceDriverCapabilitiesBase
- #include <dag_consts.h>
Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for \nswitch.
Public Static Attributes
-
static constexpr bool hasAnisotropicFilter = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAnisotropicFilter}
-
static constexpr bool hasDepthReadOnly = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDepthReadOnly}
-
static constexpr bool hasStructuredBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasStructuredBuffers}
-
static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasNoOverwriteOnShaderResourceBuffers}
-
static constexpr bool hasForcedSamplerCount = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasForcedSamplerCount}
-
static constexpr bool hasVolMipMap = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasVolMipMap}
-
static constexpr bool hasAsyncCompute = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAsyncCompute}
-
static constexpr bool hasOcclusionQuery = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasOcclusionQuery}
-
static constexpr bool hasConstBufferOffset = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConstBufferOffset} \NYI
-
static constexpr bool hasDepthBoundsTest = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDepthBoundsTest}
-
static constexpr bool hasResourceCopyConversion = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasResourceCopyConversion}
-
static constexpr bool hasAsyncCopy = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAsyncCopy}
-
static constexpr bool hasReadMultisampledDepth = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasReadMultisampledDepth}
-
static constexpr bool hasInstanceID = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasInstanceID}
-
static constexpr bool hasConservativeRassterization = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConservativeRassterization}
-
static constexpr bool hasQuadTessellation = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasQuadTessellation} \NYI
-
static constexpr bool hasGather4 = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasGather4}
-
static constexpr bool hasAlphaCoverage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAlphaCoverage}
-
static constexpr bool hasWellSupportedIndirect = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasWellSupportedIndirect}
-
static constexpr bool hasNVApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNVApi}
-
static constexpr bool hasATIApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasATIApi}
-
static constexpr bool hasVariableRateShading = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShading}
-
static constexpr bool hasVariableRateShadingTexture = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingTexture}
-
static constexpr bool hasVariableRateShadingShaderOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingShaderOutput}
-
static constexpr bool hasVariableRateShadingCombiners = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingCombiners}
-
static constexpr bool hasVariableRateShadingBy4 = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingBy4}
-
static constexpr bool hasStreamOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStreamOutput}
-
static constexpr bool hasAliasedTextures = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAliasedTextures} \NYI
-
static constexpr bool hasResourceHeaps = true
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasResourceHeaps} \NYI
-
static constexpr bool hasBufferOverlapCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapCopy}
-
static constexpr bool hasBufferOverlapRegionsCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapRegionsCopy}
-
static constexpr bool hasUAVOnlyForcedSampleCount = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasUAVOnlyForcedSampleCount}
-
static constexpr bool hasShader64BitIntegerResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasShader64BitIntegerResources}
-
static constexpr bool hasNativeRenderPassSubPasses = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasNativeRenderPassSubPasses}
-
static constexpr bool hasTiled2DResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiled2DResources}
-
static constexpr bool hasTiled3DResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiled3DResources}
-
static constexpr bool hasTiledSafeResourcesAccess = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiledSafeResourcesAccess}
-
static constexpr bool hasTiledMemoryAliasing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiledMemoryAliasing}
-
static constexpr bool hasDLSS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDLSS}
-
static constexpr bool hasXESS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasXESS}
-
static constexpr bool hasDrawID = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDrawID}
-
static constexpr bool hasMeshShader = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasMeshShader}
-
static constexpr bool hasBasicViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBasicViewInstancing}
-
static constexpr bool hasOptimizedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasOptimizedViewInstancing}
-
static constexpr bool hasAcceleratedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAcceleratedViewInstancing}
-
static constexpr bool hasStereoExpansion = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStereoExpansion}
-
static constexpr bool hasTileBasedArchitecture = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTileBasedArchitecture}
-
static constexpr bool hasLazyMemory = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasLazyMemory}
-
static constexpr bool hasIndirectSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasIndirectSupport}
-
static constexpr bool hasCompareSampler = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasCompareSampler}
-
static constexpr bool hasUAVOnEveryStage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasUAVOnEveryStage}
-
static constexpr bool hasRayAccelerationStructure = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayAccelerationStructure}
-
static constexpr bool hasRayQuery = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayQuery}
-
static constexpr bool hasRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayDispatch}
-
static constexpr bool hasIndirectRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasIndirectRayDispatch}
-
static constexpr bool hasEmulatedRaytracing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasEmulatedRaytracing}
-
static constexpr bool hasGeometryIndexInRayAccelerationStructure = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasGeometryIndexInRayAccelerationStructure}
-
static constexpr bool hasSkipPrimitiveTypeInRayTracingShaders = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasSkipPrimitiveTypeInRayTracingShaders}
-
static constexpr bool hasBaseVertexSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasBaseVertexSupport}
-
static constexpr bool castingFullyTypedFormatsSupported = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::castingFullyTypedFormatsSupported}
-
static constexpr bool hasNativeRayTracePipelineExpansion = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNativeRayTracePipelineExpansion}
-
static constexpr bool hasPersistentShaderHandles = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasPersistentShaderHandles}
-
static constexpr bool hasDualSourceBlending = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDualSourceBlending}
-
static constexpr bool hasAnisotropicFilter = true
-
struct DeviceDriverCapabilitiesAndroid : public DeviceDriverCapabilitiesBase
- #include <dag_consts.h>
Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for \android.
Public Static Attributes
-
static constexpr bool hasDepthReadOnly = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDepthReadOnly}
-
static constexpr bool hasStructuredBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasStructuredBuffers}
-
static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasNoOverwriteOnShaderResourceBuffers}
-
static constexpr bool hasForcedSamplerCount = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasForcedSamplerCount}
-
static constexpr bool hasVolMipMap = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasVolMipMap}
-
static constexpr bool hasAsyncCompute = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAsyncCompute}
-
static constexpr bool hasOcclusionQuery = false
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasOcclusionQuery}
-
static constexpr bool hasConstBufferOffset = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConstBufferOffset} \NYI
-
static constexpr bool hasAsyncCopy = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAsyncCopy}
-
static constexpr bool hasReadMultisampledDepth = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasReadMultisampledDepth}
-
static constexpr bool hasGather4 = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasGather4}
-
static constexpr bool hasAlphaCoverage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAlphaCoverage}
-
static constexpr bool hasNVApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNVApi}
-
static constexpr bool hasATIApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasATIApi}
-
static constexpr bool hasVariableRateShading = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShading} \NYI
-
static constexpr bool hasVariableRateShadingTexture = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingTexture} \NYI
-
static constexpr bool hasVariableRateShadingShaderOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingShaderOutput} \NYI
-
static constexpr bool hasVariableRateShadingCombiners = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingCombiners} \NYI
-
static constexpr bool hasVariableRateShadingBy4 = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingBy4} \NYI
-
static constexpr bool hasStreamOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStreamOutput}
-
static constexpr bool hasAliasedTextures = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAliasedTextures} \NYI
-
static constexpr bool hasBufferOverlapCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapCopy}
-
static constexpr bool hasBufferOverlapRegionsCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapRegionsCopy}
-
static constexpr bool hasResourceCopyConversion = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasResourceCopyConversion}
-
static constexpr bool hasShader64BitIntegerResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasShader64BitIntegerResources}
-
static constexpr bool hasNativeRenderPassSubPasses = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasNativeRenderPassSubPasses}
-
static constexpr bool hasDLSS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDLSS}
-
static constexpr bool hasXESS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasXESS}
-
static constexpr bool hasDrawID = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDrawID}
-
static constexpr bool hasMeshShader = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasMeshShader}
-
static constexpr bool hasBasicViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBasicViewInstancing}
-
static constexpr bool hasOptimizedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasOptimizedViewInstancing}
-
static constexpr bool hasAcceleratedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAcceleratedViewInstancing}
-
static constexpr bool hasStereoExpansion = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStereoExpansion}
-
static constexpr bool hasIndirectSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasIndirectSupport}
-
static constexpr bool hasCompareSampler = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasCompareSampler}
-
static constexpr bool hasBaseVertexSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasBaseVertexSupport}
-
static constexpr bool castingFullyTypedFormatsSupported = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::castingFullyTypedFormatsSupported}
-
static constexpr bool hasPersistentShaderHandles = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasPersistentShaderHandles}
-
static constexpr bool hasDepthReadOnly = true
-
struct DeviceDriverCapabilitiesMacOSX : public DeviceDriverCapabilitiesBase
- #include <dag_consts.h>
Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for \mac.
Public Static Attributes
-
static constexpr bool hasAnisotropicFilter = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAnisotropicFilter}
-
static constexpr bool hasDepthReadOnly = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDepthReadOnly}
-
static constexpr bool hasStructuredBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasStructuredBuffers}
-
static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasNoOverwriteOnShaderResourceBuffers}
-
static constexpr bool hasForcedSamplerCount = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasForcedSamplerCount}
-
static constexpr bool hasVolMipMap = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasVolMipMap}
-
static constexpr bool hasAsyncCompute = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAsyncCompute}
-
static constexpr bool hasOcclusionQuery = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasOcclusionQuery}
-
static constexpr bool hasConstBufferOffset = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConstBufferOffset} \NYI
-
static constexpr bool hasAsyncCopy = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAsyncCopy}
-
static constexpr bool hasDepthBoundsTest = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDepthBoundsTest}
-
static constexpr bool hasReadMultisampledDepth = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasReadMultisampledDepth}
-
static constexpr bool hasInstanceID = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasInstanceID}
-
static constexpr bool hasConservativeRassterization = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConservativeRassterization}
-
static constexpr bool hasQuadTessellation = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasQuadTessellation}
-
static constexpr bool hasGather4 = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasGather4}
-
static constexpr bool hasAlphaCoverage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAlphaCoverage}
-
static constexpr bool hasWellSupportedIndirect = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasWellSupportedIndirect}
-
static constexpr bool hasNVApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNVApi}
-
static constexpr bool hasATIApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasATIApi}
-
static constexpr bool hasVariableRateShading = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShading}
-
static constexpr bool hasVariableRateShadingTexture = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingTexture}
-
static constexpr bool hasVariableRateShadingShaderOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingShaderOutput}
-
static constexpr bool hasVariableRateShadingCombiners = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingCombiners}
-
static constexpr bool hasVariableRateShadingBy4 = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingBy4}
-
static constexpr bool hasStreamOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStreamOutput}
-
static constexpr bool hasAliasedTextures = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAliasedTextures} \NYI
-
static constexpr bool hasBufferOverlapCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapCopy}
-
static constexpr bool hasBufferOverlapRegionsCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapRegionsCopy}
-
static constexpr bool hasConditionalRender = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConditionalRender}
-
static constexpr bool hasResourceCopyConversion = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasResourceCopyConversion}
-
static constexpr bool hasShader64BitIntegerResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasShader64BitIntegerResources}
-
static constexpr bool hasNativeRenderPassSubPasses = true
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNativeRenderPassSubPasses}
-
static constexpr bool hasTiled2DResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiled2DResources}
-
static constexpr bool hasTiled3DResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiled3DResources}
-
static constexpr bool hasTiledSafeResourcesAccess = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiledSafeResourcesAccess}
-
static constexpr bool hasTiledMemoryAliasing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTiledMemoryAliasing}
-
static constexpr bool hasDLSS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDLSS}
-
static constexpr bool hasXESS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasXESS}
-
static constexpr bool hasBasicViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBasicViewInstancing}
-
static constexpr bool hasOptimizedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasOptimizedViewInstancing}
-
static constexpr bool hasAcceleratedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAcceleratedViewInstancing}
-
static constexpr bool hasStereoExpansion = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStereoExpansion}
-
static constexpr bool hasTileBasedArchitecture = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasTileBasedArchitecture}
-
static constexpr bool hasLazyMemory = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasLazyMemory}
-
static constexpr bool hasIndirectSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasIndirectSupport}
-
static constexpr bool hasCompareSampler = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasCompareSampler}
-
static constexpr bool hasShaderFloat16Support = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasShaderFloat16Support} \NYI
-
static constexpr bool hasUAVOnEveryStage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasUAVOnEveryStage}
-
static constexpr bool hasRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasRayDispatch}
-
static constexpr bool hasIndirectRayDispatch = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasIndirectRayDispatch}
-
static constexpr bool castingFullyTypedFormatsSupported = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::castingFullyTypedFormatsSupported}
-
static constexpr bool hasWaveOps = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasWaveOps}
-
static constexpr bool hasPersistentShaderHandles = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasPersistentShaderHandles}
-
static constexpr bool hasDualSourceBlending = true
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDualSourceBlending}
-
static constexpr bool hasAnisotropicFilter = true
-
struct DeviceDriverCapabilitiesLinux : public DeviceDriverCapabilitiesBase
- #include <dag_consts.h>
Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for \linux.
Public Static Attributes
-
static constexpr bool hasAnisotropicFilter = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAnisotropicFilter}
-
static constexpr bool hasDepthReadOnly = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDepthReadOnly}
-
static constexpr bool hasStructuredBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasStructuredBuffers}
-
static constexpr bool hasNoOverwriteOnShaderResourceBuffers = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasNoOverwriteOnShaderResourceBuffers}
-
static constexpr bool hasForcedSamplerCount = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasForcedSamplerCount}
-
static constexpr bool hasVolMipMap = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasVolMipMap}
-
static constexpr bool hasReadMultisampledDepth = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasReadMultisampledDepth}
-
static constexpr bool hasGather4 = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasGather4}
-
static constexpr bool hasAlphaCoverage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAlphaCoverage}
-
static constexpr bool hasShader64BitIntegerResources = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasShader64BitIntegerResources}
-
static constexpr bool hasNativeRenderPassSubPasses = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasNativeRenderPassSubPasses}
-
static constexpr bool hasDLSS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDLSS}
-
static constexpr bool hasXESS = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasXESS}
-
static constexpr bool hasDrawID = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasDrawID}
-
static constexpr bool hasMeshShader = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasMeshShader}
-
static constexpr bool hasBasicViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBasicViewInstancing}
-
static constexpr bool hasOptimizedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasOptimizedViewInstancing}
-
static constexpr bool hasAcceleratedViewInstancing = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAcceleratedViewInstancing}
-
static constexpr bool hasAsyncCompute = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAsyncCompute}
-
static constexpr bool hasOcclusionQuery = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasOcclusionQuery}
-
static constexpr bool hasNVApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasNVApi}
-
static constexpr bool hasATIApi = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasATIApi}
-
static constexpr bool hasVariableRateShading = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShading} \NYI
-
static constexpr bool hasVariableRateShadingTexture = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingTexture} \NYI
-
static constexpr bool hasVariableRateShadingShaderOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingShaderOutput} \NYI
-
static constexpr bool hasVariableRateShadingCombiners = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingCombiners} \NYI
-
static constexpr bool hasVariableRateShadingBy4 = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasVariableRateShadingBy4} \NYI
-
static constexpr bool hasStreamOutput = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStreamOutput}
-
static constexpr bool hasAliasedTextures = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasAliasedTextures} \NYI
-
static constexpr bool hasBufferOverlapCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapCopy}
-
static constexpr bool hasBufferOverlapRegionsCopy = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasBufferOverlapRegionsCopy}
-
static constexpr bool hasConstBufferOffset = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasConstBufferOffset} \NYI
-
static constexpr bool hasAsyncCopy = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAsyncCopy}
-
static constexpr bool hasResourceCopyConversion = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasResourceCopyConversion}
-
static constexpr bool hasStereoExpansion = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStereoExpansion}
-
static constexpr bool hasLazyMemory = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasLazyMemory}
-
static constexpr bool hasIndirectSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasIndirectSupport}
-
static constexpr bool hasCompareSampler = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasCompareSampler}
-
static constexpr bool hasBaseVertexSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasBaseVertexSupport}
-
static constexpr bool castingFullyTypedFormatsSupported = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::castingFullyTypedFormatsSupported}
-
static constexpr bool hasPersistentShaderHandles = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasPersistentShaderHandles}
-
static constexpr bool hasDualSourceBlending = true
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDualSourceBlending}
-
static constexpr bool hasAnisotropicFilter = true
-
struct DeviceDriverCapabilitiesWindows : public DeviceDriverCapabilitiesBase
- #include <dag_consts.h>
Optimized capabilities structure, hiding bitfield entries with static const values of known platform features for \win32.
Public Static Attributes
-
static constexpr bool hasAnisotropicFilter = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAnisotropicFilter}
-
static constexpr bool hasAlphaCoverage = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAlphaCoverage}
-
static constexpr bool hasAsyncCopy = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasAsyncCopy}
-
static constexpr bool hasStereoExpansion = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasStereoExpansion}
-
static constexpr bool hasLazyMemory = false
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasLazyMemory}
-
static constexpr bool hasIndirectSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasIndirectSupport}
-
static constexpr bool hasCompareSampler = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasCompareSampler}
-
static constexpr bool hasBaseVertexSupport = true
\briefconstcap{true, DeviceDriverCapabilitiesBase::hasBaseVertexSupport}
-
static constexpr bool hasDualSourceBlending = true
\briefconstcap{false, DeviceDriverCapabilitiesBase::hasDualSourceBlending}
-
static constexpr bool hasAnisotropicFilter = true
-
struct DeviceDriverIssuesBase
- #include <dag_consts.h>
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:
\adreno
\mali
Note
\constissue{DeviceDriverIssuesNoIssues::hasComputeTimeLimited}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
bool hasComputeCanNotWrite3DTex
Some device have issues with writing to 3D textures in the compute stage.
Note
Known on the following devices:
\adreno
Note
\constissue{DeviceDriverIssuesNoIssues::hasComputeCanNotWrite3DTex}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
bool hasStrictRenderPassesOnly
Some device drivers have issues with unused render pass attachments and my crash during pipeline creation.
Note
Known on the following devices:
\adreno
Note
\constissue{DeviceDriverIssuesNoIssues::hasStrictRenderPassesOnly}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
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:
\adreno
\mali
Note
\constissue{DeviceDriverIssuesNoIssues::hasSmallSampledBuffers}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
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:
\adreno with certain driver versions
Note
\constissue{DeviceDriverIssuesNoIssues::hasRenderPassClearDataRace}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
bool hasBrokenBaseInstanceID
Some device drivers have broken base instance ids in shaders.
Note
Known on the following devices:
\mali with certain driver versions
Note
\constissue{DeviceDriverIssuesNoIssues::hasBrokenBaseInstanceID}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
bool hasMultisampledAndInstancingHang
Some device drivers may hang during instanced rendering with multisampled rastering.
Note
Known for certain device driver combinations.
Note
\constissue{DeviceDriverIssuesNoIssues::hasMultisampledAndInstancingHang}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
bool hasBrokenMultisampledInputAttachment
Some device drivers have device lost when trying to bind multisampled input attachment
Note
Known for certain device driver combinations.
Note
\constissue{DeviceDriverIssuesNoIssues::hasBrokenMultisampledInputAttachment}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
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
\constissue{DeviceDriverIssuesNoIssues::hasIgnoreDeviceLost}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
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
\constissue{DeviceDriverIssuesNoIssues::hasPollDeviceFences}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
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
\constissue{DeviceDriverIssuesNoIssues::hasBrokenShadersAfterAppSwitch}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
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
\constissue{DeviceDriverIssuesNoIssues::hasBrokenSRGBConverionWithMRT}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
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
\constissue{DeviceDriverIssuesNoIssues::hasBrokenComputeFormattedOutput}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
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
\constissue{DeviceDriverIssuesNoIssues::hasClearColorBug}
\runtimeissue{DeviceDriverIssuesWindows, \win32}
-
bool hasBrokenSubpasses
Some device drivers have some issues with subpasses.
Note
Known on the following devices:
\adreno with certain driver versions
Note
\constissue{DeviceDriverIssuesNoIssues::hasBrokenSubpasses}
\runtimeissue{DeviceDriverIssuesAndroid, \android}
-
bool hasBrokenNvApiGetSleepStatus
572.xx nvidia driver versions have an issue with querying NvApi_GetSleepStatus after device creation.
Note
Known on the following devices:
\nvidia with 572.xx driver versions
Note
\constissue{DeviceDriverIssuesNoIssues::hasBrokenNvApiGetSleepStatus}
\runtimeissue{DeviceDriverIssuesWindows, \win32}
-
bool hasFloatClearBug
In some sequences of clear, RT switches, and rendering the texture may end up filled with NaNs
Note
Known for certain device driver combinations.
Note
\constissue{DeviceDriverIssuesNoIssues::hasFloatClearBug}
\runtimeissue{DeviceDriverIssuesWindows, \win32}
-
bool hasComputeTimeLimited
-
struct DeviceDriverIssuesAndroid : public DeviceDriverIssuesBase
- #include <dag_consts.h>
Issues structure specific for \android.
Public Static Attributes
-
static constexpr bool hasClearColorBug = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \android \baseissue{DeviceDriverIssuesBase::hasClearColorBug}.
-
static constexpr bool hasBrokenNvApiGetSleepStatus = false
Is constant false on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \android \baseissue{DeviceDriverIssuesBase::hasBrokenNvApiGetSleepStatus}.
-
static constexpr bool hasClearColorBug = false
-
struct DeviceDriverIssuesWindows : public DeviceDriverIssuesBase
- #include <dag_consts.h>
Issues structure specific for \win32.
Subclassed by DeviceDriverIssuesNoIssues
Public Static Attributes
-
static constexpr bool hasComputeTimeLimited = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasComputeTimeLimited}.
-
static constexpr bool hasComputeCanNotWrite3DTex = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasComputeCanNotWrite3DTex}.
-
static constexpr bool hasStrictRenderPassesOnly = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasStrictRenderPassesOnly}.
-
static constexpr bool hasSmallSampledBuffers = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasSmallSampledBuffers}.
-
static constexpr bool hasRenderPassClearDataRace = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasRenderPassClearDataRace}.
-
static constexpr bool hasBrokenBaseInstanceID = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasBrokenBaseInstanceID}.
-
static constexpr bool hasMultisampledAndInstancingHang = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasMultisampledAndInstancingHang}.
-
static constexpr bool hasBrokenMultisampledInputAttachment = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasBrokenMultisampledInputAttachment}.
-
static constexpr bool hasIgnoreDeviceLost = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasIgnoreDeviceLost}.
-
static constexpr bool hasPollDeviceFences = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasPollDeviceFences}.
-
static constexpr bool hasBrokenShadersAfterAppSwitch = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasBrokenShadersAfterAppSwitch}.
-
static constexpr bool hasBrokenSRGBConverionWithMRT = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasBrokenSRGBConverionWithMRT}.
-
static constexpr bool hasBrokenComputeFormattedOutput = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasBrokenComputeFormattedOutput}.
-
static constexpr bool hasBrokenSubpasses = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasBrokenSubpasses}.
-
static constexpr bool hasFloatClearBug = false
Is constant true on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \win32 \baseissue{DeviceDriverIssuesBase::hasFloatClearBug}.
-
static constexpr bool hasComputeTimeLimited = false
-
struct DeviceDriverIssuesNoIssues : public DeviceDriverIssuesWindows
- #include <dag_consts.h>
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 \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \android \baseissue{DeviceDriverIssuesBase::hasClearColorBug}.
-
static constexpr bool hasBrokenNvApiGetSleepStatus = false
Is constant false on \xbone, \scarlett, \ps4, \ps5, \ios, \tvos, \nswitch, \mac, \linux and \android \baseissue{DeviceDriverIssuesBase::hasBrokenNvApiGetSleepStatus}.
-
static constexpr bool hasClearColorBug = false
-
struct DeviceDriverRaytraceProperties
- #include <dag_consts.h>
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 accelerationStructurePoolSizeAlignment = 0
Sizes of acceleration structure pools have to be aligned to this value or the create call will fail. May be 0 when pools are not supported.
-
unsigned accelerationStructurePoolOffsetAlignment = 0
Offsets of acceleration structures in pools have to be aligned to this value or create call will fail.
-
unsigned topAccelerationStructureInstanceElementSize = 0
-
struct Driver3dDesc
- #include <dag_consts.h>
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
-
DeviceAttributes info
-
DeviceDriverIssues issues
-
DeviceDriverShaderModelVersion shaderModel
-
DeviceDriverRaytraceProperties raytrace
-
int zcmpfunc
-
namespace raytrace
Typedefs
-
using AccelerationStructurePool = AccelerationStructurePoolType*
Variables
-
constexpr AccelerationStructurePool InvalidAccelerationStructurePool = nullptr
-
using AccelerationStructurePool = AccelerationStructurePoolType*
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
Values:
-
enumerator VBLOCK_READONLY
-
enumerator VBLOCK_WRITEONLY
-
enumerator VBLOCK_NOSYSLOCK
-
enumerator VBLOCK_DISCARD
-
enumerator VBLOCK_NOOVERWRITE
-
enumerator VBLOCK_READONLY
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
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
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 EXT_BLEND_FACTOR
Values:
-
enumerator EXT_BLEND_SRC1COLOR
-
enumerator EXT_BLEND_INVSRC1COLOR
-
enumerator EXT_BLEND_SRC1ALPHA
-
enumerator EXT_BLEND_INVSRC1ALPHA
-
enumerator EXT_BLEND_SRC1COLOR
-
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
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