@@ -155,6 +155,7 @@ typedef struct CUstream_st* CUstream;
155155typedef struct CUgraphicsResource_st * CUgraphicsResource ;
156156typedef unsigned long long CUtexObject ;
157157typedef unsigned long long CUsurfObject ;
158+ typedef struct CUextMemory_st * CUexternalMemory ;
158159
159160typedef struct CUuuid_st {
160161 char bytes [16 ];
@@ -887,6 +888,49 @@ typedef enum {
887888
888889typedef struct _nvrtcProgram * nvrtcProgram ;
889890
891+ typedef enum CUexternalMemoryHandleType_enum {
892+ CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD = 1 ,
893+ CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32 = 2 ,
894+ CU_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT = 3 ,
895+ CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP = 4 ,
896+ CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE = 5 ,
897+ CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE = 6 ,
898+ CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_RESOURCE_KMT = 7 ,
899+ CU_EXTERNAL_MEMORY_HANDLE_TYPE_NVSCIBUF = 8 ,
900+ } CUexternalMemoryHandleType ;
901+
902+ typedef struct CUDA_EXTERNAL_MEMORY_HANDLE_DESC_st {
903+ CUexternalMemoryHandleType type ;
904+ union {
905+ int fd ;
906+ struct {
907+ void * handle ;
908+ const void * name ;
909+ } win32 ;
910+ const void * nvSciBufObject ;
911+ } handle ;
912+ unsigned long long size ;
913+ unsigned int flags ;
914+ unsigned int reserved [16 ];
915+ } CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1 ;
916+ typedef CUDA_EXTERNAL_MEMORY_HANDLE_DESC_v1 CUDA_EXTERNAL_MEMORY_HANDLE_DESC ;
917+
918+ typedef struct CUDA_EXTERNAL_MEMORY_BUFFER_DESC_st {
919+ unsigned long long offset ;
920+ unsigned long long size ;
921+ unsigned int flags ;
922+ unsigned int reserved [16 ];
923+ } CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1 ;
924+ typedef CUDA_EXTERNAL_MEMORY_BUFFER_DESC_v1 CUDA_EXTERNAL_MEMORY_BUFFER_DESC ;
925+
926+ typedef struct CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_st {
927+ unsigned long long offset ;
928+ CUDA_ARRAY3D_DESCRIPTOR arrayDesc ;
929+ unsigned int numLevels ;
930+ unsigned int reserved [16 ];
931+ } CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1 ;
932+ typedef CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC_v1 CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC ;
933+
890934
891935/* Function types. */
892936typedef CUresult CUDAAPI tcuGetErrorString (CUresult error , const char * * pStr );
@@ -1116,6 +1160,11 @@ typedef CUresult CUDAAPI tcuGLSetBufferObjectMapFlags(GLuint buffer, unsigned in
11161160typedef CUresult CUDAAPI tcuGLMapBufferObjectAsync_v2 (CUdeviceptr * dptr , size_t * size , GLuint buffer , CUstream hStream );
11171161typedef CUresult CUDAAPI tcuGLUnmapBufferObjectAsync (GLuint buffer , CUstream hStream );
11181162
1163+ typedef CUresult CUDAAPI tcuImportExternalMemory (CUexternalMemory * extMem_out , const CUDA_EXTERNAL_MEMORY_HANDLE_DESC * memHandleDesc );
1164+ typedef CUresult CUDAAPI tcuExternalMemoryGetMappedBuffer (CUdeviceptr * devPtr , CUexternalMemory extMem , const CUDA_EXTERNAL_MEMORY_BUFFER_DESC * bufferDesc );
1165+ typedef CUresult CUDAAPI tcuExternalMemoryGetMappedMipmappedArray (CUmipmappedArray * mipmap , CUexternalMemory extMem , const CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC * mipmapDesc );
1166+ typedef CUresult CUDAAPI tcuDestroyExternalMemory (CUexternalMemory extMem );
1167+
11191168typedef const char * CUDAAPI tnvrtcGetErrorString (nvrtcResult result );
11201169typedef nvrtcResult CUDAAPI tnvrtcVersion (int * major , int * minor );
11211170typedef nvrtcResult CUDAAPI tnvrtcCreateProgram (nvrtcProgram * prog , const char * src , const char * name , int numHeaders , const char * * headers , const char * * includeNames );
@@ -1357,6 +1406,11 @@ extern tcuGLSetBufferObjectMapFlags *cuGLSetBufferObjectMapFlags;
13571406extern tcuGLMapBufferObjectAsync_v2 * cuGLMapBufferObjectAsync_v2 ;
13581407extern tcuGLUnmapBufferObjectAsync * cuGLUnmapBufferObjectAsync ;
13591408
1409+ extern tcuImportExternalMemory * cuImportExternalMemory ;
1410+ extern tcuExternalMemoryGetMappedBuffer * cuExternalMemoryGetMappedBuffer ;
1411+ extern tcuExternalMemoryGetMappedMipmappedArray * cuExternalMemoryGetMappedMipmappedArray ;
1412+ extern tcuDestroyExternalMemory * cuDestroyExternalMemory ;
1413+
13601414extern tnvrtcGetErrorString * nvrtcGetErrorString ;
13611415extern tnvrtcVersion * nvrtcVersion ;
13621416extern tnvrtcCreateProgram * nvrtcCreateProgram ;
0 commit comments