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
-
enumerator STAGE_CS
Values:
-
enumerator MAXSAMPLERS
-
enumerator MAXSTREAMS
-
enumerator MAXSAMPLERS_VS
-
enumerator MAX_SLI_AFRS
-
enumerator MAXSAMPLERS
Values:
-
enumerator VDECLUSAGE_POS
-
enumerator VDECLUSAGE_BLENDW
-
enumerator VDECLUSAGE_BLENDIND
-
enumerator VDECLUSAGE_NORM
-
enumerator VDECLUSAGE_PSIZE
-
enumerator VDECLUSAGE_TC
-
enumerator VDECLUSAGE_TANG
-
enumerator VDECLUSAGE_BINORM
-
enumerator VDECLUSAGE_TESSFACTOR
-
enumerator VDECLUSAGE_TPOS
-
enumerator VDECLUSAGE_COLOR
-
enumerator VDECLUSAGE_FOG
-
enumerator VDECLUSAGE_DEPTH
-
enumerator VDECLUSAGE_SAMPLE
-
enumerator VDECLUSAGE_POS
Values:
-
enumerator SBCF_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
-
enumerator SBCF_UNUSED_BIT_1
Values:
-
enumerator WRAP_COORD0
-
enumerator WRAP_COORD1
-
enumerator WRAP_COORD2
-
enumerator WRAP_COORD3
-
enumerator WRAP_COORD0
Values:
-
enumerator VCDEST_NONE
-
enumerator VCDEST_AMB
-
enumerator VCDEST_DIFF
-
enumerator VCDEST_AMB_DIFF
-
enumerator VCDEST_EMIS
-
enumerator VCDEST_SPEC
-
enumerator VCDEST_NONE
Values:
-
enumerator WRITEMASK_RED0
-
enumerator WRITEMASK_GREEN0
-
enumerator WRITEMASK_BLUE0
-
enumerator WRITEMASK_ALPHA0
-
enumerator WRITEMASK_RED1
-
enumerator WRITEMASK_RED2
-
enumerator WRITEMASK_RED3
-
enumerator WRITEMASK_RED4
-
enumerator WRITEMASK_RED5
-
enumerator WRITEMASK_RED6
-
enumerator WRITEMASK_RED7
-
enumerator WRITEMASK_GREEN1
-
enumerator WRITEMASK_GREEN2
-
enumerator WRITEMASK_GREEN3
-
enumerator WRITEMASK_GREEN4
-
enumerator WRITEMASK_GREEN5
-
enumerator WRITEMASK_GREEN6
-
enumerator WRITEMASK_GREEN7
-
enumerator WRITEMASK_BLUE1
-
enumerator WRITEMASK_BLUE2
-
enumerator WRITEMASK_BLUE3
-
enumerator WRITEMASK_BLUE4
-
enumerator WRITEMASK_BLUE5
-
enumerator WRITEMASK_BLUE6
-
enumerator WRITEMASK_BLUE7
-
enumerator WRITEMASK_ALPHA1
-
enumerator WRITEMASK_ALPHA2
-
enumerator WRITEMASK_ALPHA3
-
enumerator WRITEMASK_ALPHA4
-
enumerator WRITEMASK_ALPHA5
-
enumerator WRITEMASK_ALPHA6
-
enumerator WRITEMASK_ALPHA7
-
enumerator WRITEMASK_RED
-
enumerator WRITEMASK_GREEN
-
enumerator WRITEMASK_BLUE
-
enumerator WRITEMASK_ALPHA
-
enumerator WRITEMASK_RGB
-
enumerator WRITEMASK_ALL
-
enumerator WRITEMASK_DEFAULT
-
enumerator WRITEMASK_RED0
-
enum class XessState
Values:
-
enumerator UNSUPPORTED_DEVICE
-
enumerator UNSUPPORTED_DRIVER
-
enumerator INIT_ERROR_UNKNOWN
-
enumerator DISABLED
-
enumerator SUPPORTED
-
enumerator READY
-
enumerator UNSUPPORTED_DEVICE
-
enum class Fsr2State
Values:
-
enumerator NOT_CHECKED
-
enumerator INIT_ERROR
-
enumerator SUPPORTED
-
enumerator READY
-
enumerator NOT_CHECKED
-
enum class HdrOutputMode
Values:
-
enumerator SDR_ONLY
-
enumerator HDR10_AND_SDR
-
enumerator HDR10_ONLY
-
enumerator HDR_ONLY
-
enumerator SDR_ONLY
-
enum DepthResolveMode
This enum defines bits signalling supported depth resolve modes. Depth resolve is a functionality supported by some GAPIs which allows to resolve MSAA depth into a single sampled one.
In the context of Vulkan, we do additional checks to determine supported depth resolve modes. Therefore, fewer modes than the driver returns can be reported.
Values:
-
enumerator DEPTH_RESOLVE_MODE_NONE
Depth resolve unsupported.
-
enumerator DEPTH_RESOLVE_MODE_SAMPLE_ZERO
Use a value from the 0th sample. If depth resolve is supported, this is generally supported too.
-
enumerator DEPTH_RESOLVE_MODE_AVERAGE
Use the average value from all samples. Not supported on iOS, rarely supported on Android Vulkan.
-
enumerator DEPTH_RESOLVE_MODE_MIN
Use the smallest value from all samples. Supported on iOS, rarely supported on Android Vulkan.
-
enumerator DEPTH_RESOLVE_MODE_MAX
Same as DEPTH_RESOLVE_MODE_MIN, but the largest value is used instead.
-
enumerator DEPTH_RESOLVE_MODE_NONE
-
enum class GpuVendor : uint8_t
Dagor specific ID of the currently used GPU’s vendor.
Values:
-
enumerator UNKNOWN
-
enumerator MESA
-
enumerator IMGTEC
-
enumerator AMD
-
enumerator NVIDIA
-
enumerator INTEL
-
enumerator APPLE
-
enumerator SHIM_DRIVER
-
enumerator ARM
-
enumerator QUALCOMM
-
enumerator SAMSUNG
-
enumerator HUAWEI
-
enumerator ATI
-
enumerator UNKNOWN
Values:
-
enumerator DRV3D_FRAMERATE_LIMITED_BY_NOTHING
-
enumerator DRV3D_FRAMERATE_LIMITED_BY_REPLAY_WAIT
-
enumerator DRV3D_FRAMERATE_LIMITED_BY_REPLAY_UNDERFEED
-
enumerator DRV3D_FRAMERATE_LIMITED_BY_GPU_UTILIZATION
-
enumerator DRV3D_FRAMERATE_LIMITED_BY_NOTHING
-
enum class VariableRateShadingCombiner
Combiners for VRS for vertex stage and pixel shader state.
Should the device support DeviceDriverCapabilities::hasVariableRateShadingCombiners, then each combiner can be used for any stage in any combination. When DeviceDriverCapabilities::hasVariableRateShadingCombiners is not supported then the following restrictions apply:
vertex state can only be PASSTHROUGH
if DeviceDriverCapabilities::hasVariableRateShadingShaderOutput is supported then vertex state can additionally be OVERRIDE
pixel state can only be PASSTHROUGH
if DeviceDriverCapabilities::hasVariableRateShadingTexture is supported then pixel state can additionally be OVERRIDE
Values:
-
enumerator VRS_PASSTHROUGH
selects rate value from previous stage
-
enumerator VRS_OVERRIDE
selects rate from this stage
-
enumerator VRS_MIN
selects min of previous and this stage
-
enumerator VRS_MAX
selects max of previous and this stage
-
enumerator VRS_SUM
adds values of previous and this stage and clamps it to max possible value
-
enum ResourceBarrier
Values:
-
enumerator RB_RW_RENDER_TARGET
-
enumerator RB_RW_UAV
-
enumerator RB_RW_COPY_DEST
-
enumerator RB_RW_BLIT_DEST
-
enumerator RB_RO_SRV
-
enumerator RB_RO_CONSTANT_BUFFER
-
enumerator RB_RO_VERTEX_BUFFER
-
enumerator RB_RO_INDEX_BUFFER
-
enumerator RB_RO_INDIRECT_BUFFER
-
enumerator RB_RO_VARIABLE_RATE_SHADING_TEXTURE
-
enumerator RB_RO_COPY_SOURCE
-
enumerator RB_RO_BLIT_SOURCE
-
enumerator RB_RO_RAYTRACE_ACCELERATION_BUILD_SOURCE
-
enumerator RB_FLAG_RELEASE_PIPELINE_OWNERSHIP
-
enumerator RB_FLAG_ACQUIRE_PIPELINE_OWNERSHIP
-
enumerator RB_FLAG_SPLIT_BARRIER_BEGIN
-
enumerator RB_FLAG_SPLIT_BARRIER_END
-
enumerator RB_STAGE_VERTEX
-
enumerator RB_STAGE_PIXEL
-
enumerator RB_STAGE_COMPUTE
-
enumerator RB_STAGE_RAYTRACE
-
enumerator RB_FLUSH_UAV
-
enumerator RB_FLAG_DONT_PRESERVE_CONTENT
-
enumerator RB_SOURCE_STAGE_VERTEX
-
enumerator RB_SOURCE_STAGE_PIXEL
-
enumerator RB_SOURCE_STAGE_COMPUTE
-
enumerator RB_SOURCE_STAGE_RAYTRACE
-
enumerator RB_ALIAS_FROM
-
enumerator RB_ALIAS_TO
-
enumerator RB_RO_SHADER_BINDING_TABLE
-
enumerator RB_FLUSH_RAYTRACE_ACCELERATION_BUILD_SCRATCH_USE
-
enumerator RB_STREAM_OUTPUT
-
enumerator RB_STREAM_OUTPUT_COUNTER
-
enumerator RB_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
-
enumerator RB_RW_RENDER_TARGET
Functions
-
inline constexpr ResourceBarrier operator|(ResourceBarrier l, ResourceBarrier r)
-
inline constexpr ResourceBarrier operator&(ResourceBarrier l, ResourceBarrier r)
-
inline constexpr ResourceBarrier operator^(ResourceBarrier l, ResourceBarrier r)
Variables
-
static constexpr int BAD_VPROG = -1
-
static constexpr int BAD_FSHADER = -1
-
static constexpr int BAD_VDECL = -1
-
static constexpr int BAD_PROGRAM = -1
-
static constexpr int BAD_PALID = -1
-
constexpr GPUFENCEHANDLE BAD_GPUFENCEHANDLE = 0
-
static constexpr size_t RT_TRANSFORM_SIZE = sizeof(float) * 12
-
static constexpr int MAX_STREAM_OUTPUT_SLOTS = 4
-
namespace raytrace
Typedefs
-
using AccelerationStructurePool = AccelerationStructurePoolType*
Variables
-
constexpr AccelerationStructurePool InvalidAccelerationStructurePool = nullptr
-
using AccelerationStructurePool = AccelerationStructurePoolType*
Defines
-
VSD_STREAM(n)
-
VSD_STREAM_PER_VERTEX_DATA(n)
-
VSD_STREAM_PER_INSTANCE_DATA(n)
-
VSD_REG(n, t)
-
VSD_SKIP(n)
-
VSDT_FLOAT1
-
VSDT_FLOAT2
-
VSDT_FLOAT3
-
VSDT_FLOAT4
-
VSDT_E3DCOLOR
-
VSDT_UBYTE4
-
VSDT_SHORT2
-
VSDT_SHORT4
-
VSDT_SHORT2N
-
VSDT_SHORT4N
-
VSDT_USHORT2N
-
VSDT_USHORT4N
-
VSDT_UDEC3
-
VSDT_DEC3N
-
VSDT_HALF2
-
VSDT_HALF4
-
VSDT_INT1
-
VSDT_INT2
-
VSDT_INT3
-
VSDT_INT4
-
VSDT_UINT1
-
VSDT_UINT2
-
VSDT_UINT3
-
VSDT_UINT4
-
VSDR_POS
-
VSDR_BLENDW
-
VSDR_BLENDIND
-
VSDR_NORM
-
VSDR_PSIZE
-
VSDR_DIFF
-
VSDR_SPEC
-
VSDR_TEXC0
-
VSDR_TEXC1
-
VSDR_TEXC2
-
VSDR_TEXC3
-
VSDR_TEXC4
-
VSDR_TEXC5
-
VSDR_TEXC6
-
VSDR_TEXC7
-
VSDR_POS2
-
VSDR_NORM2
-
VSDR_TEXC15
-
VSDR_TEXC8
-
VSDR_TEXC9
-
VSDR_TEXC10
-
VSDR_TEXC11
-
VSDR_TEXC12
-
VSDR_TEXC13
-
VSDR_TEXC14
Enums
Values:
-
enumerator VBLOCK_READONLY
-
enumerator VBLOCK_WRITEONLY
-
enumerator VBLOCK_NOSYSLOCK
-
enumerator VBLOCK_DISCARD
-
enumerator VBLOCK_NOOVERWRITE
-
enumerator VBLOCK_READONLY
Values:
-
enumerator PRIM_POINTLIST
-
enumerator PRIM_LINELIST
-
enumerator PRIM_LINESTRIP
-
enumerator PRIM_TRILIST
-
enumerator PRIM_TRISTRIP
-
enumerator PRIM_TRIFAN
-
enumerator PRIM_4_CONTROL_POINTS
-
enumerator PRIM_COUNT
-
enumerator PRIM_POINTLIST
Values:
-
enumerator TM_WORLD
-
enumerator TM_VIEW
-
enumerator TM_PROJ
-
enumerator TM_LOCAL2VIEW
-
enumerator TM_VIEW2LOCAL
-
enumerator TM_GLOBAL
-
enumerator TM__NUM
-
enumerator TM_WORLD
Values:
-
enumerator CLEAR_TARGET
-
enumerator CLEAR_ZBUFFER
-
enumerator CLEAR_STENCIL
-
enumerator CLEAR_DISCARD_TARGET
-
enumerator CLEAR_DISCARD_ZBUFFER
-
enumerator CLEAR_DISCARD_STENCIL
-
enumerator CLEAR_DISCARD
-
enumerator CLEAR_TARGET
-
enum BLEND_FACTOR
Values:
-
enumerator BLEND_ZERO
-
enumerator BLEND_ONE
-
enumerator BLEND_SRCCOLOR
-
enumerator BLEND_INVSRCCOLOR
-
enumerator BLEND_SRCALPHA
-
enumerator BLEND_INVSRCALPHA
-
enumerator BLEND_DESTALPHA
-
enumerator BLEND_INVDESTALPHA
-
enumerator BLEND_DESTCOLOR
-
enumerator BLEND_INVDESTCOLOR
-
enumerator BLEND_SRCALPHASAT
-
enumerator BLEND_BOTHINVSRCALPHA
-
enumerator BLEND_BLENDFACTOR
-
enumerator BLEND_INVBLENDFACTOR
-
enumerator BLEND_ZERO
-
enum EXT_BLEND_FACTOR
Values:
-
enumerator EXT_BLEND_SRC1COLOR
-
enumerator EXT_BLEND_INVSRC1COLOR
-
enumerator EXT_BLEND_SRC1ALPHA
-
enumerator EXT_BLEND_INVSRC1ALPHA
-
enumerator EXT_BLEND_SRC1COLOR
-
enum BLENDOP
Values:
-
enumerator BLENDOP_ADD
-
enumerator BLENDOP_SUBTRACT
-
enumerator BLENDOP_REVSUBTRACT
-
enumerator BLENDOP_MIN
-
enumerator BLENDOP_MAX
-
enumerator BLENDOP_ADD
-
enum CMPF
Values:
-
enumerator CMPF_NEVER
-
enumerator CMPF_LESS
-
enumerator CMPF_EQUAL
-
enumerator CMPF_LESSEQUAL
-
enumerator CMPF_GREATER
-
enumerator CMPF_NOTEQUAL
-
enumerator CMPF_GREATEREQUAL
-
enumerator CMPF_ALWAYS
-
enumerator CMPF_NEVER
Values:
-
enumerator STNCLOP_KEEP
-
enumerator STNCLOP_ZERO
-
enumerator STNCLOP_REPLACE
-
enumerator STNCLOP_INCRSAT
-
enumerator STNCLOP_DECRSAT
-
enumerator STNCLOP_INVERT
-
enumerator STNCLOP_INCR
-
enumerator STNCLOP_DECR
-
enumerator STNCLOP_KEEP
Variables
-
static constexpr int MAX_SURVEY_INDEX = 0