IVGCVSW-5220 Set all operations to unsupported after encountering an unsupported operation with with dynamic inputs
Change-Id: Ia30698d608810dabb419d7d326ad985789d50603
Signed-off-by: Finn Williams <Finn.Williams@Arm.com>
diff --git a/ConversionUtils.hpp b/ConversionUtils.hpp
index 27d0720..830502d 100644
--- a/ConversionUtils.hpp
+++ b/ConversionUtils.hpp
@@ -44,12 +44,14 @@
ConversionData(const std::vector<armnn::BackendId>& backends)
: m_Backends(backends)
, m_Network(nullptr, nullptr)
+ , m_DynamicInputsEncountered(false)
{}
const std::vector<armnn::BackendId> m_Backends;
armnn::INetworkPtr m_Network;
std::vector<armnn::IOutputSlot*> m_OutputSlotForOperand;
std::vector<android::nn::RunTimePoolInfo> m_MemPools;
+ bool m_DynamicInputsEncountered;
};
class LayerInputHandle
@@ -1290,11 +1292,13 @@
if (IsDynamicTensor(operandTensorInfo))
{
+ data.m_DynamicInputsEncountered = true;
+
const uint32_t operandIndex = operation.inputs[inputIndex];
// Check if the dynamic input tensors have been inferred by one of the previous layers
// If not we can't support them
- if(data.m_OutputSlotForOperand.size() >= operandIndex && data.m_OutputSlotForOperand[operandIndex])
+ if (data.m_OutputSlotForOperand.size() >= operandIndex && data.m_OutputSlotForOperand[operandIndex])
{
operandTensorInfo = data.m_OutputSlotForOperand[operandIndex]->GetTensorInfo();
}