48#ifndef DW_CORE_CONTEXT_H_
49#define DW_CORE_CONTEXT_H_
59#include <cuda_runtime_api.h>
60#include <cuda_runtime.h>
struct cudaDeviceProp cudaDeviceProp
enum cudaDeviceAttr cudaDeviceAttr
enum cudaTextureAddressMode cudaTextureAddressMode
dwStatus
Status definition.
Redefinition of cudaDeviceProp for the safety build.
NVIDIA DriveWorks API: Core Status Methods
NVIDIA DriveWorks API: Timer
NVIDIA DriveWorks API: Core Types
NVIDIA DriveWorks API: Core Version Information
NVIDIA DriveWorks API: Core Exports
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
const char8_t * dataPath
Path where all DriveWorks related data required during runtime are stored.
bool enablePVA
if true, PVA platform will be enabled.
bool skipCudaInit
if true will skip CUDA initialization in the context
bool enableCudaTaskGraph
if true, Cuda task-graph will be used where possible.
bool useVirtualTime
if true, the context's time source will be a virtual clock.
DW_API_PUBLIC dwStatus dwInitialize(dwContextHandle_t *const context, dwVersion const headerVersion, dwContextParameters const *const params)
Creates and initializes an SDK context.
DW_API_PUBLIC dwStatus dwRelease(dwContextHandle_t const context)
Releases the context.
DW_API_PUBLIC dwStatus dwContext_getUseVirtualTime(bool *const useVirtualTime, dwContextHandle_t const ctx)
Check if in virtual time mode.
DW_API_PUBLIC dwStatus dwContext_getGPUDeviceCurrent(int32_t *const deviceNumber, dwContextHandle_t const context)
Returns the currently selected GPU device.
struct dwModuleObject * dwModuleHandle_t
The Generic Module Object Handle.
DW_API_PUBLIC dwStatus dwContext_setCustomFileFunctions(dwContextHandle_t const context, dwCustomizedFileFunctions *const fileFunctionPtr)
Set the customized fileStream function pointers in context.
DW_API_PUBLIC dwStatus dwContext_getCUDAProperties(int32_t *const driverVersion, int32_t *const apiVersion, dwContextHandle_t const context)
Returns Driver and Runtime API version of CUDA on the current machine.
DW_API_PUBLIC dwStatus dwContext_getGPUCount(int32_t *const count, dwContextHandle_t const context)
Get the available GPU devices count.
struct dwContextObject const * dwConstContextHandle_t
DW_API_PUBLIC dwStatus dwContext_getGPUDeviceType(dwGPUDeviceType *const deviceType, int32_t const deviceNum, dwContextHandle_t const context)
Returns the device type of the input GPU number.
DW_API_PUBLIC dwStatus dwContext_getDLAEngineCount(int32_t *const count, dwContextHandle_t const context)
Get the available DLA engines count.
DW_API_PUBLIC dwStatus dwContext_getNvSciSyncModule(NvSciSyncModule *mod, dwContextHandle_t const context)
Get the NvSciSync module.
struct dwModuleObject const * dwConstModuleHandle_t
dwPTPStatus
Defines PTP synchronization status.
DW_API_PUBLIC dwStatus dwContext_getGPUArchitecture(char8_t const **const architecture, dwContextHandle_t const context)
Returns the architecture for the currently selected CUDA device.
DW_API_PUBLIC dwStatus dwContext_getNvSciBufModule(NvSciBufModule *mod, dwContextHandle_t const context)
Get the nvscibuf module.
DW_API_PUBLIC dwStatus dwContext_selectGPUDevice(int32_t const deviceNumber, dwContextHandle_t const context)
Selects a GPU device, if available.
DW_API_PUBLIC dwStatus dwContext_getGPUAttribute(int32_t *const value, cudaDeviceAttr const attribute, int32_t const deviceNum, dwContextHandle_t const context)
Returns the value of the selected CUDA attribute for the specific CUDA device.
DW_API_PUBLIC dwStatus dwContext_getCurrentTime(dwTime_t *const time, dwContextHandle_t const context)
Returns the current timestamp.
DW_API_PUBLIC dwStatus dwContext_getTimePTPSynchronizationStatus(dwPTPStatus *const status, dwContextHandle_t const context)
Get the PTP synchronization status of time source inside the context.
DW_API_PUBLIC dwStatus dwContext_getGPUProperties(dwGPUDeviceProperties *const properties, int32_t const deviceNum, dwContextHandle_t const context)
Returns the properties for the specific CUDA device.
DW_API_PUBLIC dwStatus dwContext_getDataPath(char8_t const **const dataPath, dwContextHandle_t const context)
Gets the initial data path of the library that contains the driveworks context.
DW_API_PUBLIC dwStatus dwGetLastError(char8_t const **const errorMsg)
Retrieves the last error encountered.
struct dwContextObject * dwContextHandle_t
Context handle.
DW_API_PUBLIC dwStatus dwContext_advanceTime(dwTime_t const newTime, dwContextHandle_t const context)
Advances the virtual time to newTime.
DW_API_PUBLIC dwStatus dwContext_getTimeSource(dwTimeSourceHandle_t *const source, dwContextHandle_t const context)
Retrieve time source used in the context.
void * dwCustomizedFileHandle
FileStream function pointers handle.
DW_API_PUBLIC dwStatus dwContext_isTimePTPSynchronized(bool *const flag, dwContextHandle_t const context)
Check if the used time source inside the context is synchronized over PTP.
@ DW_PTP_STATUS_NO_ERROR
No error.
@ DW_PTP_STATUS_LOST_SYNC
PTP synchronization lost.
@ DW_PTP_STATUS_NO_INIT_SYNC
PTP synchronization is not started.
@ DW_PTP_STATUS_INTERNAL_ERROR
PTP internal error.
A set of parameters that is passed to the SDK to create the context.
struct dwTimeSourceObject * dwTimeSourceHandle_t
Data structure representing a customized FileStream that can be passed in.
size_t(* read)(dwCustomizedFileHandle hnd, void *ptr, size_t size)
Function pointer: Read raw data from the file stream and return the number of bytes read.
void(* setPosition)(dwCustomizedFileHandle hnd, size_t size)
Function pointer: Set the desired position inside the file stream.
dwCustomizedFileHandle(* open)(const char8_t *ptr1, const char8_t *ptr2)
Function pointer: Open the file stream and returns the handle to the file.
size_t(* write)(dwCustomizedFileHandle hnd, const void *ptr, size_t size)
Function pointer: Write raw data to the file stream from an input buffer and return the number of byt...
size_t(* size)(dwCustomizedFileHandle hnd)
Function pointer: Returns the total number of bytes in the file stream.
bool(* getString)(dwCustomizedFileHandle hnd, char8_t *ptr, size_t size)
Function pointer: Read a string from the file stream.
void(* flush)(dwCustomizedFileHandle hnd)
Function pointer: Synchronizes the file stream, waiting that all requested bytes have been read.
bool(* error)(dwCustomizedFileHandle hnd)
Function pointer: Check if any I/O error occurred during OPEN/RD/WR operations.
bool(* eof)(dwCustomizedFileHandle hnd)
Function pointer: Check if the end of file flag is set for the file stream.
void(* close)(dwCustomizedFileHandle hnd)
Function pointer: Close the file stream.
size_t(* getPosition)(dwCustomizedFileHandle hnd)
Function pointer: Returns the current position inside the file stream.