30 bool init_library()
override;
32 bool create_and_register_input_buffer()
override;
34 bool synchronize_input_buffer()
override;
36 bool cuda_succeeded(CUresult result);
38 bool cuda_failed(CUresult result);
40 struct autopop_context {
43 pushed_context(pushed_context) {
48 explicit operator bool()
const {
49 return pushed_context !=
nullptr;
53 CUcontext pushed_context =
nullptr;
56 autopop_context push_context();
63 tcuD3D11GetDevice *cuD3D11GetDevice;
64 tcuCtxCreate_v2 *cuCtxCreate;
65 tcuCtxDestroy_v2 *cuCtxDestroy;
66 tcuCtxPushCurrent_v2 *cuCtxPushCurrent;
67 tcuCtxPopCurrent_v2 *cuCtxPopCurrent;
68 tcuMemAllocPitch_v2 *cuMemAllocPitch;
69 tcuMemFree_v2 *cuMemFree;
70 tcuGraphicsD3D11RegisterResource *cuGraphicsD3D11RegisterResource;
71 tcuGraphicsUnregisterResource *cuGraphicsUnregisterResource;
72 tcuGraphicsMapResources *cuGraphicsMapResources;
73 tcuGraphicsUnmapResources *cuGraphicsUnmapResources;
74 tcuGraphicsSubResourceGetMappedArray *cuGraphicsSubResourceGetMappedArray;
75 tcuMemcpy2D_v2 *cuMemcpy2D;
77 } cuda_functions = {};
79 CUresult last_cuda_error = CUDA_SUCCESS;
80 CUcontext cuda_context =
nullptr;
81 CUgraphicsResource cuda_d3d_input_texture =
nullptr;
82 CUdeviceptr cuda_surface = 0;
83 size_t cuda_surface_pitch = 0;
nvenc_d3d11(NV_ENC_DEVICE_TYPE device_type, ::nvenc::shared_dll dll)
Initialize an NVENC session wrapper for D3D11 input textures.
Definition nvenc_d3d11.cpp:13
std::shared_ptr< std::remove_pointer_t< HMODULE > > shared_dll
Shared ownership wrapper for a loaded Windows module.
Definition nvenc_shared_dll.h:20