Skip to content

Commit 44bf748

Browse files
committed
do not allocate UMat in non-OpenCL targets
1 parent 698b2bf commit 44bf748

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

modules/dnn/src/layers/permute_layer.cpp

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -174,21 +174,9 @@ class PermuteLayerImpl CV_FINAL : public PermuteLayer
174174
computeStrides(shape(inputs[0]), shape(outputs[0]));
175175

176176
#ifdef HAVE_OPENCL
177-
if (uorder.empty())
178-
{
179-
std::vector<int> orderVec(_order.begin(), _order.end());;
180-
Mat morder(1, orderVec.size(), CV_32SC1, &orderVec[0]);
181-
182-
std::vector<int> oldStrideVec(_oldStride.begin(), _oldStride.end());
183-
Mat mold_stride(1, _oldStride.size(), CV_32SC1, &oldStrideVec[0]);
184-
185-
std::vector<int> newStrideVec(_newStride.begin(), _newStride.end());
186-
Mat mnew_stride(1, newStrideVec.size(), CV_32SC1, &newStrideVec[0]);
187-
188-
morder.copyTo(uorder);
189-
mold_stride.copyTo(uold_stride);
190-
mnew_stride.copyTo(unew_stride);
191-
}
177+
uorder.release();
178+
uold_stride.release();
179+
unew_stride.release();
192180
#endif
193181
}
194182

@@ -276,6 +264,22 @@ class PermuteLayerImpl CV_FINAL : public PermuteLayer
276264
if (!_needsPermute)
277265
return false;
278266

267+
if (uorder.empty())
268+
{
269+
std::vector<int> orderVec(_order.begin(), _order.end());;
270+
Mat morder(1, orderVec.size(), CV_32SC1, &orderVec[0]);
271+
272+
std::vector<int> oldStrideVec(_oldStride.begin(), _oldStride.end());
273+
Mat mold_stride(1, _oldStride.size(), CV_32SC1, &oldStrideVec[0]);
274+
275+
std::vector<int> newStrideVec(_newStride.begin(), _newStride.end());
276+
Mat mnew_stride(1, newStrideVec.size(), CV_32SC1, &newStrideVec[0]);
277+
278+
morder.copyTo(uorder);
279+
mold_stride.copyTo(uold_stride);
280+
mnew_stride.copyTo(unew_stride);
281+
}
282+
279283
bool use_half = (inps.depth() == CV_16S);
280284
String opts = format("-DDtype=%s", use_half ? "half" : "float");
281285
for (size_t i = 0; i < inputs.size(); i++)

0 commit comments

Comments
 (0)