CudaProfileRange::CudaProfileRange(const char *format, ...) { char name[256]; va_list ap; va_start(ap, format); vsnprintf(name, sizeof(name), format, ap); va_end(ap); name[sizeof(name)-1]=0; nvtxRangePush(name); }
void* PvdImpl::zoneStart(const char* eventName, bool detached, uint64_t contextId) { if(mProfileZone) { const uint16_t id = mProfileZone->getEventIdForName(eventName); if(detached) mProfileZone->startEvent(id, contextId, CrossThreadId); else mProfileZone->startEvent(id, contextId); } #if PX_NVTX if(mIsNVTXSupportEnabled) { if(detached) { // TODO : Need to use the nvtxRangeStart API for cross thread events nvtxEventAttributes_t eventAttrib; memset(&eventAttrib, 0, sizeof(eventAttrib)); eventAttrib.version = NVTX_VERSION; eventAttrib.size = NVTX_EVENT_ATTRIB_STRUCT_SIZE; eventAttrib.colorType = NVTX_COLOR_ARGB; eventAttrib.color = 0xFF00FF00; eventAttrib.messageType = NVTX_MESSAGE_TYPE_ASCII; eventAttrib.message.ascii = eventName; nvtxMarkEx(&eventAttrib); } else { nvtxRangePush(eventName); } } #endif if(mUserProfilerCallback) mUserProfilerCallback->zoneStart(eventName, detached, contextId); return NULL; }
ProfileRange::ProfileRange(const char *name) { // _rangeId = nvtxRangeStart(name); _rangeId = nvtxRangePush(name); }