Skip to content

Commit 6751f4f

Browse files
author
schm1dtmac
committed
[macOS CI] Add KosmicKrisp builds (for evaluation/testing)
1 parent 1bfd115 commit 6751f4f

3 files changed

Lines changed: 38 additions & 8 deletions

File tree

.ci/build-mac.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@ export HOMEBREW_NO_AUTO_UPDATE=1
44
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
55
export HOMEBREW_NO_ENV_HINTS=1
66
export HOMEBREW_NO_INSTALL_CLEANUP=1
7+
8+
if [ "$BUILD_MAC_KK" -eq 1 ]; then
9+
git clone https://gitlab.freedesktop.org/mesa/mesa.git kosmickrisp; cd kosmickrisp
10+
brew install meson libclc spirv-llvm-translator spirv-tools
11+
pip3 install mako packaging pyyaml --break-system-packages
12+
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
13+
meson setup build --prefix=/opt/homebrew --buildtype=release -Dplatforms=macos -Dvulkan-drivers=kosmickrisp -Dgallium-drivers= -Dopengl=false -Dzstd=disabled
14+
ninja -C build; cd ../
15+
fi
16+
717
brew install -f --overwrite --quiet ccache "llvm@$LLVM_COMPILER_VER"
818
brew link -f --overwrite --quiet "llvm@$LLVM_COMPILER_VER"
919
if [ "$AARCH64" -eq 1 ]; then

.ci/deploy-mac.sh

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,19 @@ echo "AVVER=$AVVER" >> ../.ci/ci-vars.env
1515

1616
cd bin
1717
mkdir -p "rpcs3.app/Contents/Resources/vulkan/icd.d" || true
18-
wget https://github.com/KhronosGroup/MoltenVK/releases/download/v1.4.1/MoltenVK-macos-privateapi.tar
19-
tar -xvf MoltenVK-macos-privateapi.tar
20-
cp "MoltenVK/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib" "rpcs3.app/Contents/Frameworks/libMoltenVK.dylib"
21-
cp "MoltenVK/MoltenVK/dynamic/dylib/macOS/MoltenVK_icd.json" "rpcs3.app/Contents/Resources/vulkan/icd.d/MoltenVK_icd.json"
22-
sed -i '' "s/.\//..\/..\/..\/Frameworks\//g" "rpcs3.app/Contents/Resources/vulkan/icd.d/MoltenVK_icd.json"
18+
if [ "$BUILD_MAC_KK" -eq 1 ]; then
19+
cp "$WORKDIR/kosmickrisp/build/src/kosmickrisp/vulkan/libvulkan_kosmickrisp.dylib" "rpcs3.app/Contents/Frameworks/libvulkan_kosmickrisp.dylib"
20+
cp "$WORKDIR/kosmickrisp/build/src/kosmickrisp/vulkan/kosmickrisp_mesa_icd.aarch64.json" "rpcs3.app/Contents/Resources/vulkan/icd.d/kosmickrisp_mesa_icd.aarch64.json"
21+
cp "$(realpath /opt/homebrew/lib/libSPIRV-Tools.dylib)" "rpcs3.app/Contents/Frameworks/libSPIRV-Tools.dylib"
22+
install_name_tool -change "/opt/homebrew/opt/spirv-tools/lib/libSPIRV-Tools.dylib" "@rpath/libSPIRV-Tools.dylib" "rpcs3.app/Contents/Frameworks/libvulkan_kosmickrisp.dylib"
23+
sed -i '' "s/\/opt\/homebrew\/lib\//..\/..\/..\/Frameworks\//g" "rpcs3.app/Contents/Resources/vulkan/icd.d/kosmickrisp_mesa_icd.aarch64.json"
24+
else
25+
wget https://github.com/KhronosGroup/MoltenVK/releases/download/v1.4.1/MoltenVK-macos-privateapi.tar
26+
tar -xvf MoltenVK-macos-privateapi.tar
27+
cp "MoltenVK/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib" "rpcs3.app/Contents/Frameworks/libMoltenVK.dylib"
28+
cp "MoltenVK/MoltenVK/dynamic/dylib/macOS/MoltenVK_icd.json" "rpcs3.app/Contents/Resources/vulkan/icd.d/MoltenVK_icd.json"
29+
sed -i '' "s/.\//..\/..\/..\/Frameworks\//g" "rpcs3.app/Contents/Resources/vulkan/icd.d/MoltenVK_icd.json"
30+
fi
2331

2432
cp "$(realpath $BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib)" "rpcs3.app/Contents/Frameworks/libc++abi.1.dylib"
2533
cp "$(realpath $BREW_PATH/opt/gcc/lib/gcc/current/libgcc_s.1.1.dylib)" "rpcs3.app/Contents/Frameworks/libgcc_s.1.1.dylib"

.github/workflows/rpcs3.yml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,15 +123,25 @@ jobs:
123123
matrix:
124124
include:
125125
- name: Intel
126+
runs-on: macos-14
126127
AARCH64: 0
128+
BUILD_MAC_KK: 0
127129
UPLOAD_COMMIT_HASH: 51ae32f468089a8169aaf1567de355ff4a3e0842
128130
UPLOAD_REPO_FULL_NAME: rpcs3/rpcs3-binaries-mac
129131
- name: Apple Silicon
132+
runs-on: macos-14
130133
AARCH64: 1
134+
BUILD_MAC_KK: 0
131135
UPLOAD_COMMIT_HASH: 8e21bdbc40711a3fccd18fbf17b742348b0f4281
132136
UPLOAD_REPO_FULL_NAME: rpcs3/rpcs3-binaries-mac-arm64
137+
- name: Apple Silicon (KosmicKrisp)
138+
runs-on: macos-15
139+
AARCH64: 1
140+
BUILD_MAC_KK: 1
141+
UPLOAD_COMMIT_HASH: ""
142+
UPLOAD_REPO_FULL_NAME: ""
133143
name: RPCS3 Mac ${{ matrix.name }}
134-
runs-on: macos-14
144+
runs-on: ${{ matrix.runs-on }}
135145
env:
136146
CCACHE_DIR: /tmp/ccache_dir
137147
QT_VER: '6.10.1'
@@ -141,6 +151,7 @@ jobs:
141151
UPLOAD_COMMIT_HASH: ${{ matrix.UPLOAD_COMMIT_HASH }}
142152
UPLOAD_REPO_FULL_NAME: ${{ matrix.UPLOAD_REPO_FULL_NAME }}
143153
AARCH64: ${{ matrix.AARCH64 }}
154+
BUILD_MAC_KK: ${{ matrix.BUILD_MAC_KK }}
144155
RUN_UNIT_TESTS: github.event_name == 'pull_request' && 'ON' || 'OFF'
145156
steps:
146157
- name: Checkout repository
@@ -184,6 +195,7 @@ jobs:
184195
185196
- name: Deploy master build to GitHub Releases
186197
if: |
198+
env.BUILD_MAC_KK == 0 &&
187199
github.event_name != 'pull_request' &&
188200
github.repository == 'RPCS3/rpcs3' &&
189201
github.ref == 'refs/heads/master'
@@ -192,14 +204,14 @@ jobs:
192204
run: .ci/github-upload.sh
193205

194206
- name: Save Build Ccache
195-
if: github.ref == 'refs/heads/master'
207+
if: env.BUILD_MAC_KK == 0 && github.ref == 'refs/heads/master'
196208
uses: actions/cache/save@main
197209
with:
198210
path: ${{ env.CCACHE_DIR }}
199211
key: ${{ steps.restore-build-ccache.outputs.cache-primary-key }}
200212

201213
- name: Save Qt Cache
202-
if: github.ref == 'refs/heads/master'
214+
if: env.BUILD_MAC_KK == 0 && github.ref == 'refs/heads/master'
203215
uses: actions/cache/save@main
204216
with:
205217
path: /tmp/Qt

0 commit comments

Comments
 (0)