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
enum class GpuPipeline

Values:

enumerator GRAPHICS
enumerator ASYNC_COMPUTE
enumerator TRANSFER

Values:

enumerator MAXSAMPLERS
enumerator MAXSTREAMS
enumerator MAXSAMPLERS_VS
enumerator MAX_SLI_AFRS

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

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

Values:

enumerator WRAP_COORD0
enumerator WRAP_COORD1
enumerator WRAP_COORD2
enumerator WRAP_COORD3

Values:

enumerator VCDEST_NONE
enumerator VCDEST_AMB
enumerator VCDEST_DIFF
enumerator VCDEST_AMB_DIFF
enumerator VCDEST_EMIS
enumerator VCDEST_SPEC

Values:

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

Values:

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

Values:

enumerator NOT_CHECKED
enumerator INIT_ERROR
enumerator SUPPORTED
enumerator READY
enum class MtlfxUpscaleState

Values:

enumerator UNSUPPORTED
enumerator READY
enum class HdrOutputMode

Values:

enumerator SDR_ONLY
enumerator HDR10_AND_SDR
enumerator HDR10_ONLY
enumerator HDR_ONLY
enum class CSPreloaded

Values:

enumerator No
enumerator Yes
enum DepthResolveMode

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

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

Values:

enumerator DEPTH_RESOLVE_MODE_NONE

Depth resolve unsupported.

enumerator DEPTH_RESOLVE_MODE_SAMPLE_ZERO

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

enumerator DEPTH_RESOLVE_MODE_AVERAGE

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

enumerator DEPTH_RESOLVE_MODE_MIN

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

enumerator DEPTH_RESOLVE_MODE_MAX

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

enum 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

Values:

enumerator DRV3D_FRAMERATE_LIMITED_BY_NOTHING
enumerator DRV3D_FRAMERATE_LIMITED_BY_REPLAY_WAIT
enumerator DRV3D_FRAMERATE_LIMITED_BY_REPLAY_UNDERFEED
enumerator DRV3D_FRAMERATE_LIMITED_BY_GPU_UTILIZATION
enum class VariableRateShadingCombiner

Combiners for VRS for vertex stage and pixel shader state.

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

Values:

enumerator VRS_PASSTHROUGH

selects rate value from previous stage

enumerator VRS_OVERRIDE

selects rate from this stage

enumerator VRS_MIN

selects min of previous and this stage

enumerator VRS_MAX

selects max of previous and this stage

enumerator VRS_SUM

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

enum ResourceBarrier

Values:

enumerator RB_RW_RENDER_TARGET
enumerator RB_RW_UAV
enumerator RB_RW_COPY_DEST
enumerator RB_RW_BLIT_DEST
enumerator RB_RO_SRV
enumerator RB_RO_CONSTANT_BUFFER
enumerator RB_RO_VERTEX_BUFFER
enumerator RB_RO_INDEX_BUFFER
enumerator RB_RO_INDIRECT_BUFFER
enumerator RB_RO_VARIABLE_RATE_SHADING_TEXTURE
enumerator RB_RO_COPY_SOURCE
enumerator RB_RO_BLIT_SOURCE
enumerator RB_RO_RAYTRACE_ACCELERATION_BUILD_SOURCE
enumerator RB_FLAG_RELEASE_PIPELINE_OWNERSHIP
enumerator RB_FLAG_ACQUIRE_PIPELINE_OWNERSHIP
enumerator RB_FLAG_SPLIT_BARRIER_BEGIN
enumerator RB_FLAG_SPLIT_BARRIER_END
enumerator RB_STAGE_VERTEX
enumerator RB_STAGE_PIXEL
enumerator RB_STAGE_COMPUTE
enumerator RB_STAGE_RAYTRACE
enumerator RB_FLUSH_UAV
enumerator RB_FLAG_DONT_PRESERVE_CONTENT
enumerator RB_SOURCE_STAGE_VERTEX
enumerator RB_SOURCE_STAGE_PIXEL
enumerator RB_SOURCE_STAGE_COMPUTE
enumerator RB_SOURCE_STAGE_RAYTRACE
enumerator RB_ALIAS_FROM
enumerator RB_ALIAS_TO
enumerator RB_RO_SHADER_BINDING_TABLE
enumerator RB_FLUSH_RAYTRACE_ACCELERATION_BUILD_SCRATCH_USE
enumerator RB_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

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
static constexpr uint32_t GPU_VENDOR_COUNT = eastl::to_underlying(GpuVendor::HUAWEI) + 1

Count of the available vendors in GpuVendor enum.

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
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
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

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.

uint32_t vendorId = UNKNOWN

ID of the vendor.

uint32_t family = UNKNOWN

Internal representation of the currently used GPU’s microarchitecture, aka family.

Public Static Attributes

static constexpr uint32_t UNKNOWN = 0
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.

Public Static Attributes

static constexpr GpuVendor vendor = GpuVendor::AMD
static constexpr bool isUMA = true
static constexpr uint32_t vendorId = UNKNOWN
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.

Public Static Attributes

static constexpr GpuVendor vendor = GpuVendor::AMD
static constexpr bool isUMA = true
static constexpr uint32_t vendorId = UNKNOWN
static constexpr uint32_t family = RDNA2
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.

Public Static Attributes

static constexpr GpuVendor vendor = GpuVendor::AMD
static constexpr bool isUMA = true
static constexpr uint32_t vendorId = UNKNOWN
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.

Public Static Attributes

static constexpr GpuVendor vendor = GpuVendor::AMD
static constexpr bool isUMA = true
static constexpr uint32_t vendorId = UNKNOWN
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.

Public Static Attributes

static constexpr GpuVendor vendor = GpuVendor::APPLE
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.

Public Static Attributes

static constexpr GpuVendor vendor = GpuVendor::APPLE
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.

Public Static Attributes

static constexpr GpuVendor vendor = GpuVendor::NVIDIA
static constexpr bool isUMA = true
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:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Note

See derived types for platform specific constant overrides.

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

Public Members

bool hasAnisotropicFilter

\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}

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.

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}

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}

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.

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}

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}

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}

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}

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}

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}

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}

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}

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

bool hasComputeCanNotWrite3DTex

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

Note

Known on the following devices:

  • \adreno

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

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

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

bool hasBrokenBaseInstanceID

Some device drivers have broken base instance ids in shaders.

Note

Known on the following devices:

  • \mali with certain driver versions

bool hasMultisampledAndInstancingHang

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

Note

Known for certain device driver combinations.

bool hasBrokenMultisampledInputAttachment

Some device drivers have device lost when trying to bind multisampled input attachment

Note

Known for certain device driver combinations.

bool hasIgnoreDeviceLost

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

Note

Known for certain device driver combinations.

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.

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.

bool hasBrokenSRGBConverionWithMRT

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

Note

Known for certain device driver combinations.

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.

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.

bool hasBrokenSubpasses

Some device drivers have some issues with subpasses.

Note

Known on the following devices:

  • \adreno with certain driver versions

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

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.

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}.

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}.

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}.

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.

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
DeviceDriverCapabilities caps
DeviceDriverIssues issues
DeviceDriverShaderModelVersion shaderModel
DeviceDriverRaytraceProperties raytrace
namespace raytrace

Typedefs

using AccelerationStructurePool = AccelerationStructurePoolType*

Variables

constexpr AccelerationStructurePool InvalidAccelerationStructurePool = nullptr

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

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

Values:

enumerator TM_WORLD
enumerator TM_VIEW
enumerator TM_PROJ
enumerator TM_LOCAL2VIEW
enumerator TM_VIEW2LOCAL
enumerator TM_GLOBAL
enumerator TM__NUM

Values:

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

Values:

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

Values:

enumerator EXT_BLEND_SRC1COLOR
enumerator EXT_BLEND_INVSRC1COLOR
enumerator EXT_BLEND_SRC1ALPHA
enumerator EXT_BLEND_INVSRC1ALPHA
enum BLENDOP

Values:

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

Values:

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

Values:

enumerator CULL_NONE
enumerator CULL_CW
enumerator CULL_CCW

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

Values:

enumerator TEXADDR_WRAP
enumerator TEXADDR_MIRROR
enumerator TEXADDR_CLAMP
enumerator TEXADDR_BORDER
enumerator TEXADDR_MIRRORONCE

Values:

enumerator TEXFILTER_POINT
enumerator TEXFILTER_LINEAR
enumerator TEXFILTER_BEST
enumerator TEXFILTER_COMPARE
enumerator TEXFILTER_NONE

Variables

static constexpr int MAX_SURVEY_INDEX = 0