Browse Source

n3ds systhread - prefer to put audio thread on system core

(cherry picked from commit 301ee21f33c7e2cef4a0c484640fb028378a2fc5)
ds-sloth 1 năm trước cách đây
mục cha
commit
e4cd1d4059
1 tập tin đã thay đổi với 9 bổ sung2 xóa
  1. 9 2
      src/thread/n3ds/SDL_systhread.c

+ 9 - 2
src/thread/n3ds/SDL_systhread.c

@@ -49,15 +49,22 @@ static void ThreadEntry(void *arg)
 
 int SDL_SYS_CreateThread(SDL_Thread *thread)
 {
-    s32 priority;
+    s32 priority = 0x30;
+    int cpu = -1;
     size_t stack_size = GetStackSize(thread->stacksize);
+
     svcGetThreadPriority(&priority, CUR_THREAD_HANDLE);
 
+    /* prefer putting audio thread on system core */
+    if (thread->name && SDL_strcmp(thread->name, "SDLAudioP") == 0 && R_SUCCEEDED(APT_SetAppCpuTimeLimit(30))) {
+        cpu = 1;
+    }
+
     thread->handle = threadCreate(ThreadEntry,
                                   thread,
                                   stack_size,
                                   priority,
-                                  -1,
+                                  cpu,
                                   false);
 
     if (thread->handle == NULL) {