21#if defined(NVTX_AS_SYSTEM_HEADER)
23#pragma clang system_header
24#elif defined(__GNUC__) || defined(__NVCOMPILER)
25#pragma GCC system_header
26#elif defined(_MSC_VER)
61#ifndef NVTX_EXT_PAYLOAD_COMPATID
62#define NVTX_EXT_PAYLOAD_COMPATID 0x0104
68#ifndef NVTX_EXT_PAYLOAD_MODULEID
69#define NVTX_EXT_PAYLOAD_MODULEID 2
75#ifndef NVTX_PAYLOAD_TYPE_EXT
76#define NVTX_PAYLOAD_TYPE_EXT (NVTX_STATIC_CAST(int32_t, 0xDFBD0009))
82#ifndef NVTX_PAYLOAD_ENTRY_FLAGS_V1
83#define NVTX_PAYLOAD_ENTRY_FLAGS_V1
85#define NVTX_PAYLOAD_ENTRY_FLAG_UNUSED 0
90#define NVTX_PAYLOAD_ENTRY_FLAG_POINTER (1 << 1)
95#define NVTX_PAYLOAD_ENTRY_FLAG_OFFSET_FROM_BASE (1 << 2)
100#define NVTX_PAYLOAD_ENTRY_FLAG_OFFSET_FROM_HERE (1 << 3)
105#define NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_FIXED_SIZE (1 << 4)
110#define NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_ZERO_TERMINATED (2 << 4)
130#define NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_LENGTH_INDEX (3 << 4)
144#define NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_LENGTH_PAYLOAD_INDEX (4 << 4)
154#define NVTX_PAYLOAD_ENTRY_FLAG_DEEP_COPY (1 << 8)
159#define NVTX_PAYLOAD_ENTRY_FLAG_HIDE (1 << 9)
167#define NVTX_PAYLOAD_ENTRY_FLAG_EVENT_MESSAGE (1 << 10)
175#define NVTX_PAYLOAD_ENTRY_FLAG_TIMESTAMP (2 << 10)
199#define NVTX_PAYLOAD_ENTRY_FLAG_RANGE_BEGIN (1 << 12)
200#define NVTX_PAYLOAD_ENTRY_FLAG_RANGE_END (2 << 12)
201#define NVTX_PAYLOAD_ENTRY_FLAG_MARK (3 << 12)
202#define NVTX_PAYLOAD_ENTRY_FLAG_COUNTER (4 << 12)
215#define NVTX_PAYLOAD_ENTRY_FLAG_IS_ARRAY \
216 (NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_FIXED_SIZE | NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_ZERO_TERMINATED | \
217 NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_LENGTH_INDEX | \
218 NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_LENGTH_PAYLOAD_INDEX)
220#define NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_TYPE(F) ((F) & NVTX_PAYLOAD_ENTRY_FLAG_IS_ARRAY)
258#ifndef NVTX_PAYLOAD_ENTRY_TYPES_V1
259#define NVTX_PAYLOAD_ENTRY_TYPES_V1
261#define NVTX_PAYLOAD_ENTRY_TYPE_INVALID 0
266#define NVTX_PAYLOAD_ENTRY_TYPE_CHAR 1
267#define NVTX_PAYLOAD_ENTRY_TYPE_UCHAR 2
268#define NVTX_PAYLOAD_ENTRY_TYPE_SHORT 3
269#define NVTX_PAYLOAD_ENTRY_TYPE_USHORT 4
270#define NVTX_PAYLOAD_ENTRY_TYPE_INT 5
271#define NVTX_PAYLOAD_ENTRY_TYPE_UINT 6
272#define NVTX_PAYLOAD_ENTRY_TYPE_LONG 7
273#define NVTX_PAYLOAD_ENTRY_TYPE_ULONG 8
274#define NVTX_PAYLOAD_ENTRY_TYPE_LONGLONG 9
275#define NVTX_PAYLOAD_ENTRY_TYPE_ULONGLONG 10
280#define NVTX_PAYLOAD_ENTRY_TYPE_INT8 11
281#define NVTX_PAYLOAD_ENTRY_TYPE_UINT8 12
282#define NVTX_PAYLOAD_ENTRY_TYPE_INT16 13
283#define NVTX_PAYLOAD_ENTRY_TYPE_UINT16 14
284#define NVTX_PAYLOAD_ENTRY_TYPE_INT32 15
285#define NVTX_PAYLOAD_ENTRY_TYPE_UINT32 16
286#define NVTX_PAYLOAD_ENTRY_TYPE_INT64 17
287#define NVTX_PAYLOAD_ENTRY_TYPE_UINT64 18
292#define NVTX_PAYLOAD_ENTRY_TYPE_FLOAT 19
293#define NVTX_PAYLOAD_ENTRY_TYPE_DOUBLE 20
294#define NVTX_PAYLOAD_ENTRY_TYPE_LONGDOUBLE 21
299#define NVTX_PAYLOAD_ENTRY_TYPE_SIZE 22
305#define NVTX_PAYLOAD_ENTRY_TYPE_ADDRESS 23
310#define NVTX_PAYLOAD_ENTRY_TYPE_WCHAR 24
311#define NVTX_PAYLOAD_ENTRY_TYPE_CHAR8 25
312#define NVTX_PAYLOAD_ENTRY_TYPE_CHAR16 26
313#define NVTX_PAYLOAD_ENTRY_TYPE_CHAR32 27
318#define NVTX_PAYLOAD_ENTRY_TYPE_INFO_ARRAY_SIZE (NVTX_PAYLOAD_ENTRY_TYPE_CHAR32 + 1)
324#define NVTX_PAYLOAD_ENTRY_TYPE_BYTE 32
332#define NVTX_PAYLOAD_ENTRY_TYPE_INT128 33
333#define NVTX_PAYLOAD_ENTRY_TYPE_UINT128 34
340#define NVTX_PAYLOAD_ENTRY_TYPE_FLOAT16 42
341#define NVTX_PAYLOAD_ENTRY_TYPE_FLOAT32 43
342#define NVTX_PAYLOAD_ENTRY_TYPE_FLOAT64 44
343#define NVTX_PAYLOAD_ENTRY_TYPE_FLOAT128 45
345#define NVTX_PAYLOAD_ENTRY_TYPE_BF16 50
346#define NVTX_PAYLOAD_ENTRY_TYPE_TF32 52
353#define NVTX_PAYLOAD_ENTRY_TYPE_CATEGORY 68
354#define NVTX_PAYLOAD_ENTRY_TYPE_COLOR_ARGB 69
359#define NVTX_PAYLOAD_ENTRY_TYPE_SCOPE_ID 70
364#define NVTX_PAYLOAD_ENTRY_TYPE_PID_UINT32 71
365#define NVTX_PAYLOAD_ENTRY_TYPE_PID_UINT64 72
370#define NVTX_PAYLOAD_ENTRY_TYPE_TID_UINT32 73
371#define NVTX_PAYLOAD_ENTRY_TYPE_TID_UINT64 74
399#define NVTX_PAYLOAD_ENTRY_TYPE_CSTRING 75
400#define NVTX_PAYLOAD_ENTRY_TYPE_CSTRING_UTF8 76
401#define NVTX_PAYLOAD_ENTRY_TYPE_CSTRING_UTF16 77
402#define NVTX_PAYLOAD_ENTRY_TYPE_CSTRING_UTF32 78
408#define NVTX_PAYLOAD_ENTRY_TYPE_NVTX_REGISTERED_STRING_HANDLE 80
415#define NVTX_PAYLOAD_ENTRY_TYPE_UNION_SELECTOR 100
426#define NVTX_TYPE_PAYLOAD_SCHEMA_REFERENCED 1022
435#define NVTX_TYPE_PAYLOAD_SCHEMA_RAW 1023
438#define NVTX_PAYLOAD_SCHEMA_ID_STATIC_START (1 << 24)
441#define NVTX_PAYLOAD_SCHEMA_ID_DYNAMIC_START (NVTX_STATIC_CAST(uint64_t, 1) << 32)
448#ifndef NVTX_PAYLOAD_SCHEMA_TYPES_V1
449#define NVTX_PAYLOAD_SCHEMA_TYPES_V1
475#define NVTX_PAYLOAD_SCHEMA_TYPE_INVALID 0
476#define NVTX_PAYLOAD_SCHEMA_TYPE_STATIC 1
477#define NVTX_PAYLOAD_SCHEMA_TYPE_DYNAMIC 2
478#define NVTX_PAYLOAD_SCHEMA_TYPE_UNION 3
479#define NVTX_PAYLOAD_SCHEMA_TYPE_UNION_WITH_INTERNAL_SELECTOR 4
483#ifndef NVTX_PAYLOAD_SCHEMA_FLAGS_V1
484#define NVTX_PAYLOAD_SCHEMA_FLAGS_V1
491#define NVTX_PAYLOAD_SCHEMA_FLAG_NONE 0
497#define NVTX_PAYLOAD_SCHEMA_FLAG_DEEP_COPY (1 << 1)
505#define NVTX_PAYLOAD_SCHEMA_FLAG_REFERENCED (1 << 2)
512#define NVTX_PAYLOAD_SCHEMA_FLAG_COUNTER_GROUP (1 << 3)
518#define NVTX_PAYLOAD_SCHEMA_FLAG_RANGE_PUSHPOP (2 << 3)
519#define NVTX_PAYLOAD_SCHEMA_FLAG_RANGE_STARTEND (3 << 3)
520#define NVTX_PAYLOAD_SCHEMA_FLAG_MARK (4 << 3)
524#ifndef NVTX_PAYLOAD_SCHEMA_ATTR_FIELDS_V1
525#define NVTX_PAYLOAD_SCHEMA_ATTR_FIELDS_V1
534#define NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_NAME (1 << 1)
535#define NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_TYPE (1 << 2)
536#define NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_FLAGS (1 << 3)
537#define NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_ENTRIES (1 << 4)
538#define NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_NUM_ENTRIES (1 << 5)
539#define NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_STATIC_SIZE (1 << 6)
540#define NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_ALIGNMENT (1 << 7)
541#define NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_SCHEMA_ID (1 << 8)
542#define NVTX_PAYLOAD_SCHEMA_ATTR_FIELD_EXTENSION (1 << 9)
546#ifndef NVTX_PAYLOAD_ENUM_ATTR_FIELDS_V1
547#define NVTX_PAYLOAD_ENUM_ATTR_FIELDS_V1
556#define NVTX_PAYLOAD_ENUM_ATTR_FIELD_NAME (1 << 1)
557#define NVTX_PAYLOAD_ENUM_ATTR_FIELD_ENTRIES (1 << 2)
558#define NVTX_PAYLOAD_ENUM_ATTR_FIELD_NUM_ENTRIES (1 << 3)
559#define NVTX_PAYLOAD_ENUM_ATTR_FIELD_SIZE (1 << 4)
560#define NVTX_PAYLOAD_ENUM_ATTR_FIELD_SCHEMA_ID (1 << 5)
561#define NVTX_PAYLOAD_ENUM_ATTR_FIELD_EXTENSION (1 << 6)
604#ifndef NVTX_SCOPES_V1
605#define NVTX_SCOPES_V1
607#define NVTX_SCOPE_NONE 0
608#define NVTX_SCOPE_ROOT 1
611#define NVTX_SCOPE_CURRENT_HW_MACHINE 2
612#define NVTX_SCOPE_CURRENT_HW_SOCKET 3
613#define NVTX_SCOPE_CURRENT_HW_CPU_PHYSICAL 4
614#define NVTX_SCOPE_CURRENT_HW_CPU_LOGICAL 5
616#define NVTX_SCOPE_CURRENT_HW_INNERMOST 15
619#define NVTX_SCOPE_CURRENT_HYPERVISOR 16
620#define NVTX_SCOPE_CURRENT_VM 17
621#define NVTX_SCOPE_CURRENT_KERNEL 18
622#define NVTX_SCOPE_CURRENT_CONTAINER 19
623#define NVTX_SCOPE_CURRENT_OS 20
626#define NVTX_SCOPE_CURRENT_SW_PROCESS 21
627#define NVTX_SCOPE_CURRENT_SW_THREAD 22
629#define NVTX_SCOPE_CURRENT_SW_INNERMOST 31
632#define NVTX_SCOPE_ID_STATIC_START (1 << 24)
635#define NVTX_SCOPE_ID_DYNAMIC_START (NVTX_STATIC_CAST(uint64_t, 1) << 32)
653#define NVTX_TIMESTAMP_TYPE_NONE 0
656#define NVTX_TIMESTAMP_TYPE_TOOL_PROVIDED 1
660#define NVTX_TIMESTAMP_TYPE_CPU_TSC 10
662#define NVTX_TIMESTAMP_TYPE_CPU_TSC_NONVIRTUALIZED 11
664#define NVTX_TIMESTAMP_TYPE_CPU_CLOCK_GETTIME_REALTIME 12
666#define NVTX_TIMESTAMP_TYPE_CPU_CLOCK_GETTIME_REALTIME_COARSE 13
668#define NVTX_TIMESTAMP_TYPE_CPU_CLOCK_GETTIME_MONOTONIC 14
670#define NVTX_TIMESTAMP_TYPE_CPU_CLOCK_GETTIME_MONOTONIC_RAW 15
672#define NVTX_TIMESTAMP_TYPE_CPU_CLOCK_GETTIME_MONOTONIC_COARSE 16
674#define NVTX_TIMESTAMP_TYPE_CPU_CLOCK_GETTIME_BOOTTIME 17
676#define NVTX_TIMESTAMP_TYPE_CPU_CLOCK_GETTIME_PROCESS_CPUTIME_ID 18
678#define NVTX_TIMESTAMP_TYPE_CPU_CLOCK_GETTIME_THREAD_CPUTIME_ID 19
681#define NVTX_TIMESTAMP_TYPE_WIN_QPC 30
682#define NVTX_TIMESTAMP_TYPE_WIN_GSTAFT 31
683#define NVTX_TIMESTAMP_TYPE_WIN_GSTAFTP 32
687#define NVTX_TIMESTAMP_TYPE_C_TIME 40
689#define NVTX_TIMESTAMP_TYPE_C_CLOCK 41
691#define NVTX_TIMESTAMP_TYPE_C_TIMESPEC_GET 42
695#define NVTX_TIMESTAMP_TYPE_CPP_STEADY_CLOCK 50
697#define NVTX_TIMESTAMP_TYPE_CPP_HIGH_RESOLUTION_CLOCK 51
699#define NVTX_TIMESTAMP_TYPE_CPP_SYSTEM_CLOCK 52
701#define NVTX_TIMESTAMP_TYPE_CPP_UTC_CLOCK 53
703#define NVTX_TIMESTAMP_TYPE_CPP_TAI_CLOCK 54
705#define NVTX_TIMESTAMP_TYPE_CPP_GPS_CLOCK 55
707#define NVTX_TIMESTAMP_TYPE_CPP_FILE_CLOCK 56
710#define NVTX_TIMESTAMP_TYPE_GPU_GLOBALTIMER 80
713#define NVTX_TIME_DOMAIN_ID_NONE 0
716#define NVTX_TIME_DOMAIN_ID_STATIC_START (1 << 24)
719#define NVTX_TIME_DOMAIN_ID_DYNAMIC_START (NVTX_STATIC_CAST(uint64_t, 1) << 32)
722#define NVTX_TIMER_FLAG_NONE 0
723#define NVTX_TIMER_FLAG_CLOCK_MONOTONIC (1 << 1)
724#define NVTX_TIMER_FLAG_CLOCK_STEADY (1 << 2)
727#define NVTX_TIMER_START_UNKNOWN 0
728#define NVTX_TIMER_START_SYSTEM_BOOT 1
729#define NVTX_TIMER_START_VM_BOOT 2
730#define NVTX_TIMER_START_UNIX_EPOCH 3
731#define NVTX_TIMER_START_WIN_FILETIME 4
737#define NVTX_TIMER_SOURCE_SAFE_CALL_AFTER_PROCESS_TEARDOWN 0
738#define NVTX_TIMER_SOURCE_UNSAFE_CALL_AFTER_PROCESS_TEARDOWN 1
742#ifndef NVTX_BATCH_FLAGS_V1
743#define NVTX_BATCH_FLAGS_V1
750#define NVTX_BATCH_FLAG_TIME_SORTED 0
751#define NVTX_BATCH_FLAG_TIME_SORTED_PARTIALLY (1 << 1)
752#define NVTX_BATCH_FLAG_TIME_SORTED_PER_SCOPE (2 << 1)
753#define NVTX_BATCH_FLAG_UNSORTED (3 << 1)
761#ifndef NVTX_PAYLOAD_TYPEDEFS_V1
762#define NVTX_PAYLOAD_TYPEDEFS_V1
779typedef struct nvtxPayloadEntryTypeInfo_v1
799typedef struct nvtxPayloadData_v1
848typedef struct nvtxSemanticsHeader_v1
853 const struct nvtxSemanticsHeader_v1*
next;
871typedef struct nvtxPayloadSchemaEntry_v1
977typedef struct nvtxPayloadSchemaAttr_v1
1069typedef struct nvtxPayloadEnum_v1
1090typedef struct nvtxPayloadEnumAttr_v1
1132typedef struct nvtxScopeAttr_v1
1202#ifndef NVTX_PAYLOAD_TYPEDEFS_DEFERRED_V1
1203#define NVTX_PAYLOAD_TYPEDEFS_DEFERRED_V1
1206typedef struct nvtxTimeDomainAttr_v1
1235typedef struct nvtxSyncPoint_v1
1250typedef struct nvtxEventBatch_v1
1309#ifndef NVTX_PAYLOAD_API_FUNCTIONS_V1
1310#define NVTX_PAYLOAD_API_FUNCTIONS_V1
1323NVTX_DECLSPEC uint64_t NVTX_API
1336NVTX_DECLSPEC uint64_t NVTX_API
1350NVTX_DECLSPEC uint64_t NVTX_API
1363NVTX_DECLSPEC
void NVTX_API
1379NVTX_DECLSPEC
int NVTX_API
1399NVTX_DECLSPEC
int NVTX_API
1427 nvtxDomainHandle_t domain,
1452#ifndef NVTX_PAYLOAD_API_FUNCTIONS_DEFERRED_V1
1453#define NVTX_PAYLOAD_API_FUNCTIONS_DEFERRED_V1
1471NVTX_DECLSPEC uint64_t NVTX_API
1486 nvtxDomainHandle_t domain,
1487 uint64_t timeDomainId,
1489 int64_t (*timestampProviderFn)(
void));
1503 nvtxDomainHandle_t domain,
1504 uint64_t timeDomainId,
1506 int64_t (*timestampProviderFn)(
void* data),
1524 nvtxDomainHandle_t domain,
1525 uint64_t timeDomainId1,
1526 uint64_t timeDomainId2,
1528 int64_t timestamp2);
1542 nvtxDomainHandle_t domain,
1543 uint64_t timeDomainIdSrc,
1544 uint64_t timeDomainIdDst,
1561 nvtxDomainHandle_t domain,
1562 uint64_t timeDomainIdSrc,
1563 uint64_t timeDomainIdDst,
1565 int64_t timestampSrc,
1566 int64_t timestampDst);
1578 nvtxDomainHandle_t domain,
const nvtxPayloadData_t* payloadData,
size_t numPayloads);
1586NVTX_DECLSPEC
void NVTX_API
1602#ifndef NVTX_PAYLOAD_CALLBACK_ID_V1
1603#define NVTX_PAYLOAD_CALLBACK_ID_V1
1605#define NVTX3EXT_CBID_nvtxPayloadSchemaRegister 0
1606#define NVTX3EXT_CBID_nvtxPayloadEnumRegister 1
1607#define NVTX3EXT_CBID_nvtxMarkPayload 2
1608#define NVTX3EXT_CBID_nvtxRangePushPayload 3
1609#define NVTX3EXT_CBID_nvtxRangePopPayload 4
1610#define NVTX3EXT_CBID_nvtxRangeStartPayload 5
1611#define NVTX3EXT_CBID_nvtxRangeEndPayload 6
1612#define NVTX3EXT_CBID_nvtxDomainIsEnabled 7
1613#define NVTX3EXT_CBID_nvtxScopeRegister 12
1617#ifndef NVTX_PAYLOAD_CALLBACK_ID_DEFERRED_V1
1618#define NVTX_PAYLOAD_CALLBACK_ID_DEFERRED_V1
1620#define NVTX3EXT_CBID_nvtxTimestampGet 8
1621#define NVTX3EXT_CBID_nvtxTimeDomainRegister 9
1622#define NVTX3EXT_CBID_nvtxTimerSource 10
1623#define NVTX3EXT_CBID_nvtxTimerSourceWithData 11
1624#define NVTX3EXT_CBID_nvtxTimeSyncPoint 13
1625#define NVTX3EXT_CBID_nvtxTimeSyncPointTable 14
1626#define NVTX3EXT_CBID_nvtxTimestampConversionFactor 15
1627#define NVTX3EXT_CBID_nvtxEventSubmit 16
1628#define NVTX3EXT_CBID_nvtxEventBatchSubmit 17
1635#ifndef NVTX_POINTER_AS_PAYLOAD_ULLVALUE
1637#define NVTX_POINTER_AS_PAYLOAD_ULLVALUE(p) static_cast<uint64_t>(reinterpret_cast<uintptr_t>(p))
1639#define NVTX_POINTER_AS_PAYLOAD_ULLVALUE(p) \
1640 (NVTX_STATIC_CAST(uint64_t, NVTX_STATIC_CAST(uintptr_t, p)))
1644#ifndef NVTX_PAYLOAD_EVTATTR_SET_DATA
1654#define NVTX_PAYLOAD_EVTATTR_SET_DATA(evtAttr, pldata_addr, schema_id, pl_addr, sz) \
1655 (pldata_addr)->schemaId = schema_id; \
1656 (pldata_addr)->size = sz; \
1657 (pldata_addr)->payload = pl_addr; \
1658 (evtAttr).payload.ullValue = NVTX_POINTER_AS_PAYLOAD_ULLVALUE(pldata_addr); \
1659 (evtAttr).payloadType = NVTX_PAYLOAD_TYPE_EXT; \
1660 (evtAttr).reserved0 = 1;
1663#ifndef NVTX_PAYLOAD_EVTATTR_SET_MULTIPLE
1670#define NVTX_PAYLOAD_EVTATTR_SET_MULTIPLE(evtAttr, pldata) \
1671 (evtAttr).payloadType = NVTX_PAYLOAD_TYPE_EXT; \
1672 (evtAttr).reserved0 = sizeof(pldata) / sizeof(nvtxPayloadData_t); \
1673 (evtAttr).payload.ullValue = NVTX_POINTER_AS_PAYLOAD_ULLVALUE(pldata);
1676#ifndef NVTX_PAYLOAD_EVTATTR_SET_MULTIPLE_N
1685#define NVTX_PAYLOAD_EVTATTR_SET_MULTIPLE_N(evtAttr, pldata, count) \
1686 (evtAttr).payloadType = NVTX_PAYLOAD_TYPE_EXT; \
1687 (evtAttr).reserved0 = NVTX_STATIC_CAST(int32_t, count); \
1688 (evtAttr).payload.ullValue = NVTX_POINTER_AS_PAYLOAD_ULLVALUE(pldata);
1691#ifndef NVTX_PAYLOAD_EVTATTR_SET
1697#define NVTX_PAYLOAD_EVTATTR_SET(evtAttr, schema_id, pl_addr, sz) \
1698 nvtxPayloadData_t _NVTX_PAYLOAD_DATA_VAR[] = {{schema_id, sz, pl_addr}}; \
1699 (evtAttr)->payload.ullValue = NVTX_POINTER_AS_PAYLOAD_ULLVALUE(_NVTX_PAYLOAD_DATA_VAR); \
1700 (evtAttr)->payloadType = NVTX_PAYLOAD_TYPE_EXT; \
1701 (evtAttr)->reserved0 = 1;
1704#ifndef nvtxPayloadRangePush
1714#define nvtxPayloadRangePush(domain, evtAttr, schemaId, plAddr, size) \
1717 NVTX_PAYLOAD_EVTATTR_SET(evtAttr, schemaId, plAddr, size) \
1718 nvtxDomainRangePushEx(domain, evtAttr); \
1722#ifndef nvtxPayloadMark
1732#define nvtxPayloadMark(domain, evtAttr, schemaId, plAddr, size) \
1735 NVTX_PAYLOAD_EVTATTR_SET(evtAttr, schemaId, plAddr, size) \
1736 nvtxDomainMarkEx(domain, evtAttr); \
1741#ifndef NVTX_EXT_PAYLOAD_VERSIONED_IDENTIFIERS_V1
1742#define NVTX_EXT_PAYLOAD_VERSIONED_IDENTIFIERS_V1
1743#define NVTX_EXT_PAYLOAD_VERSIONED_IDENTIFIER_L3(NAME, VERSION, COMPATID) \
1744 NAME##_v##VERSION##_bpl##COMPATID
1745#define NVTX_EXT_PAYLOAD_VERSIONED_IDENTIFIER_L2(NAME, VERSION, COMPATID) \
1746 NVTX_EXT_PAYLOAD_VERSIONED_IDENTIFIER_L3(NAME, VERSION, COMPATID)
1747#define NVTX_EXT_PAYLOAD_VERSIONED_ID(NAME) \
1748 NVTX_EXT_PAYLOAD_VERSIONED_IDENTIFIER_L2(NAME, NVTX_VERSION, NVTX_EXT_PAYLOAD_COMPATID)
1752#pragma GCC visibility push(internal)
1756#define NVTX_EXT_TYPES_GUARD
1757#include "nvtxDetail/nvtxExtTypes.h"
1758#undef NVTX_EXT_TYPES_GUARD
1761#define NVTX_EXT_IMPL_PAYLOAD_GUARD
1762#include "nvtxDetail/nvtxExtImplPayload_v1.h"
1763#undef NVTX_EXT_IMPL_PAYLOAD_GUARD
1767#pragma GCC visibility pop
Helper struct to submit a batch of events (marks or ranges).
const void * events
Pointer to the array of deferred events.
const void * flexData
Flexible data blob referenced by events in the batch.
Binary payload data, size and decoding information.
uint64_t schemaId
The schema ID, which defines the layout of the binary data.
size_t size
Size of the payload (blob) in bytes.
Size and alignment information for predefined payload entry types.
Description of one enumeration value.
NVTX payload enumeration type attributes.
size_t sizeOfEnum
Size of the enumeration type in bytes. (Mandatory)
const nvtxPayloadEnum_t * entries
uint64_t schemaId
Unique identifier for this enum type.
NVTX payload schema attributes.
uint64_t type
Payload schema type. (Mandatory).
size_t payloadStaticSize
The binary payload size in bytes for static payload schemas.
size_t packAlign
The byte alignment for packed structures.
const char * name
Name of the payload schema. (Optional)
uint64_t fieldMask
Mask of valid fields in this struct.
uint64_t schemaId
Unique identifier for this schema.
uint64_t flags
Payload schema flags. (Optional)
const nvtxPayloadSchemaEntry_t * entries
Entries of a payload schema. (Mandatory).
size_t numEntries
Number of entries in the payload schema. (Mandatory)
uint64_t arrayOrUnionDetail
String length, array length or member selector for union types.
uint64_t type
Predefined payload schema entry type, registered enum ID, or registered schema ID.
uint64_t offset
Offset in the binary payload data (in bytes).
const char * description
Description of the payload entry. (Optional)
const nvtxSemanticsHeader_t * semantics
Additional semantics of the payload entry.
const char * name
Name or label of the payload entry. (Optional)
const void * reserved
Reserved for future use.
uint64_t flags
Flags to augment the basic type.
A pair of timestamps taken at the same instant in two different time domains. Used with nvtxTimeSyncP...