[PR #293] [MERGED] Various linux fixes #1459

Closed
opened 2026-02-27 21:12:38 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/shadps4-emu/shadPS4/pull/293
Author: @raphaelthegreat
Created: 7/15/2024
Status: Merged
Merged: 7/15/2024
Merged by: @georgemoralis

Base: mainHead: misc-fixes3


📝 Commits (10+)

  • dd7d232 event_queues: Use std placeholders
  • 73d4aaf liverpool: Num submits should be atomic
  • 432defd externals: Disable sdl pipewire
  • 26f8fbf tls: Use gs segment for linux
  • dbeed80 fs: Actually functional linux case insensitive search
  • ce6a01b clang format
  • 58d1cbd ssa_rewrite_pass: Correct phi node type for thread bitmask
  • ba0be91 clang format fix
  • 0298889 windows std::filesystem fixes
  • 0599f4e fs: Fix case of getting the mount itself

📊 Changes

14 files changed (+166 additions, -159 deletions)

View changed files

📝 externals/CMakeLists.txt (+1 -0)
📝 src/common/io_file.h (+2 -2)
📝 src/core/file_sys/fs.cpp (+70 -49)
📝 src/core/file_sys/fs.h (+22 -8)
📝 src/core/libraries/kernel/event_queues.cpp (+1 -4)
📝 src/core/libraries/kernel/file_system.cpp (+8 -9)
📝 src/core/libraries/kernel/libkernel.cpp (+1 -1)
📝 src/core/libraries/kernel/thread_management.cpp (+0 -10)
📝 src/core/libraries/libc/libc_stdio.cpp (+5 -4)
📝 src/core/libraries/save_data/savedata.cpp (+36 -37)
📝 src/core/tls.cpp (+10 -28)
📝 src/shader_recompiler/frontend/translate/export.cpp (+1 -1)
📝 src/shader_recompiler/ir/passes/ssa_rewrite_pass.cpp (+8 -5)
📝 src/video_core/amdgpu/liverpool.h (+1 -1)

📄 Description

Mostly a collection of fixes for linux that I had in the present branch but that might take a while to merge so having these here.

  • Fix a build error regarding boost asio placeholders. Seems like using std placeholders works fine so do that instead.
  • Disable SDL pipewire backend as I found it to cause crackly audio in certain games like BB Alpha
  • Rework TLS emulation to use GS segment instead of trampolines. This should eliminate all TLS related assertions on linux platforms.
  • Actually properly implement case insensitive search. This has been quite annoying for a while so time to get it out of the way. When a path does not exist, it looks for the parent path until one is found and then traverses the folders in case any of them exist with different case. There is also a lookup cache for paths that should speed things up if e.g a lot of files are accessed in the same miscased folder
  • While not related to linux, switched num_submits back to std::atomic as its written without a lock protection and I have found some cases where this leads to a deadlock

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/shadps4-emu/shadPS4/pull/293 **Author:** [@raphaelthegreat](https://github.com/raphaelthegreat) **Created:** 7/15/2024 **Status:** ✅ Merged **Merged:** 7/15/2024 **Merged by:** [@georgemoralis](https://github.com/georgemoralis) **Base:** `main` ← **Head:** `misc-fixes3` --- ### 📝 Commits (10+) - [`dd7d232`](https://github.com/shadps4-emu/shadPS4/commit/dd7d232ac3e7257a22aaada5b52408911e050ec1) event_queues: Use std placeholders - [`73d4aaf`](https://github.com/shadps4-emu/shadPS4/commit/73d4aafc092e8237accacf4c1c612421c7895125) liverpool: Num submits should be atomic - [`432defd`](https://github.com/shadps4-emu/shadPS4/commit/432defd9929b77fd890b9205b06278768e5cd049) externals: Disable sdl pipewire - [`26f8fbf`](https://github.com/shadps4-emu/shadPS4/commit/26f8fbf62865600fcfedc5ce070a7bfb47dcf092) tls: Use gs segment for linux - [`dbeed80`](https://github.com/shadps4-emu/shadPS4/commit/dbeed80e3b6248703c20aa14fe39725f6ca1d404) fs: Actually functional linux case insensitive search - [`ce6a01b`](https://github.com/shadps4-emu/shadPS4/commit/ce6a01bd418913f41d87b3c6a7edf76239aad656) clang format - [`58d1cbd`](https://github.com/shadps4-emu/shadPS4/commit/58d1cbd9b7b1c919e498657959b551ee8e13bddd) ssa_rewrite_pass: Correct phi node type for thread bitmask - [`ba0be91`](https://github.com/shadps4-emu/shadPS4/commit/ba0be91c73a940bccdaf13a880ce8a3f72f60599) clang format fix - [`0298889`](https://github.com/shadps4-emu/shadPS4/commit/02988891313c523e2c901478fc3d8f3614a2ee8b) windows std::filesystem fixes - [`0599f4e`](https://github.com/shadps4-emu/shadPS4/commit/0599f4e6a5f0ccd5a767a7ea1ce4e846e107c6bb) fs: Fix case of getting the mount itself ### 📊 Changes **14 files changed** (+166 additions, -159 deletions) <details> <summary>View changed files</summary> 📝 `externals/CMakeLists.txt` (+1 -0) 📝 `src/common/io_file.h` (+2 -2) 📝 `src/core/file_sys/fs.cpp` (+70 -49) 📝 `src/core/file_sys/fs.h` (+22 -8) 📝 `src/core/libraries/kernel/event_queues.cpp` (+1 -4) 📝 `src/core/libraries/kernel/file_system.cpp` (+8 -9) 📝 `src/core/libraries/kernel/libkernel.cpp` (+1 -1) 📝 `src/core/libraries/kernel/thread_management.cpp` (+0 -10) 📝 `src/core/libraries/libc/libc_stdio.cpp` (+5 -4) 📝 `src/core/libraries/save_data/savedata.cpp` (+36 -37) 📝 `src/core/tls.cpp` (+10 -28) 📝 `src/shader_recompiler/frontend/translate/export.cpp` (+1 -1) 📝 `src/shader_recompiler/ir/passes/ssa_rewrite_pass.cpp` (+8 -5) 📝 `src/video_core/amdgpu/liverpool.h` (+1 -1) </details> ### 📄 Description Mostly a collection of fixes for linux that I had in the present branch but that might take a while to merge so having these here. * Fix a build error regarding boost asio placeholders. Seems like using std placeholders works fine so do that instead. * Disable SDL pipewire backend as I found it to cause crackly audio in certain games like BB Alpha * Rework TLS emulation to use GS segment instead of trampolines. This should eliminate all TLS related assertions on linux platforms. * Actually properly implement case insensitive search. This has been quite annoying for a while so time to get it out of the way. When a path does not exist, it looks for the parent path until one is found and then traverses the folders in case any of them exist with different case. There is also a lookup cache for paths that should speed things up if e.g a lot of files are accessed in the same miscased folder * While not related to linux, switched num_submits back to std::atomic as its written without a lock protection and I have found some cases where this leads to a deadlock --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 21:12:38 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/shadPS4#1459
No description provided.