From 06903b69c633144dcb37b13629dbce4df40688aa Mon Sep 17 00:00:00 2001 From: Naomino <66085784+Naomi-Kali@users.noreply.github.com> Date: Sun, 7 Jul 2024 12:01:43 +0200 Subject: [PATCH 1/8] Update symbols_resolver.h Missing Default Return Type. Fixed --- src/core/loader/symbols_resolver.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/loader/symbols_resolver.h b/src/core/loader/symbols_resolver.h index 80ea46f2e..d73b6ba08 100644 --- a/src/core/loader/symbols_resolver.h +++ b/src/core/loader/symbols_resolver.h @@ -68,6 +68,8 @@ public: return "Tls"; case SymbolType::NoType: return "NoType"; + default: + return "Invalid"; } } From dc45515c11356b8ecaf95d88f2bae833564b3720 Mon Sep 17 00:00:00 2001 From: Naomino <66085784+Naomi-Kali@users.noreply.github.com> Date: Sun, 7 Jul 2024 12:24:36 +0200 Subject: [PATCH 2/8] Update libkernel.cpp Changing from char* to const char* Regarding C++ ISO --- src/core/libraries/kernel/libkernel.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/libraries/kernel/libkernel.cpp b/src/core/libraries/kernel/libkernel.cpp index ce17a3f2d..6b48cad04 100644 --- a/src/core/libraries/kernel/libkernel.cpp +++ b/src/core/libraries/kernel/libkernel.cpp @@ -295,8 +295,9 @@ int PS4_SYSV_ABI sceKernelUuidCreate(OrbisKernelUuid* orbisUuid) { return 0; } -char* PS4_SYSV_ABI sceKernelGetFsSandboxRandomWord() { - char* path = "sys"; +/// Naomi Rework (Const) +const char* PS4_SYSV_ABI sceKernelGetFsSandboxRandomWord() { + const char* path = "sys"; return path; } From 0467f603768fcba85fc67a1d9ea6778f81f2c497 Mon Sep 17 00:00:00 2001 From: Naomino <66085784+Naomi-Kali@users.noreply.github.com> Date: Sun, 7 Jul 2024 12:26:23 +0200 Subject: [PATCH 3/8] Update condition.h Missing default Return statement --- src/shader_recompiler/ir/condition.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/shader_recompiler/ir/condition.h b/src/shader_recompiler/ir/condition.h index 4b60be674..26f8179ef 100644 --- a/src/shader_recompiler/ir/condition.h +++ b/src/shader_recompiler/ir/condition.h @@ -37,6 +37,8 @@ constexpr std::string_view NameOf(Condition condition) { return "Execz"; case Condition::Execnz: return "Execnz"; + default: + return "Invalid"; } } From 2db748889b9e9e7551bb80a9f53d44c0bf73faeb Mon Sep 17 00:00:00 2001 From: Naomino <66085784+Naomi-Kali@users.noreply.github.com> Date: Sun, 7 Jul 2024 13:17:49 +0200 Subject: [PATCH 4/8] Update liverpool_to_vk.cpp Missing Default Statement for Stability Exception throw (Later draw it to TextBox instead of exception -> Prevent crash) --- src/video_core/renderer_vulkan/liverpool_to_vk.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/video_core/renderer_vulkan/liverpool_to_vk.cpp b/src/video_core/renderer_vulkan/liverpool_to_vk.cpp index dca7ff3d2..28ec937dc 100644 --- a/src/video_core/renderer_vulkan/liverpool_to_vk.cpp +++ b/src/video_core/renderer_vulkan/liverpool_to_vk.cpp @@ -222,6 +222,9 @@ vk::CompareOp DepthCompare(AmdGpu::DepthCompare comp) { return vk::CompareOp::eGreaterOrEqual; case AmdGpu::DepthCompare::Always: return vk::CompareOp::eAlways; + /// Missing AMG Gpu default statement + default: + throw std::invalid_argument("Unsupported DeepCompare"); } } From 685c3a798fd8e6d1599f1212eae12773370f5816 Mon Sep 17 00:00:00 2001 From: Peter Gogos <66085784+Naomi-Kali@users.noreply.github.com> Date: Sun, 7 Jul 2024 13:43:01 +0000 Subject: [PATCH 5/8] Update src/video_core/renderer_vulkan/liverpool_to_vk.cpp Good Change, thanks for suggestion Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com> --- src/video_core/renderer_vulkan/liverpool_to_vk.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/video_core/renderer_vulkan/liverpool_to_vk.cpp b/src/video_core/renderer_vulkan/liverpool_to_vk.cpp index 28ec937dc..76f0f3b71 100644 --- a/src/video_core/renderer_vulkan/liverpool_to_vk.cpp +++ b/src/video_core/renderer_vulkan/liverpool_to_vk.cpp @@ -222,9 +222,8 @@ vk::CompareOp DepthCompare(AmdGpu::DepthCompare comp) { return vk::CompareOp::eGreaterOrEqual; case AmdGpu::DepthCompare::Always: return vk::CompareOp::eAlways; - /// Missing AMG Gpu default statement default: - throw std::invalid_argument("Unsupported DeepCompare"); + UNREACHABLE_MSG("Unknown depth compare op {}", u32(comp)); } } From 8c508a2346528f8fa54add1b415066c40028a209 Mon Sep 17 00:00:00 2001 From: Naomino <66085784+Naomi-Kali@users.noreply.github.com> Date: Sun, 7 Jul 2024 15:50:37 +0200 Subject: [PATCH 6/8] Update liverpool_to_vk.cpp Update --- src/video_core/renderer_vulkan/liverpool_to_vk.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video_core/renderer_vulkan/liverpool_to_vk.cpp b/src/video_core/renderer_vulkan/liverpool_to_vk.cpp index 28ec937dc..c357e78a1 100644 --- a/src/video_core/renderer_vulkan/liverpool_to_vk.cpp +++ b/src/video_core/renderer_vulkan/liverpool_to_vk.cpp @@ -224,7 +224,7 @@ vk::CompareOp DepthCompare(AmdGpu::DepthCompare comp) { return vk::CompareOp::eAlways; /// Missing AMG Gpu default statement default: - throw std::invalid_argument("Unsupported DeepCompare"); + UNREACHABLE_MSG("Unknown depth compare op {}", u32(comp)); } } From a5b3967fd2dbb0b280d2e11b4ced0acc1269d3df Mon Sep 17 00:00:00 2001 From: Naomino <66085784+Naomi-Kali@users.noreply.github.com> Date: Sun, 7 Jul 2024 16:50:45 +0200 Subject: [PATCH 7/8] Thread_management rework MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only error Left: /home/naomi/Asztal/shadPS4/GitHub/shadPS4/src/core/libraries/kernel/thread_management.cpp: In function ‘int Libraries::Kernel::scePthreadAttrGetstackaddr(PthreadAttrInternal* const*, void**)’: /home/naomi/Asztal/shadPS4/GitHub/shadPS4/src/core/libraries/kernel/thread_management.cpp:321:43: warning: ‘int pthread_attr_getstackaddr(const pthread_attr_t*, void**)’ is deprecated [-Wdeprecated-declarations] 321 | int result = pthread_attr_getstackaddr(&(*attr)->pth_attr, stack_addr); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/14.1.1/x86_64-pc-linux-gnu/bits/gthr-default.h:35, from /usr/include/c++/14.1.1/x86_64-pc-linux-gnu/bits/gthr.h:157, from /usr/include/c++/14.1.1/bits/std_mutex.h:41, from /usr/include/c++/14.1.1/mutex:47, from /home/naomi/Asztal/shadPS4/GitHub/shadPS4/src/core/libraries/kernel/thread_management.cpp:4: /usr/include/pthread.h:353:12: note: declared here 353 | extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict /usr/bin/ld: CMakeFiles/shadps4.dir/src/core/libraries/kernel/thread_management.cpp.o: in function `Libraries::Kernel::scePthreadAttrGetstackaddr(Libraries::Kernel::PthreadAttrInternal* const*, void**)': thread_management.cpp:(.text+0x38b): warning: the use of `pthread_attr_getstackaddr' is deprecated, use `pthread_attr_getstack' --- src/core/libraries/kernel/thread_management.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/core/libraries/kernel/thread_management.cpp b/src/core/libraries/kernel/thread_management.cpp index 3f6f9bd6a..94e39ffaf 100644 --- a/src/core/libraries/kernel/thread_management.cpp +++ b/src/core/libraries/kernel/thread_management.cpp @@ -323,6 +323,7 @@ int PS4_SYSV_ABI scePthreadAttrGetstackaddr(const ScePthreadAttr* attr, void** s return result == 0 ? SCE_OK : SCE_KERNEL_ERROR_EINVAL; } + int PS4_SYSV_ABI scePthreadAttrGetstacksize(const ScePthreadAttr* attr, size_t* stack_size) { if (stack_size == nullptr || attr == nullptr || *attr == nullptr) { @@ -334,6 +335,7 @@ int PS4_SYSV_ABI scePthreadAttrGetstacksize(const ScePthreadAttr* attr, size_t* return result == 0 ? SCE_OK : SCE_KERNEL_ERROR_EINVAL; } +/* int PS4_SYSV_ABI scePthreadAttrSetstackaddr(ScePthreadAttr* attr, void* addr) { if (addr == nullptr || attr == nullptr || *attr == nullptr) { @@ -343,6 +345,18 @@ int PS4_SYSV_ABI scePthreadAttrSetstackaddr(ScePthreadAttr* attr, void* addr) { int result = pthread_attr_setstackaddr(&(*attr)->pth_attr, addr); return result == 0 ? SCE_OK : SCE_KERNEL_ERROR_EINVAL; +}*/ +int PS4_SYSV_ABI scePthreadAttrSetstackaddr(ScePthreadAttr* attr, void* stack_addr, size_t stack_size) { + if (attr == nullptr || *attr == nullptr || stack_addr == nullptr) { + return SCE_KERNEL_ERROR_EINVAL; + } + + int result = pthread_attr_setstack(&(*attr)->pth_attr, stack_addr, stack_size); + if (result != 0) { + return SCE_KERNEL_ERROR_EINVAL; + } + + return SCE_OK; } int PS4_SYSV_ABI scePthreadAttrSetstacksize(ScePthreadAttr* attr, size_t stack_size) { @@ -897,7 +911,7 @@ static int pthread_copy_attributes(ScePthreadAttr* dst, const ScePthreadAttr* sr result = (result == 0 ? scePthreadAttrSetschedparam(dst, ¶m) : result); result = (result == 0 ? scePthreadAttrSetschedpolicy(dst, policy) : result); if (stack_addr != nullptr) { - result = (result == 0 ? scePthreadAttrSetstackaddr(dst, stack_addr) : result); + result = (result == 0 ? scePthreadAttrSetstackaddr(dst, stack_addr, stack_size) : result); } if (stack_size != 0) { result = (result == 0 ? scePthreadAttrSetstacksize(dst, stack_size) : result); From a98b184f56c4036eed6c0cfe298d9b90b9589f07 Mon Sep 17 00:00:00 2001 From: Naomino <66085784+Naomi-Kali@users.noreply.github.com> Date: Sun, 7 Jul 2024 16:57:11 +0200 Subject: [PATCH 8/8] Revert "Thread_management rework" This reverts commit a5b3967fd2dbb0b280d2e11b4ced0acc1269d3df. --- src/core/libraries/kernel/thread_management.cpp | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/src/core/libraries/kernel/thread_management.cpp b/src/core/libraries/kernel/thread_management.cpp index 94e39ffaf..3f6f9bd6a 100644 --- a/src/core/libraries/kernel/thread_management.cpp +++ b/src/core/libraries/kernel/thread_management.cpp @@ -323,7 +323,6 @@ int PS4_SYSV_ABI scePthreadAttrGetstackaddr(const ScePthreadAttr* attr, void** s return result == 0 ? SCE_OK : SCE_KERNEL_ERROR_EINVAL; } - int PS4_SYSV_ABI scePthreadAttrGetstacksize(const ScePthreadAttr* attr, size_t* stack_size) { if (stack_size == nullptr || attr == nullptr || *attr == nullptr) { @@ -335,7 +334,6 @@ int PS4_SYSV_ABI scePthreadAttrGetstacksize(const ScePthreadAttr* attr, size_t* return result == 0 ? SCE_OK : SCE_KERNEL_ERROR_EINVAL; } -/* int PS4_SYSV_ABI scePthreadAttrSetstackaddr(ScePthreadAttr* attr, void* addr) { if (addr == nullptr || attr == nullptr || *attr == nullptr) { @@ -345,18 +343,6 @@ int PS4_SYSV_ABI scePthreadAttrSetstackaddr(ScePthreadAttr* attr, void* addr) { int result = pthread_attr_setstackaddr(&(*attr)->pth_attr, addr); return result == 0 ? SCE_OK : SCE_KERNEL_ERROR_EINVAL; -}*/ -int PS4_SYSV_ABI scePthreadAttrSetstackaddr(ScePthreadAttr* attr, void* stack_addr, size_t stack_size) { - if (attr == nullptr || *attr == nullptr || stack_addr == nullptr) { - return SCE_KERNEL_ERROR_EINVAL; - } - - int result = pthread_attr_setstack(&(*attr)->pth_attr, stack_addr, stack_size); - if (result != 0) { - return SCE_KERNEL_ERROR_EINVAL; - } - - return SCE_OK; } int PS4_SYSV_ABI scePthreadAttrSetstacksize(ScePthreadAttr* attr, size_t stack_size) { @@ -911,7 +897,7 @@ static int pthread_copy_attributes(ScePthreadAttr* dst, const ScePthreadAttr* sr result = (result == 0 ? scePthreadAttrSetschedparam(dst, ¶m) : result); result = (result == 0 ? scePthreadAttrSetschedpolicy(dst, policy) : result); if (stack_addr != nullptr) { - result = (result == 0 ? scePthreadAttrSetstackaddr(dst, stack_addr, stack_size) : result); + result = (result == 0 ? scePthreadAttrSetstackaddr(dst, stack_addr) : result); } if (stack_size != 0) { result = (result == 0 ? scePthreadAttrSetstacksize(dst, stack_size) : result);