Hello community, here is the log from the commit of package ffnvcodec for openSUSE:Factory checked in at 2018-12-06 12:18:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ffnvcodec (Old) and /work/SRC/openSUSE:Factory/.ffnvcodec.new.19453 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ffnvcodec" Thu Dec 6 12:18:59 2018 rev:5 rq:655448 version:8.2.15.6 Changes: -------- --- /work/SRC/openSUSE:Factory/ffnvcodec/ffnvcodec.changes 2018-11-08 09:49:27.665031160 +0100 +++ /work/SRC/openSUSE:Factory/.ffnvcodec.new.19453/ffnvcodec.changes 2018-12-06 12:19:05.997404986 +0100 @@ -1,0 +2,8 @@ +Wed Dec 5 23:59:44 UTC 2018 - Martin Herkt <9+suse@cirno.systems> + +- Update to version 8.2.15.6 + * CUDA 10: Add external semaphore API + * Add a subset of CUDA kernel interaction API + * Add CUDA function cuMemAllocPitch + +------------------------------------------------------------------- Old: ---- nv-codec-headers-8.2.15.5.tar.xz New: ---- nv-codec-headers-8.2.15.6.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ffnvcodec.spec ++++++ --- /var/tmp/diff_new_pack.I2UB4J/_old 2018-12-06 12:19:06.509404437 +0100 +++ /var/tmp/diff_new_pack.I2UB4J/_new 2018-12-06 12:19:06.513404433 +0100 @@ -17,7 +17,7 @@ Name: ffnvcodec -Version: 8.2.15.5 +Version: 8.2.15.6 Release: 0 Summary: FFmpeg version of NVIDIA codec API headers License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.I2UB4J/_old 2018-12-06 12:19:06.545404399 +0100 +++ /var/tmp/diff_new_pack.I2UB4J/_new 2018-12-06 12:19:06.545404399 +0100 @@ -4,7 +4,7 @@ <param name="scm">git</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">n([0-9\.]*)</param> - <param name="revision">n8.2.15.5</param> + <param name="revision">n8.2.15.6</param> </service> <service mode="disabled" name="recompress"> <param name="file">*.tar</param> ++++++ nv-codec-headers-8.2.15.5.tar.xz -> nv-codec-headers-8.2.15.6.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nv-codec-headers-8.2.15.5/README new/nv-codec-headers-8.2.15.6/README --- old/nv-codec-headers-8.2.15.5/README 2018-11-02 18:38:27.000000000 +0100 +++ new/nv-codec-headers-8.2.15.6/README 2018-11-22 17:56:11.000000000 +0100 @@ -1,6 +1,6 @@ FFmpeg version of headers required to interface with Nvidias codec APIs. -Corresponds to Video Codec SDK version 8.2.25. +Corresponds to Video Codec SDK version 8.2.15. Minimum required driver versions: Linux: 396.24 or newer diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nv-codec-headers-8.2.15.5/ffnvcodec.pc.in new/nv-codec-headers-8.2.15.6/ffnvcodec.pc.in --- old/nv-codec-headers-8.2.15.5/ffnvcodec.pc.in 2018-11-02 18:38:27.000000000 +0100 +++ new/nv-codec-headers-8.2.15.6/ffnvcodec.pc.in 2018-11-22 17:56:11.000000000 +0100 @@ -3,5 +3,5 @@ Name: ffnvcodec Description: FFmpeg version of Nvidia Codec SDK headers -Version: 8.2.15.5 +Version: 8.2.15.6 Cflags: -I${includedir} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nv-codec-headers-8.2.15.5/include/ffnvcodec/dynlink_cuda.h new/nv-codec-headers-8.2.15.6/include/ffnvcodec/dynlink_cuda.h --- old/nv-codec-headers-8.2.15.5/include/ffnvcodec/dynlink_cuda.h 2018-11-02 18:38:27.000000000 +0100 +++ new/nv-codec-headers-8.2.15.6/include/ffnvcodec/dynlink_cuda.h 2018-11-22 17:56:11.000000000 +0100 @@ -45,9 +45,13 @@ typedef void* CUcontext; typedef void* CUstream; typedef void* CUevent; +typedef void* CUfunction; +typedef void* CUmodule; +typedef void* CUtexObject; typedef void* CUmipmappedArray; typedef void* CUgraphicsResource; typedef void* CUexternalMemory; +typedef void* CUexternalSemaphore; #if defined(__x86_64) || defined(AMD64) || defined(_M_AMD64) typedef unsigned long long CUdeviceptr; #else @@ -109,6 +113,25 @@ CU_LIMIT_DEV_RUNTIME_PENDING_LAUNCH_COUNT = 4 } CUlimit; +typedef enum CUresourcetype_enum { + CU_RESOURCE_TYPE_ARRAY = 0x00, + CU_RESOURCE_TYPE_MIPMAPPED_ARRAY = 0x01, + CU_RESOURCE_TYPE_LINEAR = 0x02, + CU_RESOURCE_TYPE_PITCH2D = 0x03 +} CUresourcetype; + +typedef enum CUaddress_mode_enum { + CU_TR_ADDRESS_MODE_WRAP = 0, + CU_TR_ADDRESS_MODE_CLAMP = 1, + CU_TR_ADDRESS_MODE_MIRROR = 2, + CU_TR_ADDRESS_MODE_BORDER = 3 +} CUaddress_mode; + +typedef enum CUfilter_mode_enum { + CU_TR_FILTER_MODE_POINT = 0, + CU_TR_FILTER_MODE_LINEAR = 1 +} CUfilter_mode; + typedef enum CUgraphicsRegisterFlags_enum { CU_GRAPHICS_REGISTER_FLAGS_NONE = 0, CU_GRAPHICS_REGISTER_FLAGS_READ_ONLY = 1, @@ -125,6 +148,13 @@ CU_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE = 5, } CUexternalMemoryHandleType; +typedef enum CUexternalSemaphoreHandleType_enum { + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD = 1, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32 = 2, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT = 3, + CU_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE = 4 +} CUexternalSemaphoreHandleType; + #ifndef CU_UUID_HAS_BEEN_DEFINED #define CU_UUID_HAS_BEEN_DEFINED typedef struct CUuuid_st { @@ -153,6 +183,52 @@ size_t Height; } CUDA_MEMCPY2D; +typedef struct CUDA_RESOURCE_DESC_st { + CUresourcetype resType; + union { + struct { + CUarray hArray; + } array; + struct { + CUmipmappedArray hMipmappedArray; + } mipmap; + struct { + CUdeviceptr devPtr; + CUarray_format format; + unsigned int numChannels; + size_t sizeInBytes; + } linear; + struct { + CUdeviceptr devPtr; + CUarray_format format; + unsigned int numChannels; + size_t width; + size_t height; + size_t pitchInBytes; + } pitch2D; + struct { + int reserved[32]; + } reserved; + } res; + unsigned int flags; +} CUDA_RESOURCE_DESC; + +typedef struct CUDA_TEXTURE_DESC_st { + CUaddress_mode addressMode[3]; + CUfilter_mode filterMode; + unsigned int flags; + unsigned int maxAnisotropy; + CUfilter_mode mipmapFilterMode; + float mipmapLevelBias; + float minMipmapLevelClamp; + float maxMipmapLevelClamp; + float borderColor[4]; + int reserved[12]; +} CUDA_TEXTURE_DESC; + +/* Unused type */ +typedef struct CUDA_RESOURCE_VIEW_DESC_st CUDA_RESOURCE_VIEW_DESC; + typedef unsigned int GLenum; typedef unsigned int GLuint; @@ -183,6 +259,32 @@ unsigned int reserved[16]; } CUDA_EXTERNAL_MEMORY_BUFFER_DESC; +typedef struct CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC_st { + CUexternalSemaphoreHandleType type; + union { + int fd; + struct { + void *handle; + const void *name; + } win32; + } handle; + unsigned int flags; + unsigned int reserved[16]; +} CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC; + +typedef struct CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS_st { + struct { + struct { + unsigned long long value; + } fence; + unsigned int reserved[16]; + } params; + unsigned int flags; + unsigned int reserved[16]; +} CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS; + +typedef CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS; + typedef struct CUDA_ARRAY3D_DESCRIPTOR_st { size_t Width; size_t Height; @@ -203,6 +305,7 @@ #define CU_STREAM_NON_BLOCKING 1 #define CU_EVENT_BLOCKING_SYNC 1 #define CU_EVENT_DISABLE_TIMING 2 +#define CU_TRSF_READ_AS_INTEGER 1 typedef void CUDAAPI CUstreamCallback(CUstream hStream, CUresult status, void *userdata); @@ -219,6 +322,7 @@ typedef CUresult CUDAAPI tcuCtxPopCurrent_v2(CUcontext *pctx); typedef CUresult CUDAAPI tcuCtxDestroy_v2(CUcontext ctx); typedef CUresult CUDAAPI tcuMemAlloc_v2(CUdeviceptr *dptr, size_t bytesize); +typedef CUresult CUDAAPI tcuMemAllocPitch_v2(CUdeviceptr *dptr, size_t *pPitch, size_t WidthInBytes, size_t Height, unsigned int ElementSizeBytes); typedef CUresult CUDAAPI tcuMemFree_v2(CUdeviceptr dptr); typedef CUresult CUDAAPI tcuMemcpy2D_v2(const CUDA_MEMCPY2D *pcopy); typedef CUresult CUDAAPI tcuMemcpy2DAsync_v2(const CUDA_MEMCPY2D *pcopy, CUstream hStream); @@ -236,6 +340,13 @@ typedef CUresult CUDAAPI tcuEventQuery(CUevent hEvent); typedef CUresult CUDAAPI tcuEventRecord(CUevent hEvent, CUstream hStream); +typedef CUresult CUDAAPI tcuLaunchKernel(CUfunction f, unsigned int gridDimX, unsigned int gridDimY, unsigned int gridDimZ, unsigned int blockDimX, unsigned int blockDimY, unsigned int blockDimZ, unsigned int sharedMemBytes, CUstream hStream, void** kernelParams, void** extra); +typedef CUresult CUDAAPI tcuModuleLoadData(CUmodule* module, const void* image); +typedef CUresult CUDAAPI tcuModuleUnload(CUmodule hmod); +typedef CUresult CUDAAPI tcuModuleGetFunction(CUfunction* hfunc, CUmodule hmod, const char* name); +typedef CUresult CUDAAPI tcuTexObjectCreate(CUtexObject* pTexObject, const CUDA_RESOURCE_DESC* pResDesc, const CUDA_TEXTURE_DESC* pTexDesc, const CUDA_RESOURCE_VIEW_DESC* pResViewDesc); +typedef CUresult CUDAAPI tcuTexObjectDestroy(CUtexObject texObject); + typedef CUresult CUDAAPI tcuGLGetDevices_v2(unsigned int* pCudaDeviceCount, CUdevice* pCudaDevices, unsigned int cudaDeviceCount, CUGLDeviceList deviceList); typedef CUresult CUDAAPI tcuGraphicsGLRegisterImage(CUgraphicsResource* pCudaResource, GLuint image, GLenum target, unsigned int Flags); typedef CUresult CUDAAPI tcuGraphicsUnregisterResource(CUgraphicsResource resource); @@ -248,4 +359,9 @@ typedef CUresult CUDAAPI tcuExternalMemoryGetMappedBuffer(CUdeviceptr* devPtr, CUexternalMemory extMem, const CUDA_EXTERNAL_MEMORY_BUFFER_DESC* bufferDesc); typedef CUresult CUDAAPI tcuExternalMemoryGetMappedMipmappedArray(CUmipmappedArray* mipmap, CUexternalMemory extMem, const CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC* mipmapDesc); typedef CUresult CUDAAPI tcuMipmappedArrayGetLevel(CUarray* pLevelArray, CUmipmappedArray hMipmappedArray, unsigned int level); + +typedef CUresult CUDAAPI tcuImportExternalSemaphore(CUexternalSemaphore* extSem_out, const CUDA_EXTERNAL_SEMAPHORE_HANDLE_DESC* semHandleDesc); +typedef CUresult CUDAAPI tcuDestroyExternalSemaphore(CUexternalSemaphore extSem); +typedef CUresult CUDAAPI tcuSignalExternalSemaphoresAsync(const CUexternalSemaphore* extSemArray, const CUDA_EXTERNAL_SEMAPHORE_SIGNAL_PARAMS* paramsArray, unsigned int numExtSems, CUstream stream); +typedef CUresult CUDAAPI tcuWaitExternalSemaphoresAsync(const CUexternalSemaphore* extSemArray, const CUDA_EXTERNAL_SEMAPHORE_WAIT_PARAMS* paramsArray, unsigned int numExtSems, CUstream stream); #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/nv-codec-headers-8.2.15.5/include/ffnvcodec/dynlink_loader.h new/nv-codec-headers-8.2.15.6/include/ffnvcodec/dynlink_loader.h --- old/nv-codec-headers-8.2.15.5/include/ffnvcodec/dynlink_loader.h 2018-11-02 18:38:27.000000000 +0100 +++ new/nv-codec-headers-8.2.15.6/include/ffnvcodec/dynlink_loader.h 2018-11-22 17:56:11.000000000 +0100 @@ -149,6 +149,7 @@ tcuCtxPopCurrent_v2 *cuCtxPopCurrent; tcuCtxDestroy_v2 *cuCtxDestroy; tcuMemAlloc_v2 *cuMemAlloc; + tcuMemAllocPitch_v2 *cuMemAllocPitch; tcuMemFree_v2 *cuMemFree; tcuMemcpy2D_v2 *cuMemcpy2D; tcuMemcpy2DAsync_v2 *cuMemcpy2DAsync; @@ -166,6 +167,13 @@ tcuEventQuery *cuEventQuery; tcuEventRecord *cuEventRecord; + tcuLaunchKernel *cuLaunchKernel; + tcuModuleLoadData *cuModuleLoadData; + tcuModuleUnload *cuModuleUnload; + tcuModuleGetFunction *cuModuleGetFunction; + tcuTexObjectCreate *cuTexObjectCreate; + tcuTexObjectDestroy *cuTexObjectDestroy; + tcuGLGetDevices_v2 *cuGLGetDevices; tcuGraphicsGLRegisterImage *cuGraphicsGLRegisterImage; tcuGraphicsUnregisterResource *cuGraphicsUnregisterResource; @@ -180,6 +188,11 @@ tcuMipmappedArrayGetLevel *cuMipmappedArrayGetLevel; + tcuImportExternalSemaphore *cuImportExternalSemaphore; + tcuDestroyExternalSemaphore *cuDestroyExternalSemaphore; + tcuSignalExternalSemaphoresAsync *cuSignalExternalSemaphoresAsync; + tcuWaitExternalSemaphoresAsync *cuWaitExternalSemaphoresAsync; + FFNV_LIB_HANDLE lib; } CudaFunctions; #else @@ -258,6 +271,7 @@ LOAD_SYMBOL(cuCtxPopCurrent, tcuCtxPopCurrent_v2, "cuCtxPopCurrent_v2"); LOAD_SYMBOL(cuCtxDestroy, tcuCtxDestroy_v2, "cuCtxDestroy_v2"); LOAD_SYMBOL(cuMemAlloc, tcuMemAlloc_v2, "cuMemAlloc_v2"); + LOAD_SYMBOL(cuMemAllocPitch, tcuMemAllocPitch_v2, "cuMemAllocPitch_v2"); LOAD_SYMBOL(cuMemFree, tcuMemFree_v2, "cuMemFree_v2"); LOAD_SYMBOL(cuMemcpy2D, tcuMemcpy2D_v2, "cuMemcpy2D_v2"); LOAD_SYMBOL(cuMemcpy2DAsync, tcuMemcpy2DAsync_v2, "cuMemcpy2DAsync_v2"); @@ -275,6 +289,13 @@ LOAD_SYMBOL(cuEventQuery, tcuEventQuery, "cuEventQuery"); LOAD_SYMBOL(cuEventRecord, tcuEventRecord, "cuEventRecord"); + LOAD_SYMBOL(cuLaunchKernel, tcuLaunchKernel, "cuLaunchKernel"); + LOAD_SYMBOL(cuModuleLoadData, tcuModuleLoadData, "cuModuleLoadData"); + LOAD_SYMBOL(cuModuleUnload, tcuModuleUnload, "cuModuleUnload"); + LOAD_SYMBOL(cuModuleGetFunction, tcuModuleGetFunction, "cuModuleGetFunction"); + LOAD_SYMBOL(cuTexObjectCreate, tcuTexObjectCreate, "cuTexObjectCreate"); + LOAD_SYMBOL(cuTexObjectDestroy, tcuTexObjectDestroy, "cuTexObjectDestroy"); + LOAD_SYMBOL(cuGLGetDevices, tcuGLGetDevices_v2, "cuGLGetDevices_v2"); LOAD_SYMBOL(cuGraphicsGLRegisterImage, tcuGraphicsGLRegisterImage, "cuGraphicsGLRegisterImage"); LOAD_SYMBOL(cuGraphicsUnregisterResource, tcuGraphicsUnregisterResource, "cuGraphicsUnregisterResource"); @@ -289,6 +310,11 @@ LOAD_SYMBOL_OPT(cuExternalMemoryGetMappedMipmappedArray, tcuExternalMemoryGetMappedMipmappedArray, "cuExternalMemoryGetMappedMipmappedArray"); LOAD_SYMBOL_OPT(cuMipmappedArrayGetLevel, tcuMipmappedArrayGetLevel, "cuMipmappedArrayGetLevel"); + LOAD_SYMBOL_OPT(cuImportExternalSemaphore, tcuImportExternalSemaphore, "cuImportExternalSemaphore"); + LOAD_SYMBOL_OPT(cuDestroyExternalSemaphore, tcuDestroyExternalSemaphore, "cuDestroyExternalSemaphore"); + LOAD_SYMBOL_OPT(cuSignalExternalSemaphoresAsync, tcuSignalExternalSemaphoresAsync, "cuSignalExternalSemaphoresAsync"); + LOAD_SYMBOL_OPT(cuWaitExternalSemaphoresAsync, tcuWaitExternalSemaphoresAsync, "cuWaitExternalSemaphoresAsync"); + GENERIC_LOAD_FUNC_FINALE(cuda); } #endif