aboutsummaryrefslogtreecommitdiff
path: root/src/armnn
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn')
-rw-r--r--src/armnn/DeviceSpec.hpp7
-rw-r--r--src/armnn/Runtime.cpp8
2 files changed, 11 insertions, 4 deletions
diff --git a/src/armnn/DeviceSpec.hpp b/src/armnn/DeviceSpec.hpp
index 35923e6f9d..32264706fd 100644
--- a/src/armnn/DeviceSpec.hpp
+++ b/src/armnn/DeviceSpec.hpp
@@ -24,9 +24,14 @@ public:
return m_SupportedBackends;
}
+ void AddSupportedBackends(const BackendIdSet& backendIds)
+ {
+ m_SupportedBackends.insert(backendIds.begin(), backendIds.end());
+ }
+
private:
DeviceSpec() = delete;
BackendIdSet m_SupportedBackends;
};
-}
+} // namespace armnn
diff --git a/src/armnn/Runtime.cpp b/src/armnn/Runtime.cpp
index 6b91863deb..9e874848ec 100644
--- a/src/armnn/Runtime.cpp
+++ b/src/armnn/Runtime.cpp
@@ -144,8 +144,7 @@ Runtime::Runtime(const CreationOptions& options)
{
// Store backend contexts for the supported ones
const BackendIdSet& supportedBackends = m_DeviceSpec.GetSupportedBackends();
- auto it = supportedBackends.find(id);
- if (it != supportedBackends.end())
+ if (supportedBackends.find(id) != supportedBackends.end())
{
auto factoryFun = BackendRegistryInstance().GetFactory(id);
auto backend = factoryFun();
@@ -257,7 +256,10 @@ void Runtime::LoadDynamicBackends(const std::string& overrideBackendPath)
m_DynamicBackends = DynamicBackendUtils::CreateDynamicBackends(sharedObjects);
// Register the dynamic backends in the backend registry
- DynamicBackendUtils::RegisterDynamicBackends(m_DynamicBackends);
+ BackendIdSet registeredBackendIds = DynamicBackendUtils::RegisterDynamicBackends(m_DynamicBackends);
+
+ // Add the registered dynamic backend ids to the list of supported backends
+ m_DeviceSpec.AddSupportedBackends(registeredBackendIds);
}
} // namespace armnn