From aa5c4945d602452737c32168021847ee1593d914 Mon Sep 17 00:00:00 2001 From: Anatoliy Talamanov Date: Mon, 23 Aug 2021 16:52:49 +0300 Subject: [PATCH] Fix GExecutor WriteBackExec --- modules/gapi/src/executor/gexecutor.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/gapi/src/executor/gexecutor.cpp b/modules/gapi/src/executor/gexecutor.cpp index 9b51e70d5d..2ca675c7df 100644 --- a/modules/gapi/src/executor/gexecutor.cpp +++ b/modules/gapi/src/executor/gexecutor.cpp @@ -157,10 +157,14 @@ void writeBackExec(const Mag& mag, const RcDesc &rc, GRunArgP &g_arg) // FIXME: // Rework, find a better way to check if there should be // a real copy (add a pass to StreamingBackend?) + // NB: In case RMat adapter not equal to "RMatAdapter" need to + // copy data back to the host as well. + // FIXME: Rename "RMatAdapter" to "OpenCVAdapter". auto& out_mat = *util::get(g_arg); const auto& rmat = mag.template slot().at(rc.id); auto* adapter = rmat.get(); - if (adapter != nullptr && out_mat.data != adapter->data()) { + if ((adapter != nullptr && out_mat.data != adapter->data()) || + (adapter == nullptr)) { auto view = rmat.access(RMat::Access::R); asMat(view).copyTo(out_mat); }