Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
bf18c33
feat(ps4): PRD-784 E1 — an OpenOrbis ELF boots in shadPS4 and prints …
jonit-dev Nov 6, 2026
6791439
wip(ps4): PRD-784 E2 lane — vulkan-ps4 triangle runs 600 frames in sh…
jonit-dev Nov 6, 2026
61daefd
feat(ps4): PRD-784 E2 — vulkan-ps4 draws a triangle in shadPS4
jonit-dev Nov 6, 2026
ca6b90e
feat(ps4): PRD-784 E3 — Dawn webgpu.h draws a WGSL triangle in shadPS4
jonit-dev Nov 6, 2026
4668083
fix(ps4): PRD-784 vertex-buffer draws render in shadPS4
jonit-dev Nov 6, 2026
5d6e10c
feat(ps4): PRD-784 E4 — V8 13.1 runs a script in shadPS4 (jitless)
jonit-dev Nov 6, 2026
3c64636
feat(ps4): PRD-784 E5 slice 1 — the engine core compiles for tn-ps4
jonit-dev Nov 6, 2026
f95cdb8
feat(ps4): PRD-784 E5 slice 2 — the V8 engine player links into a PS4…
jonit-dev Nov 6, 2026
51a37e5
feat(ps4): PRD-784 E5 slice 3 — the player boots to the first frame i…
jonit-dev Nov 6, 2026
42b6e7f
fix(ps4): PRD-784 E5 — descriptor-set pointers are 64-bit, as PS4 GPU…
jonit-dev Nov 6, 2026
2f869c6
fix(ps4): PRD-784 E5 — MSAA colour and depth targets create on vulkan…
jonit-dev Nov 6, 2026
e5216d1
fix(ps4): PRD-784 E5 — descriptor sets 0-3 compile and bind on vulkan…
jonit-dev Nov 6, 2026
d8dca45
fix(ps4): PRD-784 E5 — vulkan-ps4's built-in clear shader sits on a 2…
jonit-dev Nov 6, 2026
45391d4
fix(ps4): PRD-784 E5 — compute dispatches carry their registers and a…
jonit-dev Nov 7, 2026
07ba198
fix(PRD-784): vulkan-ps4 reads the CS input-usage slots after the who…
jonit-dev Nov 7, 2026
1b17f11
test(PRD-784): e3cs compute repro proves the GNM compute path on shadPS4
jonit-dev Nov 7, 2026
ea3996d
feat(PRD-784): E6 send-to-console builds the E5 fake PKG and prints t…
jonit-dev Nov 7, 2026
873245b
fix(PRD-784): vulkan-ps4 gives each draw its own V# table and each bi…
jonit-dev Nov 7, 2026
4d53182
test(PRD-784): e3tex repros render-to-texture then sample on shadPS4
jonit-dev Nov 7, 2026
4849162
fix(PRD-784): vulkan-ps4 clears a whole surface to a constant colour …
jonit-dev Nov 7, 2026
2b4d62e
Merge branch 'develop' into feat/prd-784-ps4-feasibility
jonit-dev Nov 7, 2026
4e0b349
feat(PRD-784): E5 green, the engine renders its lit scene in shadPS4
jonit-dev Nov 7, 2026
24f6fe2
Merge remote-tracking branch 'origin/feat/prd-784-ps4-feasibility' in…
jonit-dev Nov 7, 2026
e96fe34
docs(PRD-784): AC-1 and AC-2 ticked, the PRD waits on the console run
jonit-dev Nov 7, 2026
9abfd43
fix(PRD-784): the PS4 cube renders solid — depth target, fullscreen R…
jonit-dev Nov 7, 2026
01e1a04
feat(PRD-515): the owned engine decodes meshopt-compressed glTF geometry
jonit-dev Nov 7, 2026
1887216
fix(PRD-784): true guest clock, 30 fps in shadPS4, and three shader-c…
jonit-dev Nov 7, 2026
ec10d1b
fix(PRD-784): s_or_saveexec lowering runs after disable_wqm; the E5 j…
jonit-dev Nov 7, 2026
71ec675
perf(PRD-784): vulkan-ps4 queues the flip instead of waiting for it
jonit-dev Nov 7, 2026
558f1b3
feat(PRD-784): DualShock 4 input through navigator.getGamepads on the…
jonit-dev Nov 7, 2026
1f6996f
docs(PRD-784): Phase 4 — DualShock 4 proven; 60 fps, Cube Spin and th…
jonit-dev Nov 7, 2026
0143901
perf(PRD-784): vulkan-ps4 wait counters name the E5 wait — Acquire wa…
jonit-dev Nov 7, 2026
5af5dfd
docs(PRD-784): Cube Spin black frame — exposure value and meter passe…
jonit-dev Nov 7, 2026
a0e36a4
fix(PRD-784): Cube Spin draws on PS4 — one mip level until vulkan-ps4…
jonit-dev Nov 7, 2026
145b9ef
fix(PRD-784): normal maps guard a zero tangent-frame det as three's T…
jonit-dev Nov 7, 2026
a4fe3c8
docs(PRD-784): P4-3 — two black-frame root causes fixed, judge IMPROV…
jonit-dev Nov 7, 2026
e2c63c2
perf(PRD-784): E5 measures the guest past shadPS4's present cap
jonit-dev Nov 7, 2026
d197877
docs(PRD-784): P4-2 done — E5 60.0 fps (120.0 at 120 Hz); Cube Spin b…
jonit-dev Nov 7, 2026
efd6cde
feat(PRD-784): starter boots on PS4 with native Rapier and meshopt
jonit-dev Nov 7, 2026
f9d900e
docs(PRD-784): P4-4 done — the starter loads on PS4 and walks with a …
jonit-dev Nov 7, 2026
9b8aa7b
docs(PRD-784): starter guest holds 119.8 fps with null GPU at 120 Hz
jonit-dev Nov 7, 2026
677b625
fix(PRD-784): vulkan-ps4 mip levels and tiled texture uploads (patch …
jonit-dev Nov 7, 2026
51c15ae
fix(PRD-784): route PS inputs to VS exports by varying slot (patches …
jonit-dev Nov 7, 2026
dc5b4c9
feat(PRD-784): React HUD draws on PS4 through the native-css backend
jonit-dev Nov 7, 2026
f185e4a
docs(PRD-784): P4-3 environment light evidence; three driver patches …
jonit-dev Nov 7, 2026
7995395
perf(PRD-784): starter at 60 fps on emulated PS4 (vulkan-ps4 epilogue…
jonit-dev Nov 7, 2026
b609eb4
fix(PRD-784): vulkan-ps4 mip/layer colour targets match the level tab…
jonit-dev Nov 7, 2026
3f8286f
docs(PRD-784): P4-3 precise readbacks leave the environment black
jonit-dev Nov 7, 2026
4f42d3e
fix(PRD-784): vulkan-ps4 maps integer vertex formats, so the starter …
jonit-dev Nov 7, 2026
4a2c435
docs(PRD-784): P4-4 starter walk cycle passes the visual judge
jonit-dev Nov 7, 2026
ce0d675
fix(PRD-784): vulkan-ps4 cube face views and clears keep their layer,…
jonit-dev Nov 7, 2026
fe4670e
fix(PRD-784): vulkan-ps4 uses Vulkan 0..1 clip-space depth, so PS4 sh…
jonit-dev Nov 7, 2026
7cf3fa2
fix(PRD-784): drop the PS4 one-mip clamp; P4-3 Cube Spin matches desk…
jonit-dev Nov 7, 2026
3e83b02
chore(runtime-native): regenerate the native coverage report for the …
jonit-dev Nov 7, 2026
76735bc
Merge remote-tracking branch 'origin/develop' into feat/prd-784-ps4-f…
jonit-dev Nov 7, 2026
4f049b0
chore(runtime-native): regenerate the native coverage report after me…
jonit-dev Nov 7, 2026
7666e9c
docs(PRD-784): file the finished PRD in done/ per the owner's goal; t…
jonit-dev Nov 7, 2026
20fe300
docs(PRD-784): P4-2 records the 120 Hz and Immediate-present headroom…
jonit-dev Nov 7, 2026
e908ec0
docs(PRD-784): P4-2 headroom runs point at a 60 Hz host display clock…
jonit-dev Nov 7, 2026
4994659
docs(PRD-784): the guest runs 76-78 fps at 144 Hz; Xvfb's 60 Hz clock…
jonit-dev Nov 7, 2026
9a1afde
docs(PRD-784): the Xvfb cap is the present copy, not the clock; start…
jonit-dev Nov 7, 2026
6ee25b5
docs(PRD-784): E5 PASS above 60 fps — Cube Spin 79.6, starter 75.3 wi…
jonit-dev Nov 7, 2026
cd6ccfb
feat(PRD-784): TN_PS4_HOST_HZ runs the PS4 lane above 60 fps with the…
jonit-dev Nov 7, 2026
162b08a
feat(PRD-784): the PS4 lane runs on gamescope 144 Hz by default; TN_P…
jonit-dev Nov 7, 2026
5a2dbac
fix(PRD-784): PS4 samples real mip chains and the rough PMREM levels
jonit-dev Nov 7, 2026
597ee35
fix(PRD-784): PS4 mipmapped textures are micro-tiled, so sampled mips…
jonit-dev Nov 7, 2026
cb0304b
fix(PRD-784): PS4 front face is a float, so normal maps keep their re…
jonit-dev Nov 7, 2026
2211050
fix(PRD-784): PS4 3D textures are linear, so the cloud noise volume u…
jonit-dev Nov 7, 2026
514c644
feat(PRD-784): isConsole()/isPs4(); the starter binds DualShock run/r…
jonit-dev Nov 7, 2026
4ccbff1
test(PRD-784): lock PS4 visual parity with frame claims and a PlaySta…
jonit-dev Nov 7, 2026
3828f80
test(PRD-784): virtual DualShock takes a step list, so one PS4 run dr…
jonit-dev Nov 7, 2026
e3af713
fix(PRD-784): PS4 storage buffers span their byte range and VS inputs…
jonit-dev Nov 7, 2026
54b50be
fix(PRD-784): a PS4 run cannot hang the runner when shadPS4 leaves th…
jonit-dev Nov 7, 2026
f0ea358
fix(starter): the crate's contact blob draws only on the low tier, so…
jonit-dev Nov 7, 2026
581cb60
fix(PRD-784): PS4 pennant tears: the vertex buffer table pointer gets…
jonit-dev Nov 7, 2026
2ac2e8d
docs(PRD-784): P4-6..8 record Cube Spin and starter parity with web, …
jonit-dev Nov 7, 2026
ec9d87c
chore(runtime-native): regenerate the native coverage report for the …
jonit-dev Nov 7, 2026
42d1383
fix(runtime-native): the native bundler resolves @threenative/core su…
jonit-dev Nov 7, 2026
b85b493
fix(PRD-784): an E5 guest error keeps its message, not only the TN_PL…
jonit-dev Nov 7, 2026
920764b
fix(PRD-784): the V8 engine player installs the manifest's pure-JS gl…
jonit-dev Nov 7, 2026
d1eee65
fix(PRD-784): bind three's GridHelper on both engines, player documen…
jonit-dev Nov 7, 2026
f9b4e0a
fix(PRD-784): the V8 engine player's navigator carries a userAgent
jonit-dev Nov 7, 2026
eff5b2a
fix(PRD-784): PS4 instanced draws read the real instance index
jonit-dev Nov 8, 2026
f89042c
docs(PRD-784): Phase 5, the capability sweep: four boxes done, five o…
jonit-dev Nov 8, 2026
34f709a
fix(PRD-784): skinIndex and skinWeight are ordinary attributes on a m…
jonit-dev Nov 8, 2026
4608118
fix(PRD-784): the PS4 heap uses direct memory, and geometry capture w…
jonit-dev Nov 8, 2026
fabcebb
fix(PRD-784): PS4 driver culls by the pipeline, and RGBA32F textures …
jonit-dev Nov 8, 2026
1bc407f
fix(PRD-784): PS4 scene passes keep their background colour
jonit-dev Nov 8, 2026
c00494e
feat(PRD-784): the V8 engine binds three/tsl compute()
jonit-dev Nov 8, 2026
d6263f6
fix(PRD-784): PS4 honours depth bias and depth array layers
jonit-dev Nov 8, 2026
a254bdf
fix(PRD-784): PS4 3D textures upload at the surface's aligned pitch
jonit-dev Nov 8, 2026
5400a30
fix(PRD-784): PS4 shaders avoid s_bfm_b64 and s_brev_b64
jonit-dev Nov 8, 2026
c355cdf
fix(PRD-784): PS4 TRAA resolve no longer aborts shadPS4
jonit-dev Nov 8, 2026
eb0e7ae
docs(PRD-784): name the proof for the open TRAA-edge and VSM boxes
jonit-dev Nov 8, 2026
58fbdd3
fix(core): auto-batch keeps a cooked model's placement
jonit-dev Nov 8, 2026
118033b
fix(PRD-784): PS4 present flips on the GPU behind the frame
jonit-dev Nov 8, 2026
42805e3
Merge remote-tracking branch 'origin/develop' into feat/prd-784-ps4-f…
jonit-dev Nov 8, 2026
e3ef8fc
feat(PRD-784): pnpm ps4 <game dir> builds, previews in shadPS4 and wr…
jonit-dev Nov 8, 2026
a4b274d
feat(PRD-784): pnpm ps4 --usb copies the PKG to a USB stick, verifies…
jonit-dev Nov 8, 2026
181fba9
fix(PRD-784): psbc keys a colour export for every MRT, so the PS4 TRA…
jonit-dev Nov 8, 2026
21b000a
fix(PRD-784): psbc names a user register for every inlined push const…
jonit-dev Nov 8, 2026
3482815
fix(ps4): virtual shadow maps render on PS4: 16K framebuffer limit an…
jonit-dev Nov 8, 2026
66b87bb
feat(three-native): bind EdgesGeometry, Box2, AnimationUtils, CCDIKSo…
jonit-dev Nov 8, 2026
87b7aaa
docs(PRD-784): close P5-9 at the JS-portable names; the C++ remainder…
jonit-dev Nov 8, 2026
39fced0
docs(PRD-784): PRD-854 lives on its own draft PR #637
jonit-dev Nov 8, 2026
5e6a711
Merge remote-tracking branch 'origin/develop' into feat/prd-784-ps4-f…
jonit-dev Nov 8, 2026
2d73064
test(PRD-784): PS4 tests register their temporary directories with th…
jonit-dev Nov 8, 2026
6c4903e
chore(runtime-native): regenerate the native coverage report for the …
jonit-dev Nov 8, 2026
ccf18cc
test(PRD-784): native dependency contracts expect meshopt on Linux ar…
jonit-dev Nov 8, 2026
33bd5d3
fix(ps4): the host deps that landed in third_party stay out of the guest
jonit-dev Nov 8, 2026
a058e5b
docs(PRD-784): the console is 14.00, and no public jailbreak exists f…
jonit-dev Nov 8, 2026
bbfdc0b
Merge remote-tracking branch 'origin/develop' into feat/prd-784-ps4-f…
jonit-dev Nov 8, 2026
69ad4fe
docs(PRD-784): the 14.00 method is afterglow, public since 2026-11-06
jonit-dev Nov 8, 2026
f7467d9
fix(ps4): the package ships the rights blob, or the console calls it …
jonit-dev Nov 8, 2026
9358f9c
chore(runtime-native): regenerate the native coverage report after th…
jonit-dev Nov 8, 2026
63f4dc7
Merge remote-tracking branch 'origin/develop' into feat/prd-784-ps4-f…
jonit-dev Nov 8, 2026
69be106
chore(runtime-native): regenerate the native coverage report on the d…
jonit-dev Nov 8, 2026
703f0ec
test(PRD-784): the CMake contracts expect the PS4 guest to skip the h…
jonit-dev Nov 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/actions/native-engine-wasm/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,9 @@ runs:
sh "$GITHUB_WORKSPACE/scripts/retry-download.sh" "$GITHUB_WORKSPACE/.cache/emsdk/emsdk" install "$TN_EMSDK_VERSION"
fi
"$GITHUB_WORKSPACE/.cache/emsdk/emsdk" activate "$TN_EMSDK_VERSION"
# The web engine reads three pinned sources: stb (images), cgltf (glTF) and libwebp.
for dependency in stb cgltf webp-source; do
# The web engine reads four pinned sources: stb (images), cgltf (glTF), libwebp and
# meshoptimizer (EXT/KHR_meshopt_compression in the same glTF loader).
for dependency in stb cgltf webp-source meshopt; do
node scripts/download-deps.mjs --only "$dependency"
done
source "$GITHUB_WORKSPACE/.cache/emsdk/emsdk_env.sh"
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1564,8 +1564,9 @@ jobs:
run: |
set -euo pipefail
ccache --zero-stats
# The core reads the web engine's pinned sources too (stb decodes SMAANode's tables).
for dependency in stb cgltf webp-source; do
# The core reads the web engine's pinned sources too (stb decodes SMAANode's tables), and
# the glTF loader decodes meshopt-compressed models with the pinned meshoptimizer.
for dependency in stb cgltf webp-source meshopt; do
node scripts/download-deps.mjs --only "$dependency"
done
cmake -S . -B build/native-engine -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DTN_ENGINE_CORE_ONLY=ON
Expand Down
42 changes: 41 additions & 1 deletion .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ jobs:
native-assets: ${{ steps.filter.outputs.native-assets }}
tone: ${{ steps.filter.outputs.tone }}
vegetation: ${{ steps.filter.outputs.vegetation }}
playstation: ${{ steps.filter.outputs.playstation }}
velocity: ${{ steps.filter.outputs.velocity }}
world-capture: ${{ steps.filter.outputs.world-capture }}
# PRD-620: the caller's admitted heavy slice, validated and re-emitted as safe JSON. Absent
Expand Down Expand Up @@ -109,6 +110,7 @@ jobs:
velocity ^packages/core/src/renderProjection\.ts$|^packages/core/src/render/velocity\.ts$|^packages/core/src/render/batched-velocity\.ts$|^packages/core/__tests__/render-velocity\.spec\.ts$|^packages/core/__tests__/instance-velocity-upload\.spec\.ts$|^packages/core/__tests__/velocity-coverage-proof\.spec\.ts$|^packages/core/__tests__/skinned-velocity-bind-history\.spec\.ts$|^packages/core/patches/three@0\.185\.1\.patch$|^packages/playtest/.*$|^examples/abyss-framework/velocity-main\.ts$|^examples/abyss-framework/velocity-cost-main\.ts$|^examples/abyss-framework/velocity-cost\.html$|^examples/abyss-framework/src/render/velocityCost\.ts$|^examples/abyss-framework/playtests/velocity-cost\.playtest\.json$|^scripts/__tests__/velocity-cost-proof\.spec\.ts$|^examples/abyss-framework/src/render/velocityReadback\.ts$|^examples/abyss-framework/src/render/velocityCoverage\.ts$|^examples/abyss-framework/velocity\.html$|^examples/abyss-framework/velocity\.vite\.config\.ts$|^examples/abyss-framework/velocity\.tsconfig\.json$|^examples/abyss-framework/playtests/velocity-history\.playtest\.json$|^scripts/verify-velocity-history\.ts$|^scripts/velocity-capture-proof\.ts$|^scripts/__tests__/velocity-capture-proof\.spec\.ts$|^pnpm-lock\.yaml$
tone ^scripts/xvfb\.sh$|^packages/playtest/.*$|^examples/abyss-framework/src/render/toneCalibration\.ts$|^examples/abyss-framework/src/tone-main\.ts$|^examples/abyss-framework/tone\.html$|^examples/abyss-framework/tone\.vite\.config\.ts$|^examples/abyss-framework/playtests/tone\.playtest\.json$|^examples/abyss-framework/package\.json$|^scripts/verify-tone-exposure\.ts$|^scripts/tone-capture-proof\.ts$|^scripts/__tests__/tone-capture-proof\.spec\.ts$|^scripts/non-visual-scenarios\.mjs$|^package\.json$|^pnpm-lock\.yaml$|^\.github/actions/pnpm/.*$|^\.github/actions/playwright-chromium/.*$|^packages/create-threenative/(template-assets|templates/[^/]+/src/render)/(autoExposure|exposure|exposureGraph|exposureReadback|exposureSettings|worldEnvironment)\.ts$
vegetation ^examples/integrations/vegetation/.*$
playstation ^packages/runtime-native/scripts/ps4/.*$|^packages/runtime-native/tests/ps4-[^/]*\.test\.mjs$|^packages/runtime-native/tests/fixtures/ps4-frames/.*$|^packages/runtime-native/cmake/ps4\.toolchain\.cmake$|^packages/runtime-native/src/platform/ps4_main\.cpp$
world-capture ^packages/core/src/world[^/]*\.ts$|^packages/core/__tests__/world-capture-fixture\.spec\.ts$|^packages/playtest/.*$|^packages/assets/.*$|^examples/abyss-framework/src/scenes/WorldProbe\.ts$|^examples/abyss-framework/src/world-main\.ts$|^examples/abyss-framework/src/style\.css$|^examples/abyss-framework/assets/world/.*$|^examples/abyss-framework/index\.html$|^examples/abyss-framework/vite\.config\.ts$|^examples/abyss-framework/threenative\.config\.ts$|^examples/abyss-framework/playtests/phase477-world-capture\.playtest\.json$|^examples/abyss-framework/package\.json$|^scripts/verify-world-capture\.ts$|^scripts/world-capture-manifest\.ts$|^scripts/world-visual-gate\.ts$|^scripts/capture-guard\.ts$|^scripts/__tests__/verify-world-capture\.spec\.ts$|^scripts/__tests__/world-capture-manifest\.spec\.ts$|^scripts/__tests__/world-visual-gate\.spec\.ts$|^package\.json$|^pnpm-lock\.yaml$|^pnpm-workspace\.yaml$|^\.github/actions/pnpm/.*$|^\.github/actions/playwright-chromium/.*$
run: |
node scripts/ci-integration-scope.mjs
Expand Down Expand Up @@ -215,6 +217,44 @@ jobs:
path: ${{ github.workspace }}/artifacts/ci-integration-receipts/${{ github.job }}.json
if-no-files-found: error

# PRD-784: the PS4 visual parity lock, only when PS4 code changes. It checks the driver patches, the
# CPU mip chain and the region claims on the kept Cube Spin frames. PS4 code inside the engine tree
# (texture_copy.h, gamepads.cpp) selects the native-engine job instead, and the `test` job runs these
# same files. The emulator capture needs the OpenOrbis toolchain, a PS4 V8 build and shadPS4, which
# no runner has: it stays local (`run-experiment.mjs e5`, then `check-frame.mjs` on its screenshots).
playstation:
name: playstation
if: ${{ needs.paths.outputs.playstation == 'true' && !github.event.pull_request.draft }}
needs: paths
runs-on: ${{ (github.event.pull_request.head.repo.fork || !vars.TN_RUNNER || !contains(fromJSON(needs.paths.outputs.runner_admission || '[]'), 'integration:playstation')) && 'ubuntu-24.04' || vars.TN_RUNNER }}
timeout-minutes: 10
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
with:
persist-credentials: false
ref: ${{ inputs.candidate_sha }}
- uses: ./.github/actions/pnpm
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with:
node-version: '22'
cache: pnpm
- run: pnpm install --frozen-lockfile --filter @threenative/runtime-native
- name: PS4 parity lock (patches, CPU mip chain, Cube Spin frame claims)
working-directory: packages/runtime-native
run: pnpm exec vitest run --config vitest.config.ts tests/ps4-stage-guest-ui.test.mjs tests/ps4-frame-check.test.mjs
- name: Record exact current-attempt integration receipt
if: ${{ always() }}
env:
GH_TOKEN: ${{ github.token }}
TN_CI_JOB_RESULT: ${{ job.status }}
run: node "$GITHUB_WORKSPACE/scripts/ci-integration-receipts.mjs" --write
- uses: actions/upload-artifact@v7
if: ${{ always() }}
with:
name: ci-integration-receipt-${{ github.run_id }}-${{ github.run_attempt }}-${{ inputs.candidate_sha }}-${{ github.job }}
path: ${{ github.workspace }}/artifacts/ci-integration-receipts/${{ github.job }}.json
if-no-files-found: error

decals:
name: decals
if: ${{ needs.paths.outputs.decals == 'true' && !github.event.pull_request.draft }}
Expand Down Expand Up @@ -1094,7 +1134,7 @@ jobs:

completion:
name: Verify required integration receipts
needs: [paths, csg, ik, vegetation, decals, decals-native, tone, animation, animation-native, fog, fog-native, capture, fluid-collision, fluid-collision-native, packaged-quickjs, exposure, cold-boot, temporal, velocity]
needs: [paths, csg, ik, vegetation, playstation, decals, decals-native, tone, animation, animation-native, fog, fog-native, capture, fluid-collision, fluid-collision-native, packaged-quickjs, exposure, cold-boot, temporal, velocity]
if: ${{ always() }}
runs-on: ${{ (github.event.pull_request.head.repo.fork || !vars.TN_RUNNER_LIGHT) && 'ubuntu-24.04' || vars.TN_RUNNER_LIGHT }}
# 5 was read off a quiet runner: 40534772948 (develop) collected in 3m35s. It has no headroom —
Expand Down
Loading
Loading