Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>

  • DriveWorks SDK Reference
    5.10.90 Release
    For Test and Development only

    All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    Context.h
    Go to the documentation of this file.
    1
    2//
    3// Notice
    4// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
    5// NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
    6// THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
    7// MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
    8//
    9// NVIDIA CORPORATION & AFFILIATES assumes no responsibility for the consequences of use of such
    10// information or for any infringement of patents or other rights of third parties that may
    11// result from its use. No license is granted by implication or otherwise under any patent
    12// or patent rights of NVIDIA CORPORATION & AFFILIATES. No third party distribution is allowed unless
    13// expressly authorized by NVIDIA. Details are subject to change without notice.
    14// This code supersedes and replaces all information previously supplied.
    15// NVIDIA CORPORATION & AFFILIATES products are not authorized for use as critical
    16// components in life support devices or systems without express written approval of
    17// NVIDIA CORPORATION & AFFILIATES.
    18//
    19// SPDX-FileCopyrightText: Copyright (c) 2016-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
    20// SPDX-License-Identifier: LicenseRef-NvidiaProprietary
    21//
    22// NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
    23// property and proprietary rights in and to this material, related
    24// documentation and any modifications thereto. Any use, reproduction,
    25// disclosure or distribution of this material and related documentation
    26// without an express license agreement from NVIDIA CORPORATION or
    27// its affiliates is strictly prohibited.
    28//
    30
    48#ifndef DW_CORE_CONTEXT_H_
    49#define DW_CORE_CONTEXT_H_
    50
    51#include <dw/core/base/Config.h>
    53#include <dw/core/base/Types.h>
    55#include <dw/core/base/Status.h>
    56#include <dw/core/time/Timer.h>
    57
    58#include <cuda_runtime_api.h>
    59#include <cuda_runtime.h>
    60
    61// type definitions for CUDA structs
    65
    66// Forward declares from EGL
    67typedef void* EGLDisplay;
    68
    69#ifdef __cplusplus
    70extern "C" {
    71#endif
    72
    82// coverity[misra_c_2012_rule_1_1_violation]
    83typedef struct dwContextObject* dwContextHandle_t;
    84typedef struct dwContextObject const* dwConstContextHandle_t;
    85
    86typedef struct dwModuleObject* dwModuleHandle_t;
    87typedef struct dwModuleObject const* dwConstModuleHandle_t;
    88
    92typedef struct dwContextParameters
    93{
    94
    95#ifdef DW_USE_EGL
    97 EGLDisplay eglDisplay;
    98
    103 bool skipEglInit;
    104#endif
    105
    110 const char8_t* dataPath;
    111
    117
    125
    130
    137
    140
    145{
    147 size_t (*write)(dwCustomizedFileHandle hnd, const void* ptr, size_t size);
    148 size_t (*read)(dwCustomizedFileHandle hnd, void* ptr, size_t size);
    149 bool (*getString)(dwCustomizedFileHandle hnd, char8_t* ptr, size_t size);
    156 dwCustomizedFileHandle (*open)(const char8_t* ptr1, const char8_t* ptr2);
    157
    159
    173
    189dwStatus dwGetLastError(char8_t const** const errorMsg);
    190
    220dwStatus dwInitialize(dwContextHandle_t* const context, dwVersion const headerVersion, dwContextParameters const* const params);
    221
    236
    254
    269
    293dwStatus dwContext_isTimePTPSynchronized(bool* const flag, dwContextHandle_t const context); // clang-tidy NOLINT(readability-non-const-parameter);
    294
    304
    319dwStatus dwContext_selectGPUDevice(int32_t const deviceNumber, dwContextHandle_t const context);
    320
    332dwStatus dwContext_getGPUDeviceCurrent(int32_t* const deviceNumber, dwContextHandle_t const context);
    333
    345dwStatus dwContext_getGPUCount(int32_t* const count, dwContextHandle_t const context);
    346
    347#ifndef DW_IS_SAFETY
    363dwStatus dwContext_getGPUProperties(cudaDeviceProp* const properties, int32_t const deviceNum,
    364 dwContextHandle_t const context);
    365#endif
    366
    384dwStatus dwContext_getGPUAttribute(int32_t* const value, cudaDeviceAttr const attribute, int32_t const deviceNum,
    385 dwContextHandle_t const context);
    386
    398dwStatus dwContext_getGPUArchitecture(char8_t const** const architecture, dwContextHandle_t const context);
    399
    413dwStatus dwContext_getCUDAProperties(int32_t* const driverVersion, int32_t* const apiVersion, dwContextHandle_t const context);
    414
    428dwStatus dwContext_getGPUDeviceType(dwGPUDeviceType* const deviceType, int32_t const deviceNum, dwContextHandle_t const context);
    429
    430#ifdef DW_USE_EGL
    448dwStatus dwContext_setEGLDisplay(EGLDisplay display, dwContextHandle_t context);
    449
    464dwStatus dwContext_getEGLDisplay(EGLDisplay* display, dwContextHandle_t context);
    465#endif
    466
    478dwStatus dwContext_getDLAEngineCount(int32_t* const count, dwContextHandle_t const context);
    479
    493dwStatus dwContext_getDataPath(char8_t const** const dataPath, dwContextHandle_t const context);
    494
    506dwStatus dwContext_getUseVirtualTime(bool* const useVirtualTime, dwContextHandle_t const ctx);
    507
    508#ifdef __cplusplus
    509}
    510#endif
    512#endif // DW_CORE_CONTEXT_H_
    struct cudaDeviceProp cudaDeviceProp
    Definition: Context.h:62
    enum cudaDeviceAttr cudaDeviceAttr
    Definition: Context.h:63
    void * EGLDisplay
    Definition: Context.h:67
    enum cudaTextureAddressMode cudaTextureAddressMode
    Definition: Context.h:64
    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.
    Definition: BasicTypes.h:63
    const char8_t * dataPath
    Path where all DriveWorks related data required during runtime are stored.
    Definition: Context.h:110
    bool enablePVA
    if true, PVA platform will be enabled.
    Definition: Context.h:124
    bool skipCudaInit
    if true will skip CUDA initialization in the context
    Definition: Context.h:116
    bool enableCudaTaskGraph
    if true, Cuda task-graph will be used where possible.
    Definition: Context.h:129
    bool useVirtualTime
    if true, the context's time source will be a virtual clock.
    Definition: Context.h:135
    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
    Definition: Context.h:86
    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
    Definition: Context.h:84
    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.
    struct dwModuleObject const * dwConstModuleHandle_t
    Definition: Context.h:87
    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_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_getGPUProperties(cudaDeviceProp *const properties, int32_t const deviceNum, dwContextHandle_t const context)
    Returns the properties 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_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.
    Definition: Context.h:83
    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.
    Definition: Context.h:139
    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.
    A set of parameters that is passed to the SDK to create the context.
    Definition: Context.h:93
    #define DW_API_PUBLIC
    Definition: Exports.h:54
    dwStatus
    Status definition.
    Definition: Status.h:173
    dwGPUDeviceType
    GPU device type definitions Only applicable on Drive platforms.
    Definition: Types.h:148
    struct dwTimeSourceObject * dwTimeSourceHandle_t
    Definition: Timer.h:62
    Data structure representing a customized FileStream that can be passed in.
    Definition: Context.h:145
    size_t(* read)(dwCustomizedFileHandle hnd, void *ptr, size_t size)
    Definition: Context.h:148
    void(* setPosition)(dwCustomizedFileHandle hnd, size_t size)
    Definition: Context.h:152
    dwCustomizedFileHandle(* open)(const char8_t *ptr1, const char8_t *ptr2)
    Definition: Context.h:156
    size_t(* write)(dwCustomizedFileHandle hnd, const void *ptr, size_t size)
    Definition: Context.h:147
    size_t(* size)(dwCustomizedFileHandle hnd)
    Definition: Context.h:150
    bool(* getString)(dwCustomizedFileHandle hnd, char8_t *ptr, size_t size)
    Definition: Context.h:149
    void(* flush)(dwCustomizedFileHandle hnd)
    Definition: Context.h:155
    bool(* error)(dwCustomizedFileHandle hnd)
    Definition: Context.h:154
    bool(* eof)(dwCustomizedFileHandle hnd)
    Definition: Context.h:153
    void(* close)(dwCustomizedFileHandle hnd)
    Definition: Context.h:146
    size_t(* getPosition)(dwCustomizedFileHandle hnd)
    Definition: Context.h:151
    人人超碰97caoporen国产