32 init_library()
override;
35 create_and_register_input_buffer()
override;
38 synchronize_input_buffer()
override;
41 cuda_succeeded(CUresult result);
44 cuda_failed(CUresult result);
46 struct autopop_context {
49 pushed_context(pushed_context) {
55 operator bool()
const {
56 return pushed_context !=
nullptr;
60 CUcontext pushed_context =
nullptr;
67 const ID3D11DevicePtr d3d_device;
68 ID3D11Texture2DPtr d3d_input_texture;
72 tcuD3D11GetDevice *cuD3D11GetDevice;
73 tcuCtxCreate_v2 *cuCtxCreate;
74 tcuCtxDestroy_v2 *cuCtxDestroy;
75 tcuCtxPushCurrent_v2 *cuCtxPushCurrent;
76 tcuCtxPopCurrent_v2 *cuCtxPopCurrent;
77 tcuMemAllocPitch_v2 *cuMemAllocPitch;
78 tcuMemFree_v2 *cuMemFree;
79 tcuGraphicsD3D11RegisterResource *cuGraphicsD3D11RegisterResource;
80 tcuGraphicsUnregisterResource *cuGraphicsUnregisterResource;
81 tcuGraphicsMapResources *cuGraphicsMapResources;
82 tcuGraphicsUnmapResources *cuGraphicsUnmapResources;
83 tcuGraphicsSubResourceGetMappedArray *cuGraphicsSubResourceGetMappedArray;
84 tcuMemcpy2D_v2 *cuMemcpy2D;
86 } cuda_functions = {};
88 CUresult last_cuda_error = CUDA_SUCCESS;
89 CUcontext cuda_context =
nullptr;
90 CUgraphicsResource cuda_d3d_input_texture =
nullptr;
91 CUdeviceptr cuda_surface = 0;
92 size_t cuda_surface_pitch = 0;