Check recommended Mac profiles in demo worlds and retain separate Vulkan research

This commit is contained in:
Ludovic Marie
2026-10-04 11:26:47 +02:00
parent 3858ab38b5
commit a5000edf11
5 changed files with 146 additions and 46 deletions
+7 -27
View File
@@ -59,34 +59,13 @@ jobs:
run: python -c "from tools.build_mod import benchmark_headers; benchmark_headers()"
- name: Test pack integrity and comparisons
run: python -m unittest discover -s tests -v
- name: Start native macOS clients and verify framebuffer readback
- name: Start recommended OpenGL macOS clients and verify framebuffer readback
if: runner.os == 'macOS'
run: |
python - <<'PY'
import json, subprocess, sys
from pathlib import Path
cases = [
['--profile', 'baseline', '--backend', 'vulkan'],
['--profile', 'core-performance', '--backend', 'vulkan'],
['--profile', 'core-performance'],
['--profile', 'm2-balanced'],
['--profile', 'vulkan'],
]
failed = []
observations = []
for case in cases:
result = subprocess.run([sys.executable, 'tools/test_client_graphics.py', '--native-display', *case])
observation = {'case': case, 'exit_code': result.returncode}
if result.returncode:
failed.append(case)
else:
observation['report'] = json.loads(Path('dist/client-graphics-smoke.json').read_text())
observations.append(observation)
Path('dist/client-graphics-macos-cases.json').write_text(json.dumps(observations, indent=2) + '\n')
if failed:
print('HORIZON_MAC_GRAPHICS_FAILED_CASES', failed, flush=True)
sys.exit(1)
PY
python tools/test_client_graphics.py --native-display
cp dist/client-graphics-smoke.json dist/client-graphics-macos-title.json
python tools/test_client_graphics.py --native-display --world
cp dist/client-graphics-smoke.json dist/client-graphics-macos-world.json
- name: Compile the private dispatch fixture
run: python -c "from tools.build_mod import build_dispatch_fixture; build_dispatch_fixture()"
- name: Compile the private tick-manager state fixture
@@ -152,4 +131,5 @@ jobs:
dist/quad-reuse-integration.json
dist/quad-size-integration.json
dist/client-graphics-smoke.json
dist/client-graphics-macos-cases.json
dist/client-graphics-macos-title.json
dist/client-graphics-macos-world.json
@@ -0,0 +1,50 @@
name: macOS Vulkan research
on:
workflow_dispatch:
permissions:
contents: read
jobs:
native-probes:
runs-on: macos-26
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '25'
- name: Build original mod and private probe dependencies
run: python tools/build_mod.py
- name: Probe vanilla, core and distant-terrain Vulkan cases
run: |
python - <<'PY'
import json, subprocess, sys
from pathlib import Path
cases = [
['--profile', 'baseline', '--backend', 'vulkan'],
['--profile', 'core-performance', '--backend', 'vulkan'],
['--profile', 'vulkan'],
]
observations = []
for case in cases:
result = subprocess.run([sys.executable, 'tools/test_client_graphics.py', '--native-display', *case], capture_output=True, text=True)
print(result.stdout, end='', flush=True)
print(result.stderr, end='', flush=True)
observation = {'case': case, 'exit_code': result.returncode}
if result.returncode:
marker = 'HORIZON_FIXTURE_FAILURE '
observation['failure'] = [json.loads(line.split(marker, 1)[1]) for line in result.stdout.splitlines() if marker in line]
else:
observation['report'] = json.loads(Path('dist/client-graphics-smoke.json').read_text())
observations.append(observation)
Path('dist/client-graphics-vulkan-research.json').write_text(json.dumps(observations, indent=2) + '\n')
sys.exit(int(any(item['exit_code'] for item in observations)))
PY
- name: Retain selected observations including failed cases
if: always()
uses: actions/upload-artifact@v4
with:
name: macos-vulkan-observations
path: dist/client-graphics-vulkan-research.json