From 9b8d2b0bbfad88916b6cef1f060d9047b0dcf7e8 Mon Sep 17 00:00:00 2001 From: Corentin Wallez Date: Mon, 25 Feb 2019 17:42:56 +0000 Subject: [PATCH] Instance: Only discover default adapters once. BUG=dawn:109 Change-Id: I9e54550dc8d3cdea289b3ad529a69a4cf3d5a35b Reviewed-on: https://dawn-review.googlesource.com/c/5040 Reviewed-by: Austin Eng Commit-Queue: Corentin Wallez --- src/dawn_native/Instance.cpp | 6 ++++++ src/dawn_native/Instance.h | 1 + 2 files changed, 7 insertions(+) diff --git a/src/dawn_native/Instance.cpp b/src/dawn_native/Instance.cpp index 2f7566c951..6786f7f408 100644 --- a/src/dawn_native/Instance.cpp +++ b/src/dawn_native/Instance.cpp @@ -54,6 +54,10 @@ namespace dawn_native { void InstanceBase::DiscoverDefaultAdapters() { EnsureBackendConnections(); + if (mDiscoveredDefaultAdapters) { + return; + } + // Query and merge all default adapters for all backends for (std::unique_ptr& backend : mBackends) { std::vector> backendAdapters = @@ -65,6 +69,8 @@ namespace dawn_native { mAdapters.push_back(std::move(adapter)); } } + + mDiscoveredDefaultAdapters = true; } // This is just a wrapper around the real logic that uses Error.h error handling. diff --git a/src/dawn_native/Instance.h b/src/dawn_native/Instance.h index 835d51dfdc..895f710bf2 100644 --- a/src/dawn_native/Instance.h +++ b/src/dawn_native/Instance.h @@ -50,6 +50,7 @@ namespace dawn_native { MaybeError DiscoverAdaptersInternal(const AdapterDiscoveryOptionsBase* options); bool mBackendsConnected = false; + bool mDiscoveredDefaultAdapters = false; std::vector> mBackends; std::vector> mAdapters;