diff options
author | David Beck <david.beck@arm.com> | 2018-10-03 11:42:42 +0100 |
---|---|---|
committer | Matthew Bentham <matthew.bentham@arm.com> | 2018-10-10 16:16:58 +0100 |
commit | dcb751f338b86c811a35bd0a9413ba9b8df7b718 (patch) | |
tree | bda3027fe7d958383eaa85105f611bfc07c3838c /src/backends/WorkloadFactory.cpp | |
parent | 3041e3036398048b4f8b72e0a321d77cd222a2fa (diff) | |
download | armnn-dcb751f338b86c811a35bd0a9413ba9b8df7b718.tar.gz |
IVGCVSW-1642 : introducing the IBackend interface
Change-Id: Iaadee0a08c0594c9a3c802a48fe346e15f2cbbb2
Diffstat (limited to 'src/backends/WorkloadFactory.cpp')
-rw-r--r-- | src/backends/WorkloadFactory.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/backends/WorkloadFactory.cpp b/src/backends/WorkloadFactory.cpp index a70097eb82..dc9c1bc624 100644 --- a/src/backends/WorkloadFactory.cpp +++ b/src/backends/WorkloadFactory.cpp @@ -2,7 +2,8 @@ // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // -#include "WorkloadFactory.hpp" +#include <backends/WorkloadFactory.hpp> + #include <backends/reference/RefWorkloadFactory.hpp> #include <backends/neon/NeonWorkloadFactory.hpp> #include <backends/cl/ClWorkloadFactory.hpp> @@ -53,12 +54,16 @@ namespace } } -bool IWorkloadFactory::IsLayerSupported(Compute compute, const Layer& layer, boost::optional<DataType> dataType, - std::string& outReasonIfUnsupported) +bool IWorkloadFactory::IsLayerSupported(Compute compute, + const IConnectableLayer& connectableLayer, + boost::optional<DataType> dataType, + std::string& outReasonIfUnsupported) { constexpr size_t reasonCapacity = 1024; char reason[reasonCapacity]; bool result; + const Layer& layer = *(boost::polymorphic_downcast<const Layer*>(&connectableLayer)); + switch(layer.GetType()) { case LayerType::Activation: @@ -583,10 +588,12 @@ bool IWorkloadFactory::IsLayerSupported(Compute compute, const Layer& layer, boo return result; } -bool IWorkloadFactory::IsLayerSupported(const Layer& layer, boost::optional<DataType> dataType, +bool IWorkloadFactory::IsLayerSupported(const IConnectableLayer& connectableLayer, + boost::optional<DataType> dataType, std::string& outReasonIfUnsupported) { - return IsLayerSupported(layer.GetComputeDevice(), layer, dataType, outReasonIfUnsupported); + auto layer = boost::polymorphic_downcast<const Layer*>(&connectableLayer); + return IsLayerSupported(layer->GetComputeDevice(), connectableLayer, dataType, outReasonIfUnsupported); } } |