31 bool init_library()
override;
33 bool create_and_register_input_buffer()
override;
35 bool synchronize_input_buffer()
override;
37 bool cuda_succeeded(CUresult result);
39 bool cuda_failed(CUresult result);
41 struct autopop_context {
44 pushed_context(pushed_context) {
49 explicit operator bool()
const {
50 return pushed_context !=
nullptr;
54 CUcontext pushed_context =
nullptr;
57 autopop_context push_context();
59 const ID3D11DevicePtr d3d_device;
60 ID3D11Texture2DPtr d3d_input_texture;
64 tcuD3D11GetDevice *cuD3D11GetDevice;
65 tcuCtxCreate_v2 *cuCtxCreate;
66 tcuCtxDestroy_v2 *cuCtxDestroy;
67 tcuCtxPushCurrent_v2 *cuCtxPushCurrent;
68 tcuCtxPopCurrent_v2 *cuCtxPopCurrent;
69 tcuMemAllocPitch_v2 *cuMemAllocPitch;
70 tcuMemFree_v2 *cuMemFree;
71 tcuGraphicsD3D11RegisterResource *cuGraphicsD3D11RegisterResource;
72 tcuGraphicsUnregisterResource *cuGraphicsUnregisterResource;
73 tcuGraphicsMapResources *cuGraphicsMapResources;
74 tcuGraphicsUnmapResources *cuGraphicsUnmapResources;
75 tcuGraphicsSubResourceGetMappedArray *cuGraphicsSubResourceGetMappedArray;
76 tcuMemcpy2D_v2 *cuMemcpy2D;
78 } cuda_functions = {};
80 CUresult last_cuda_error = CUDA_SUCCESS;
81 CUcontext cuda_context =
nullptr;
82 CUgraphicsResource cuda_d3d_input_texture =
nullptr;
83 CUdeviceptr cuda_surface = 0;
84 size_t cuda_surface_pitch = 0;