From a11632599145d5f18840db9f00cbec94f10cc830 Mon Sep 17 00:00:00 2001 From: Duncan Tourolle Date: Sun, 4 Oct 2026 20:19:04 -0400 Subject: [PATCH] Declare the DSP's RPC library, so the app can reach the Hexagon QNN's Hexagon stub loads libcdsprpc.so, a vendor library, and from API 31 an app's linker namespace refuses a vendor library its manifest does not name. QNN then fails to create its device - QNN_DEVICE_ERROR_INVALID_CONFIG, before it reaches the DSP - and every model ran on the CPU on 0.22.0: AI denoise took 30-131 s a photograph on the tablet. The same engine code ran on the HTP from adb's shell, whose namespace has no such rule, which is what hid it. With the declaration the app's probe chose the Hexagon on the tablet and compiled every model for it. Not required, so a device without the library still installs and runs on the CPU. A test holds the line in the manifest. --- apps/darkroom-android/android/AndroidManifest.xml | 8 ++++++++ apps/darkroom-android/src/lib.rs | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/apps/darkroom-android/android/AndroidManifest.xml b/apps/darkroom-android/android/AndroidManifest.xml index 45e42af..fd56ead 100644 --- a/apps/darkroom-android/android/AndroidManifest.xml +++ b/apps/darkroom-android/android/AndroidManifest.xml @@ -73,6 +73,14 @@ android:requestLegacyExternalStorage="true" android:supportsRtl="true"> + + +