Skip to content

Commit 6147098

Browse files
committed
Merge branch 'master' into windows-clang
2 parents e65b633 + ba2518f commit 6147098

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+399
-127
lines changed

.ci/build-mac.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ export HOMEBREW_NO_INSTALL_CLEANUP=1
88

99
brew install -f --overwrite --quiet ccache pipenv "llvm@$LLVM_COMPILER_VER"
1010
brew link -f --overwrite --quiet "llvm@$LLVM_COMPILER_VER"
11+
# shellcheck disable=SC3009
12+
rm /usr/local/bin/{idle3.14,pip3.14,pydoc3.14,python3.14,python3.14-config} && \
13+
rm /usr/local/bin/{idle3,pip3,pydoc3,python3,python3-config}
1114
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
1215
arch -x86_64 /usr/local/bin/brew install -f --overwrite --quiet ffmpeg@5 "llvm@$LLVM_COMPILER_VER" glew sdl3 vulkan-headers
1316
arch -x86_64 /usr/local/bin/brew link -f --overwrite --quiet "llvm@$LLVM_COMPILER_VER" ffmpeg@5
@@ -54,7 +57,8 @@ export Qt6_DIR="$WORKDIR/qt-downloader/$QT_VER/clang_64/lib/cmake/Qt$QT_VER_MAIN
5457
export SDL3_DIR="$BREW_X64_PATH/opt/sdl3/lib/cmake/SDL3"
5558

5659
export PATH="/opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/bin:$WORKDIR/qt-downloader/$QT_VER/clang_64/bin:$BREW_BIN:$BREW_SBIN:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:$PATH"
57-
export LDFLAGS="-L$BREW_X64_PATH/lib -Wl,-rpath,$BREW_X64_PATH/lib"
60+
# shellcheck disable=SC2155
61+
export LDFLAGS="-L$BREW_X64_PATH/lib -Wl,-rpath,$BREW_X64_PATH/lib,-L$(brew --prefix llvm)/lib/c++"
5862
export CPPFLAGS="-I$BREW_X64_PATH/include -msse -msse2 -mcx16 -no-pie -D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
5963
export CFLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
6064
export LIBRARY_PATH="$BREW_X64_PATH/opt/llvm@$LLVM_COMPILER_VER/lib:$BREW_X64_PATH/lib"

.ci/deploy-linux.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ if [ "$DEPLOY_APPIMAGE" = "true" ]; then
1414
curl -fsSLo linuxdeploy-plugin-checkrt.sh https://github.com/darealshinji/linuxdeploy-plugin-checkrt/releases/download/continuous/linuxdeploy-plugin-checkrt.sh
1515
chmod +x ./linuxdeploy-plugin-checkrt.sh
1616

17-
export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so"
17+
export EXTRA_PLATFORM_PLUGINS="libqwayland.so"
1818
export EXTRA_QT_PLUGINS="svg;wayland-decoration-client;wayland-graphics-integration-client;wayland-shell-integration;waylandcompositor"
1919

2020
APPIMAGE_EXTRACT_AND_RUN=1 linuxdeploy --appdir AppDir --plugin qt --plugin checkrt

.ci/deploy-mac-arm64.sh

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,8 @@ rm -rf "rpcs3.app/Contents/Frameworks/QtPdf.framework" \
3232
../../.ci/optimize-mac.sh rpcs3.app
3333

3434
# Hack
35-
install_name_tool \
36-
-delete_rpath /opt/homebrew/lib \
37-
-delete_rpath /opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/lib RPCS3.app/Contents/MacOS/rpcs3
38-
#-delete_rpath /opt/homebrew1/Cellar/sdl3/3.2.8/lib
35+
install_name_tool -delete_rpath /opt/homebrew/lib RPCS3.app/Contents/MacOS/rpcs3 || echo "Hack for deleting rpath /opt/homebrew/lib not needed"
36+
install_name_tool -delete_rpath /opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/lib RPCS3.app/Contents/MacOS/rpcs3 || echo "Hack for deleting rpath /opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/lib not needed"
3937

4038
# Need to do this rename hack due to case insensitive filesystem
4139
mv rpcs3.app RPCS3_.app

.ci/deploy-mac.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ echo "AVVER=$AVVER" >> ../.ci/ci-vars.env
1616
cd bin
1717
mkdir "rpcs3.app/Contents/lib/"
1818

19-
cp "/usr/local/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib" "rpcs3.app/Contents/lib/libc++abi.1.dylib"
19+
cp "/usr/local/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib" "rpcs3.app/Contents/Frameworks/libc++abi.1.dylib"
20+
cp "/usr/local/opt/llvm@$LLVM_COMPILER_VER/lib/unwind/libunwind.1.dylib" "rpcs3.app/Contents/Frameworks/libunwind.1.dylib"
2021
cp "$(realpath /usr/local/lib/libsharpyuv.0.dylib)" "rpcs3.app/Contents/lib/libsharpyuv.0.dylib"
2122
cp "$(realpath /usr/local/lib/libintl.8.dylib)" "rpcs3.app/Contents/lib/libintl.8.dylib"
2223

.github/workflows/rpcs3.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,23 @@ jobs:
3030
matrix:
3131
include:
3232
- os: ubuntu-24.04
33-
docker_img: "rpcs3/rpcs3-ci-jammy:1.6"
33+
docker_img: "rpcs3/rpcs3-ci-jammy:1.7"
3434
build_sh: "/rpcs3/.ci/build-linux.sh"
3535
compiler: clang
3636
UPLOAD_COMMIT_HASH: d812f1254a1157c80fd402f94446310560f54e5f
3737
UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux"
3838
- os: ubuntu-24.04
39-
docker_img: "rpcs3/rpcs3-ci-jammy:1.6"
39+
docker_img: "rpcs3/rpcs3-ci-jammy:1.7"
4040
build_sh: "/rpcs3/.ci/build-linux.sh"
4141
compiler: gcc
4242
- os: ubuntu-24.04-arm
43-
docker_img: "rpcs3/rpcs3-ci-jammy-aarch64:1.6"
43+
docker_img: "rpcs3/rpcs3-ci-jammy-aarch64:1.7"
4444
build_sh: "/rpcs3/.ci/build-linux-aarch64.sh"
4545
compiler: clang
4646
UPLOAD_COMMIT_HASH: a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1
4747
UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux-arm64"
4848
- os: ubuntu-24.04-arm
49-
docker_img: "rpcs3/rpcs3-ci-jammy-aarch64:1.6"
49+
docker_img: "rpcs3/rpcs3-ci-jammy-aarch64:1.7"
5050
build_sh: "/rpcs3/.ci/build-linux-aarch64.sh"
5151
compiler: gcc
5252
name: RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }}
@@ -136,7 +136,7 @@ jobs:
136136
CCACHE_DIR: /tmp/ccache_dir
137137
QT_VER: '6.7.3'
138138
QT_VER_MAIN: '6'
139-
LLVM_COMPILER_VER: '19'
139+
LLVM_COMPILER_VER: '21'
140140
RELEASE_MESSAGE: ../GitHubReleaseMessage.txt
141141
UPLOAD_COMMIT_HASH: ${{ matrix.UPLOAD_COMMIT_HASH }}
142142
UPLOAD_REPO_FULL_NAME: ${{ matrix.UPLOAD_REPO_FULL_NAME }}

3rdparty/OpenAL/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ else()
1616
add_subdirectory(openal-soft EXCLUDE_FROM_ALL)
1717
add_library(3rdparty_openal INTERFACE)
1818
target_link_libraries(3rdparty_openal INTERFACE OpenAL::OpenAL)
19+
target_compile_options(openal-soft PRIVATE -Wno-deprecated-literal-operator)
1920
endif()

rpcs3/Emu/Cell/Modules/cellGame.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,8 @@ error_code cellHddGameCheck(ppu_thread& ppu, u32 version, vm::cptr<char> dirName
464464
{
465465
get->isNewData = CELL_HDDGAME_ISNEWDATA_NODIR;
466466
get->getParam = {};
467+
468+
cellGame.warning("cellHddGameCheck(): New data.");
467469
}
468470
else
469471
{
@@ -476,13 +478,22 @@ error_code cellHddGameCheck(ppu_thread& ppu, u32 version, vm::cptr<char> dirName
476478
if (psf.contains("RESOLUTION")) get->getParam.resolution = ::at32(psf, "RESOLUTION").as_integer();
477479
if (psf.contains("SOUND_FORMAT")) get->getParam.soundFormat = ::at32(psf, "SOUND_FORMAT").as_integer();
478480
if (psf.contains("TITLE")) strcpy_trunc(get->getParam.title, ::at32(psf, "TITLE").as_string());
479-
if (psf.contains("APP_VER")) strcpy_trunc(get->getParam.dataVersion, ::at32(psf, "APP_VER").as_string());
480-
if (psf.contains("TITLE_ID")) strcpy_trunc(get->getParam.titleId, ::at32(psf, "TITLE_ID").as_string());
481+
482+
// Old games do not have APP_VER key
483+
strcpy_trunc(get->getParam.dataVersion, psf::get_string(psf, "APP_VER", psf::get_string(sfo, "VERSION", "")));
484+
485+
if (psf.contains("TITLE_ID"))
486+
{
487+
strcpy_trunc(get->getParam.titleId, ::at32(psf, "TITLE_ID").as_string());
488+
}
481489

482490
for (u32 i = 0; i < CELL_HDDGAME_SYSP_LANGUAGE_NUM; i++)
483491
{
484492
strcpy_trunc(get->getParam.titleLang[i], psf::get_string(psf, fmt::format("TITLE_%02d", i)));
485493
}
494+
495+
cellGame.warning("cellHddGameCheck(): Data exists:\nATTRIBUTE: 0x%x, RESOLUTION: 0x%x, RESOLUTION: 0x%x, SOUND_FORMAT: 0x%x, dataVersion: %s"
496+
, get->getParam.attribute, get->getParam.resolution, get->getParam.soundFormat, get->getParam.soundFormat, std::span<const u8>(reinterpret_cast<const u8*>(get->getParam.dataVersion), 6));
486497
}
487498

488499
// TODO ?

rpcs3/Emu/Cell/Modules/cellGame.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,8 @@ enum
224224
struct CellGameDataSystemFileParam
225225
{
226226
char title[CELL_GAMEDATA_SYSP_TITLE_SIZE];
227-
char titleLang[CELL_GAMEDATA_SYSP_LANGUAGE_NUM][CELL_GAMEDATA_SYSP_TITLE_SIZE];
228-
char titleId[CELL_GAMEDATA_SYSP_TITLEID_SIZE];
227+
char titleLang[CELL_GAMEDATA_SYSP_LANGUAGE_NUM][CELL_GAMEDATA_SYSP_TITLE_SIZE]; // 0x80
228+
char titleId[CELL_GAMEDATA_SYSP_TITLEID_SIZE]; // 0xA80
229229
char reserved0[2];
230230
char dataVersion[CELL_GAMEDATA_SYSP_VERSION_SIZE];
231231
char reserved1[2];
@@ -248,13 +248,13 @@ struct CellGameDataStatGet
248248
{
249249
be_t<s32> hddFreeSizeKB;
250250
be_t<u32> isNewData;
251-
char contentInfoPath[CELL_GAMEDATA_PATH_MAX];
252-
char gameDataPath[CELL_GAMEDATA_PATH_MAX];
253-
char reserved0[2];
254-
be_t<s64> st_atime_;
255-
be_t<s64> st_mtime_;
256-
be_t<s64> st_ctime_;
257-
CellGameDataSystemFileParam getParam;
251+
char contentInfoPath[CELL_GAMEDATA_PATH_MAX]; // 0x8
252+
char gameDataPath[CELL_GAMEDATA_PATH_MAX]; // 0x427
253+
char reserved0[2]; // 0x846
254+
be_t<s64> st_atime_; // 0x848
255+
be_t<s64> st_mtime_; // 0x850
256+
be_t<s64> st_ctime_; // 0x858
257+
CellGameDataSystemFileParam getParam; // 0x860
258258
be_t<s32> sizeKB;
259259
be_t<s32> sysSizeKB;
260260
char reserved1[68];

rpcs3/Emu/Cell/SPULLVMRecompiler.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2231,6 +2231,12 @@ class spu_llvm_recompiler : public spu_recompiler_base, public cpu_translator
22312231
{
22322232
for (auto& [a, b] : m_blocks)
22332233
{
2234+
if (has_gpr_memory_barriers)
2235+
{
2236+
// Dive deeper and inspect GPR store barriers
2237+
break;
2238+
}
2239+
22342240
// Check if the store occurs before any barrier in the block
22352241
if (b.store[i] && b.store[i] != bs && b.store_context_first_id[i] == 1)
22362242
{

0 commit comments

Comments
 (0)