Merge pull request #20593 from TolyaTalamanov:at/fix-gexecutor-writeback

pull/20616/head
Alexander Alekhin 4 years ago
commit b509a7060a
  1. 6
      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<cv::Mat*>(g_arg);
const auto& rmat = mag.template slot<cv::RMat>().at(rc.id);
auto* adapter = rmat.get<RMatAdapter>();
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);
}

Loading…
Cancel
Save