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();
60 const ID3D11DevicePtr d3d_device;
61 ID3D11Texture2DPtr d3d_input_texture;
65 tcuD3D11GetDevice *cuD3D11GetDevice;
66 tcuCtxCreate_v2 *cuCtxCreate;
67 tcuCtxDestroy_v2 *cuCtxDestroy;
68 tcuCtxPushCurrent_v2 *cuCtxPushCurrent;
69 tcuCtxPopCurrent_v2 *cuCtxPopCurrent;
70 tcuMemAllocPitch_v2 *cuMemAllocPitch;
71 tcuMemFree_v2 *cuMemFree;
72 tcuGraphicsD3D11RegisterResource *cuGraphicsD3D11RegisterResource;
73 tcuGraphicsUnregisterResource *cuGraphicsUnregisterResource;
74 tcuGraphicsMapResources *cuGraphicsMapResources;
75 tcuGraphicsUnmapResources *cuGraphicsUnmapResources;
76 tcuGraphicsSubResourceGetMappedArray *cuGraphicsSubResourceGetMappedArray;
77 tcuMemcpy2D_v2 *cuMemcpy2D;
79 } cuda_functions = {};
81 CUresult last_cuda_error = CUDA_SUCCESS;
82 CUcontext cuda_context =
nullptr;
83 CUgraphicsResource cuda_d3d_input_texture =
nullptr;
84 CUdeviceptr cuda_surface = 0;
85 size_t cuda_surface_pitch = 0;