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 ResourceTagType = const char*

Has to be a static string, users expect that identical tag string have the same address!

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_UNUSED_BIT_1
enumerator SBCF_UNUSED_BIT_2
enumerator SBCF_UNUSED_BIT_3
enumerator SBCF_UNUSED_BIT_4
enumerator SBCF_UNUSED_BIT_5
enumerator SBCF_UNUSED_BIT_6
enumerator SBCF_UNUSED_BIT_7
enumerator SBCF_UNUSED_BIT_8
enumerator SBCF_UNUSED_BIT_9
enumerator SBCF_UNUSED_BIT_A
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_OPACITY_MICRO_MAP_TRIANGLE_SOURCE_DATA

Source buffers for OMM needs special alignment, without this flag, buffers may be misaligned and cause GPU hangs.

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:

  • vertex state can only be PASSTHROUGH

  • if DeviceDriverCapabilities::hasVariableRateShadingShaderOutput is supported then vertex state can additionally be OVERRIDE

  • pixel state can only be PASSTHROUGH

  • if DeviceDriverCapabilities::hasVariableRateShadingTexture is supported then pixel state can additionally be OVERRIDE

Values:

enumerator VRS_PASSTHROUGH

selects rate value from previous stage

enumerator VRS_OVERRIDE

selects rate from this stage

enumerator VRS_MIN

selects min of previous and this stage

enumerator VRS_MAX

selects max of previous and this stage

enumerator VRS_SUM

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

enum ResourceBarrier

Values:

enumerator RB_RW_RENDER_TARGET
enumerator RB_RW_UAV
enumerator RB_RW_COPY_DEST
enumerator RB_RW_BLIT_DEST
enumerator RB_RO_SRV
enumerator RB_RO_CONSTANT_BUFFER
enumerator RB_RO_VERTEX_BUFFER
enumerator RB_RO_INDEX_BUFFER
enumerator RB_RO_INDIRECT_BUFFER
enumerator RB_RO_VARIABLE_RATE_SHADING_TEXTURE
enumerator RB_RO_COPY_SOURCE
enumerator RB_RO_BLIT_SOURCE
enumerator RB_RO_RAYTRACE_ACCELERATION_BUILD_SOURCE
enumerator RB_FLAG_RELEASE_PIPELINE_OWNERSHIP
enumerator RB_FLAG_ACQUIRE_PIPELINE_OWNERSHIP
enumerator RB_FLAG_SPLIT_BARRIER_BEGIN
enumerator RB_FLAG_SPLIT_BARRIER_END
enumerator RB_STAGE_VERTEX
enumerator RB_STAGE_PIXEL
enumerator RB_STAGE_COMPUTE
enumerator RB_STAGE_RAYTRACE
enumerator RB_FLUSH_UAV
enumerator RB_FLAG_DONT_PRESERVE_CONTENT
enumerator RB_SOURCE_STAGE_VERTEX
enumerator RB_SOURCE_STAGE_PIXEL
enumerator RB_SOURCE_STAGE_COMPUTE
enumerator RB_SOURCE_STAGE_RAYTRACE
enumerator RB_ALIAS_FROM
enumerator RB_ALIAS_TO
enumerator RB_RO_SHADER_BINDING_TABLE
enumerator RB_FLUSH_RAYTRACE_ACCELERATION_BUILD_SCRATCH_USE
enumerator RB_STREAM_OUTPUT
enumerator RB_STREAM_OUTPUT_COUNTER
enumerator RB_RO_OPACITY_MICRO_MAP_BUILD_INPUT_BUFFER

Input buffer for opacity micro maps have to be in this state to be ingested by opacity micro map build commands.

enumerator RB_RO_OPACITY_MICRO_MAP_BUILD_DESCRIPTION_BUFFER

Description buffer for opacity micro maps have to be in this state to be ingested by opacity micro map build commands.

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.

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