Transferring D3D textures to OpenGL or Vulkan contexts in Winelib

Michael Müller michael at fds-team.de
Tue May 16 12:17:32 CDT 2017


Am 16.05.2017 um 16:40 schrieb Józef Kucia:
> I'm just a bit skeptical about usefulness of this extension in Wine
> besides your use-case.

This would also be useful for the CUDA implementation in Wine Staging.
CUDA also allows accessing OpenGL and Direct3D buffers. So far it is
only implemented for OpenGL, but if there was an easy way to get the
OpenGL handles for a Direct3D object, it would be possible to implement
at least some of these functions:

@ stub cuD3D10CtxCreate
@ stub cuD3D10CtxCreateOnDevice
@ stub cuD3D10CtxCreate_v2
@ stub cuD3D10GetDevice
@ stub cuD3D10GetDevices
@ stub cuD3D10GetDirect3DDevice
@ stub cuD3D10MapResources
@ stub cuD3D10RegisterResource
@ stub cuD3D10ResourceGetMappedArray
@ stub cuD3D10ResourceGetMappedPitch
@ stub cuD3D10ResourceGetMappedPitch_v2
@ stub cuD3D10ResourceGetMappedPointer
@ stub cuD3D10ResourceGetMappedPointer_v2
@ stub cuD3D10ResourceGetMappedSize
@ stub cuD3D10ResourceGetMappedSize_v2
@ stub cuD3D10ResourceGetSurfaceDimensions
@ stub cuD3D10ResourceGetSurfaceDimensions_v2
@ stub cuD3D10ResourceSetMapFlags
@ stub cuD3D10UnmapResources
@ stub cuD3D10UnregisterResource
@ stub cuD3D11CtxCreate
@ stub cuD3D11CtxCreateOnDevice
@ stub cuD3D11CtxCreate_v2
@ stub cuD3D11GetDevice
@ stub cuD3D11GetDevices
@ stub cuD3D11GetDirect3DDevice
@ stub cuD3D9Begin
@ stdcall cuD3D9CtxCreate(ptr ptr long ptr) wine_cuD3D9CtxCreate
@ stub cuD3D9CtxCreateOnDevice
@ stub cuD3D9CtxCreate_v2
@ stub cuD3D9End
@ stdcall cuD3D9GetDevice(ptr str) wine_cuD3D9GetDevice
@ stub cuD3D9GetDevices
@ stub cuD3D9GetDirect3DDevice
@ stub cuD3D9MapResources
@ stub cuD3D9MapVertexBuffer
@ stub cuD3D9MapVertexBuffer_v2
@ stub cuD3D9RegisterResource
@ stub cuD3D9RegisterVertexBuffer
@ stub cuD3D9ResourceGetMappedArray
@ stub cuD3D9ResourceGetMappedPitch
@ stub cuD3D9ResourceGetMappedPitch_v2
@ stub cuD3D9ResourceGetMappedPointer
@ stub cuD3D9ResourceGetMappedPointer_v2
@ stub cuD3D9ResourceGetMappedSize
@ stub cuD3D9ResourceGetMappedSize_v2
@ stub cuD3D9ResourceGetSurfaceDimensions
@ stub cuD3D9ResourceGetSurfaceDimensions_v2
@ stub cuD3D9ResourceSetMapFlags
@ stub cuD3D9UnmapResources
@ stub cuD3D9UnmapVertexBuffer
@ stub cuD3D9UnregisterResource
@ stub cuD3D9UnregisterVertexBuffer
@ stub cuGraphicsD3D10RegisterResource
@ stub cuGraphicsD3D11RegisterResource
@ stub cuGraphicsD3D9RegisterResource

based on

@ stdcall cuGLCtxCreate(ptr long long)
@ stdcall cuGLCtxCreate_v2(ptr long long)
@ stdcall cuGLGetDevices(ptr ptr long long)
@ stdcall cuGLInit()
@ stdcall cuGLMapBufferObject(ptr ptr long)
@ stdcall cuGLMapBufferObjectAsync(ptr ptr long ptr)
@ stdcall cuGLMapBufferObjectAsync_v2(ptr ptr long ptr)
@ stdcall cuGLMapBufferObject_v2(ptr ptr long)
@ stdcall cuGLRegisterBufferObject(long)
@ stdcall cuGLSetBufferObjectMapFlags(long long)
@ stdcall cuGLUnmapBufferObject(long)
@ stdcall cuGLUnmapBufferObjectAsync(long ptr)
@ stdcall cuGLUnregisterBufferObject(long)
@ stdcall cuGetErrorName(long ptr)
@ stdcall cuGetErrorString(long ptr)
@ stdcall cuGetExportTable(ptr ptr)
@ stdcall cuGraphicsGLRegisterBuffer(ptr long long)
@ stdcall cuGraphicsGLRegisterImage(ptr long long long)




More information about the wine-devel mailing list