| 468 | } |
| 469 | |
| 470 | Status Run() override { |
| 471 | if (gl_interop_fabric_) { |
| 472 | RETURN_IF_ERROR(gl_interop_fabric_->Start()); |
| 473 | } |
| 474 | for (auto& obj : inputs_) { |
| 475 | RETURN_IF_ERROR(obj->CopyFromExternalObject()); |
| 476 | } |
| 477 | RETURN_IF_ERROR(context_->AddToQueue(environment_->queue())); |
| 478 | clFlush(environment_->queue()->queue()); |
| 479 | for (auto& obj : outputs_) { |
| 480 | RETURN_IF_ERROR(obj->CopyToExternalObject()); |
| 481 | } |
| 482 | if (gl_interop_fabric_) { |
| 483 | RETURN_IF_ERROR(gl_interop_fabric_->Finish()); |
| 484 | } |
| 485 | return OkStatus(); |
| 486 | } |
| 487 | |
| 488 | private: |
| 489 | static Status LinkTensors(const std::vector<TensorTieDef>& defs, |
no test coverage detected