cudaErrorInvalidResourceHandle cudaGraphicsMapResources

6 篇文章 0 订阅

在主线程中创建的cudaGraphicsResource 对象,主线程中进行cudaGraphicsMapResources 操作是正确的,但是在子线程中进行cudaGraphicsMapResources 操作却出错了,报错:400(cudaErrorInvalidResourceHandle)。
猜测应该是map操作不能夸线程的。
同样的,d3d中也是context在哪个线程创建,则需要在对应的线程进行D3D11Resource的资源创建,否则也是报错的。虽然cudaGraphicsResource 创建时没有显示的使用cudacontext,但是cudaresource也是准守这个原则的。
而对于resource 的访问则没有多线程的限制。当然为了安全可以添加锁。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cudaSuccess是CUDA API中定义的一个枚举类型,表示CUDA函数执行成功。在CUDA的头文件cudaError.h中定义了这个枚举类型。具体的定义如下: ``` typedef enum cudaError_enum { cudaSuccess = 0, cudaErrorInvalidValue = 1, cudaErrorMemoryAllocation = 2, cudaErrorInitializationError = 3, cudaErrorCudartUnloading = 4, cudaErrorProfilerDisabled = 5, cudaErrorProfilerNotInitialized = 6, cudaErrorProfilerAlreadyStarted = 7, cudaErrorProfilerAlreadyStopped = 8, cudaErrorInvalidConfiguration = 9, cudaErrorInvalidPitchValue = 12, cudaErrorInvalidSymbol = 13, cudaErrorInvalidDevicePointer = 17, cudaErrorInvalidMemcpyDirection = 21, cudaErrorInsufficientDriver = 35, cudaErrorMissingConfiguration = 52, cudaErrorPriorLaunchFailure = 53, cudaErrorInvalidDeviceFunction = 98, cudaErrorNoDevice = 100, cudaErrorInvalidDevice = 101, cudaErrorInvalidImage = 200, cudaErrorInvalidContext = 201, cudaErrorContextAlreadyCurrent = 202, cudaErrorMapFailed = 205, cudaErrorUnmapFailed = 206, cudaErrorArrayIsMapped = 207, cudaErrorAlreadyMapped = 208, cudaErrorNoBinaryForGpu = 209, cudaErrorAlreadyAcquired = 210, cudaErrorNotMapped = 211, cudaErrorNotMappedAsArray = 212, cudaErrorNotMappedAsPointer = 213, cudaErrorECCUncorrectable = 214, cudaErrorUnsupportedLimit = 215, cudaErrorContextAlreadyInUse = 216, cudaErrorPeerAccessUnsupported = 217, cudaErrorInvalidPtx = 218, cudaErrorInvalidGraphicsContext = 219, cudaErrorNvlinkUncorrectable = 220, cudaErrorInvalidSource = 300, cudaErrorFileNotFound = 301, cudaErrorSharedObjectSymbolNotFound = 302, cudaErrorSharedObjectInitFailed = 303, cudaErrorOperatingSystem = 304, cudaErrorInvalidResourceHandle = 400, cudaErrorIllegalState = 401, cudaErrorSymbolNotFound = 500, cudaErrorNotReady = 600, cudaErrorIllegalAddress = 700, cudaErrorLaunchOutOfResources = 701, cudaErrorLaunchTimeout = 702, cudaErrorLaunchIncompatibleTexturing = 703, cudaErrorPeerAccessAlreadyEnabled = 704, cudaErrorPeerAccessNotEnabled = 705, cudaErrorPrimaryContextActive = 708, cudaErrorContextIsDestroyed = 709, cudaErrorAssert = 710, cudaErrorTooManyPeers = 711, cudaErrorHostMemoryAlreadyRegistered = 712, cudaErrorHostMemoryNotRegistered = 713, cudaErrorHardwareStackError = 714, cudaErrorIllegalInstruction = 715, cudaErrorMisalignedAddress = 716, cudaErrorInvalidAddressSpace = 717, cudaErrorInvalidPc = 718, cudaErrorIllegalAddressSpace = 719, cudaErrorInvalidSourceSize = 720, cudaErrorInvalidMemcpyHandle = 721, cudaErrorInvalidKernelImage = 722, cudaErrorDeviceUninitialized = 723, cudaErrorMapBufferObjectFailed = 724, cudaErrorUnmapBufferObjectFailed = 725, cudaErrorArrayDoesNotExist = 726, cudaErrorDeviceAlreadyInUse = 727, cudaErrorProfilerDisabledForDevice = 728, cudaErrorProfilerNotInitializedForDevice = 729, cudaErrorProfilerAlreadyStartedForDevice = 730, cudaErrorProfilerAlreadyStoppedForDevice = 731, cudaErrorAssertUnfiled = 732, cudaErrorAssertFileNotFound = 733, cudaErrorAssertLineNotFound = 734, cudaErrorAssertOffsetOutOfBounds = 735, cudaErrorAssertStrideOutOfBounds = 736, cudaErrorAssertOutOfMemory = 737, cudaErrorAssertPreambleNotFound = 738, cudaErrorAssertParamMismatch = 739, cudaErrorTextureNotBound = 740, cudaErrorTextureFetchFailed = 741, cudaErrorTextureNotMapped = 742, cudaErrorTextureNotInLinearMemory = 743, cudaErrorTextureReadModeInvalid = 744, cudaErrorInvalidSurface = 2000, cudaErrorSurfaceAlreadyMapped = 2001, cudaErrorSurfaceNotMapped = 2002, cudaErrorSurfaceCudaMallocReturned = 2003, cudaErrorSurfaceInvalidValue = 2004, cudaErrorDuplicateVariableName = 2010, cudaErrorDuplicateTextureName = 2011, cudaErrorDuplicateSurfaceName = 2012, cudaErrorDevicesUnavailable = 2013, cudaErrorInvalidKernelArgument = 2014, cudaErrorInvalidTexture = 2015, cudaErrorInvalidSurface = 2016, cudaErrorDuplicateLayerName = 2017, cudaErrorIncompatibleDriverContext = 2018, cudaErrorMissingSampleLocation = 2019, cudaErrorInvalidFilterSetting = 2020, cudaErrorInvalidNormSetting = 2021, cudaErrorMixedDeviceExecution = 2022, cudaErrorCudartStaticInitializationFailure = 2023, cudaErrorUnknown = 9999 } cudaError_t; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值