From 67813737279dba78593b13e2407b71b37bb1d9f8 Mon Sep 17 00:00:00 2001 From: Eladash Date: Sun, 29 Aug 2021 22:03:17 +0300 Subject: [PATCH] Patch cooperate with system SPU group creation (#10791) --- rpcs3/Emu/Cell/lv2/sys_spu.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/Cell/lv2/sys_spu.cpp b/rpcs3/Emu/Cell/lv2/sys_spu.cpp index 7f9d7392f3..f258ce4221 100644 --- a/rpcs3/Emu/Cell/lv2/sys_spu.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_spu.cpp @@ -635,7 +635,9 @@ error_code sys_spu_thread_group_create(ppu_thread& ppu, vm::ptr id, u32 num default: return CELL_EINVAL; } - if (type & SYS_SPU_THREAD_GROUP_TYPE_COOPERATE_WITH_SYSTEM) + const bool is_system_coop = type & SYS_SPU_THREAD_GROUP_TYPE_COOPERATE_WITH_SYSTEM; + + if (is_system_coop) { // Constant size, unknown what it means mem_size = SPU_LS_SIZE; @@ -653,7 +655,7 @@ error_code sys_spu_thread_group_create(ppu_thread& ppu, vm::ptr id, u32 num } if (num < min_threads || num > max_threads || - (needs_root && min_prio == 0x10) || (use_scheduler && (prio > 255 || prio < min_prio))) + (needs_root && min_prio == 0x10) || (use_scheduler && !is_system_coop && (prio > 255 || prio < min_prio))) { return CELL_EINVAL; }