From 6e9d8cb1a83a4f1191959f8112372c0c858083f5 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 26 Jul 2018 10:56:09 +0100 Subject: [PATCH] Initialise adb on another thread * Otherwise the first adb access will stall heavily starting the daemon. --- qrenderdoc/Windows/MainWindow.cpp | 2 ++ renderdoc/android/android.cpp | 5 +++++ renderdoc/api/replay/renderdoc_replay.h | 3 +++ 3 files changed, 10 insertions(+) diff --git a/qrenderdoc/Windows/MainWindow.cpp b/qrenderdoc/Windows/MainWindow.cpp index 486f864b5..13fa3fbd2 100644 --- a/qrenderdoc/Windows/MainWindow.cpp +++ b/qrenderdoc/Windows/MainWindow.cpp @@ -159,6 +159,8 @@ MainWindow::MainWindow(ICaptureContext &ctx) : QMainWindow(NULL), ui(new Ui::Mai m_RemoteProbeSemaphore.release(); m_RemoteProbe = new LambdaThread([this]() { + RENDERDOC_AndroidInitialise(); + while(m_RemoteProbeSemaphore.available()) { // do a remoteProbe immediately to populate the android hosts list on startup. diff --git a/renderdoc/android/android.cpp b/renderdoc/android/android.cpp index 4e1e13787..6d6eac660 100644 --- a/renderdoc/android/android.cpp +++ b/renderdoc/android/android.cpp @@ -577,6 +577,11 @@ extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_EnumerateAndroidDevices(rdc *deviceList = ret; } +extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_AndroidInitialise() +{ + Android::adbExecCommand("", "start-server", ".", true); +} + extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_AndroidShutdown() { Android::shutdownAdb(); diff --git a/renderdoc/api/replay/renderdoc_replay.h b/renderdoc/api/replay/renderdoc_replay.h index 1b726a5b6..7bb7dcb5a 100644 --- a/renderdoc/api/replay/renderdoc_replay.h +++ b/renderdoc/api/replay/renderdoc_replay.h @@ -2135,6 +2135,9 @@ extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_GetAndroidFriendlyName(cons DOCUMENT("Internal function for enumerating android devices."); extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_EnumerateAndroidDevices(rdcstr *deviceList); +DOCUMENT("Internal function for initialising android use."); +extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_AndroidInitialise(); + DOCUMENT("Internal function for shutting down android use."); extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_AndroidShutdown();