diff --git a/.ci/build-linux-aarch64.sh b/.ci/build-linux-aarch64.sh index e253fb2e8..c37a47858 100755 --- a/.ci/build-linux-aarch64.sh +++ b/.ci/build-linux-aarch64.sh @@ -1,8 +1,6 @@ #!/bin/sh -ex -if [ -z "$CIRRUS_CI" ]; then - cd rpcs3/rpcs3 || exit 1 -fi +cd rpcs3/rpcs3 || exit 1 git config --global --add safe.directory '*' @@ -25,7 +23,7 @@ fi export CFLAGS="$CFLAGS -fuse-ld=${LINKER}" export CXXFLAGS="$CXXFLAGS -fuse-ld=${LINKER}" -cmake .. \ +cmake -B build \ -DCMAKE_INSTALL_PREFIX=/usr \ -DUSE_NATIVE_INSTRUCTIONS=OFF \ -DUSE_PRECOMPILED_HEADERS=OFF \ @@ -40,13 +38,14 @@ cmake .. \ -DOpenGL_GL_PREFERENCE=LEGACY \ -DLLVM_DIR=/opt/llvm/lib/cmake/llvm \ -DSTATIC_LINK_LLVM=ON \ + -DWITH_RPCSX=off \ + -DWITH_RPCS3=on \ + -DWITH_RPCS3_QT_UI=on \ -G Ninja -ninja; build_status=$?; +cmake --build build; build_status=$?; -cd .. - -shellcheck ../.ci/*.sh +shellcheck .ci/*.sh # If it compiled succesfully let's deploy. # Azure and Cirrus publish PRs as artifacts only. @@ -54,5 +53,5 @@ shellcheck ../.ci/*.sh } && SHOULD_DEPLOY="true" || SHOULD_DEPLOY="false" if [ "$build_status" -eq 0 ] && [ "$SHOULD_DEPLOY" = "true" ]; then - ../.ci/deploy-linux.sh "aarch64" + .ci/deploy-linux.sh "aarch64" fi diff --git a/.ci/build-linux.sh b/.ci/build-linux.sh index 2b398334f..15c76cac7 100755 --- a/.ci/build-linux.sh +++ b/.ci/build-linux.sh @@ -1,8 +1,6 @@ #!/bin/sh -ex -if [ -z "$CIRRUS_CI" ]; then - cd rpcs3/rpcs3 || exit 1 -fi +cd rpcs3/ || exit 1 git config --global --add safe.directory '*' @@ -11,8 +9,6 @@ git config --global --add safe.directory '*' # shellcheck disable=SC2046 git submodule -q update --init $(awk '/path/ && !/llvm/ && !/opencv/ { print $3 }' .gitmodules) -mkdir build && cd build || exit 1 - if [ "$COMPILER" = "gcc" ]; then # These are set in the dockerfile export CC="${GCC_BINARY}" @@ -32,7 +28,7 @@ fi export CFLAGS="$CFLAGS -fuse-ld=${LINKER}" -cmake .. \ +cmake -B build \ -DCMAKE_INSTALL_PREFIX=/usr \ -DUSE_NATIVE_INSTRUCTIONS=OFF \ -DUSE_PRECOMPILED_HEADERS=OFF \ @@ -49,13 +45,14 @@ cmake .. \ -DOpenGL_GL_PREFERENCE=LEGACY \ -DLLVM_DIR=/opt/llvm/lib/cmake/llvm \ -DSTATIC_LINK_LLVM=ON \ + -DWITH_RPCSX=off \ + -DWITH_RPCS3=on \ + -DWITH_RPCS3_QT_UI=on \ -G Ninja -ninja; build_status=$?; +cmake --build build; build_status=$?; -cd .. - -shellcheck ../.ci/*.sh +shellcheck .ci/*.sh # If it compiled succesfully let's deploy. # Azure and Cirrus publish PRs as artifacts only. @@ -63,5 +60,5 @@ shellcheck ../.ci/*.sh } && SHOULD_DEPLOY="true" || SHOULD_DEPLOY="false" if [ "$build_status" -eq 0 ] && [ "$SHOULD_DEPLOY" = "true" ]; then - ../.ci/deploy-linux.sh "x86_64" + .ci/deploy-linux.sh "x86_64" fi diff --git a/.ci/deploy-linux.sh b/.ci/deploy-linux.sh index 38a1d3e05..51a5b90a9 100755 --- a/.ci/deploy-linux.sh +++ b/.ci/deploy-linux.sh @@ -37,7 +37,7 @@ if [ "$DEPLOY_APPIMAGE" = "true" ]; then APPIMAGE_SUFFIX="linux64" fi - COMM_TAG=$(awk '/version{.*}/ { printf("%d.%d.%d", $5, $6, $7) }' ../rpcs3/rpcs3_version.cpp) + COMM_TAG=$(awk '/version{.*}/ { printf("%d.%d.%d", $5, $6, $7) }' ../rpcs3/rpcs3/rpcs3_version.cpp) COMM_COUNT="$(git rev-list --count HEAD)" COMM_HASH="$(git rev-parse --short=8 HEAD)" RPCS3_APPIMAGE="rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMM_HASH}_${APPIMAGE_SUFFIX}.AppImage" diff --git a/.ci/deploy-windows.sh b/.ci/deploy-windows.sh index 666edbedf..a8a3f6b97 100755 --- a/.ci/deploy-windows.sh +++ b/.ci/deploy-windows.sh @@ -15,7 +15,7 @@ mkdir ./rpcs3/bin/config mkdir ./rpcs3/bin/config/input_configs curl -fsSL 'https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt' 1> ./rpcs3/bin/config/input_configs/gamecontrollerdb.txt curl -fsSL 'https://rpcs3.net/compatibility?api=v1&export' | iconv -t UTF-8 1> ./rpcs3/bin/GuiConfigs/compat_database.dat -cp -rf ./rpcs3/build-msvc/bin/ ./rpcs3/bin/ +cp -rf ./build-msvc/bin/ ./rpcs3/bin/ # Download SSL certificate (not needed with CURLSSLOPT_NATIVE_CA) #curl -fsSL 'https://curl.haxx.se/ca/cacert.pem' 1> ./bin/cacert.pem diff --git a/.github/workflows/rpcs3.yml b/.github/workflows/rpcs3.yml index 0ada21f36..a740b3160 100644 --- a/.github/workflows/rpcs3.yml +++ b/.github/workflows/rpcs3.yml @@ -36,7 +36,7 @@ jobs: docker_img: "rpcs3/rpcs3-ci-jammy-aarch64:1.4" build_sh: "rpcs3/.ci/build-linux-aarch64.sh" compiler: clang - name: RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} + name: RPCS3 QT UI for Linux ${{ matrix.os }} ${{ matrix.compiler }} runs-on: ${{ matrix.os }} env: CCACHE_DIR: ${{ github.workspace }}/ccache @@ -74,12 +74,12 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@main with: - name: RPCS3 for Linux (${{ runner.arch }}, ${{ matrix.compiler }}) + name: RPCS3 QT UI for Linux (${{ runner.arch }}, ${{ matrix.compiler }}) path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}/*.AppImage compression-level: 0 Windows_Build: - name: RPCS3 Windows + name: RPCS3 QT UI Windows runs-on: windows-2025 env: COMPILER: msvc @@ -139,11 +139,10 @@ jobs: - name: Add msbuild to PATH uses: microsoft/setup-msbuild@main - - name: Compile RPCS3 + - name: Compile RPCS3 QT UI run: | - cd rpcs3 - cmake --preset msvc -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DQt6_DIR="$QTDIR" - cmake --build --preset msvc-release + cmake -B build-msvc -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DWITH_RPCSX=off -DWITH_RPCS3=on -DWITH_RPCS3_QT_UI=on -DCMAKE_CONFIGURATION_TYPES="Debug;Release" -DCMAKE_INSTALL_PREFIX="${sourceDir}/out/install/${presetName}" -DUSE_NATIVE_INSTRUCTIONS=on -DUSE_PRECOMPILED_HEADERS=on -DUSE_FAUDIO=off -DUSE_SYSTEM_CURL=off -DUSE_SYSTEM_ZLIB=off -DUSE_SYSTEM_OPENAL=off -DUSE_SYSTEM_OPENCV=off -DBUILD_LLVM=on -DSTATIC_LINK_LLVM=on + cmake --build build-msvc --config Release - name: Pack up build artifacts run: | @@ -153,7 +152,7 @@ jobs: - name: Upload artifacts (7z) uses: actions/upload-artifact@main with: - name: RPCS3 for Windows (MSVC) + name: RPCS3 QT UI for Windows (MSVC) path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }} compression-level: 0 if-no-files-found: error diff --git a/.gitmodules b/.gitmodules index 750eed546..e5122244d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -135,3 +135,6 @@ [submodule "3rdparty/libadrenotools"] path = rpcs3/3rdparty/libadrenotools url = ../../bylaws/libadrenotools.git +[submodule "3rdparty/Vulkan-Headers"] + path = 3rdparty/Vulkan-Headers + url = ../../KhronosGroup/Vulkan-Headers.git diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt index 0f150c53b..8bd9dba42 100644 --- a/3rdparty/CMakeLists.txt +++ b/3rdparty/CMakeLists.txt @@ -5,8 +5,8 @@ if(NOT xbyak_FOUND) endif() add_subdirectory(SPIRV-Headers) - add_subdirectory(SPIRV-Tools) +add_subdirectory(Vulkan-Headers) option(SPIRV_CROSS_SHARED "" off) option(SPIRV_CROSS_STATIC "" on) diff --git a/3rdparty/Vulkan-Headers b/3rdparty/Vulkan-Headers new file mode 160000 index 000000000..5ceb9ed48 --- /dev/null +++ b/3rdparty/Vulkan-Headers @@ -0,0 +1 @@ +Subproject commit 5ceb9ed481e58e705d0d9b5326537daedd06b97d diff --git a/rpcs3/rpcs3/Emu/CMakeLists.txt b/rpcs3/rpcs3/Emu/CMakeLists.txt index 804ad6fca..30d2594ce 100644 --- a/rpcs3/rpcs3/Emu/CMakeLists.txt +++ b/rpcs3/rpcs3/Emu/CMakeLists.txt @@ -652,6 +652,8 @@ target_link_libraries(rpcs3_emu 3rdparty::opengl 3rdparty::stblib 3rdparty::vulkan 3rdparty::glew 3rdparty::libusb 3rdparty::wolfssl + Vulkan::Headers + PRIVATE 3rdparty::glslang )