13 HIPDeviceGraphicsInterop::HIPDeviceGraphicsInterop(HIPDeviceQueue *
queue)
14 : queue_(
queue), device_(static_cast<HIPDevice *>(
queue->device))
18 HIPDeviceGraphicsInterop::~HIPDeviceGraphicsInterop()
20 HIPContextScope scope(device_);
22 if (hip_graphics_resource_) {
23 hip_device_assert(device_, hipGraphicsUnregisterResource(hip_graphics_resource_));
27 void HIPDeviceGraphicsInterop::set_display_interop(
35 if (opengl_pbo_id_ == display_interop.
opengl_pbo_id && buffer_area_ == new_buffer_area) {
39 HIPContextScope scope(device_);
41 if (hip_graphics_resource_) {
42 hip_device_assert(device_, hipGraphicsUnregisterResource(hip_graphics_resource_));
45 const hipError_t
result = hipGraphicsGLRegisterBuffer(
46 &hip_graphics_resource_, display_interop.
opengl_pbo_id, hipGraphicsRegisterFlagsNone);
47 if (
result != hipSuccess) {
48 LOG(ERROR) <<
"Error registering OpenGL buffer: " << hipewErrorString(
result);
52 buffer_area_ = new_buffer_area;
57 if (!hip_graphics_resource_) {
61 HIPContextScope scope(device_);
63 hipDeviceptr_t hip_buffer;
66 hip_device_assert(device_,
67 hipGraphicsMapResources(1, &hip_graphics_resource_, queue_->stream()));
69 device_, hipGraphicsResourceGetMappedPointer(&hip_buffer, &bytes, hip_graphics_resource_));
74 hipMemsetD8Async(
static_cast<hipDeviceptr_t
>(hip_buffer), 0, bytes, queue_->stream()));
82 void HIPDeviceGraphicsInterop::unmap()
84 HIPContextScope scope(device_);
86 hip_device_assert(device_,
87 hipGraphicsUnmapResources(1, &hip_graphics_resource_, queue_->stream()));
#define CCL_NAMESPACE_END
SocketIndexByIdentifierMap * map