Document P1 and P3 integrated acceptance
@@ -4,7 +4,7 @@ The [unaltered version 2 workflow report](report.json) was produced by a clean
|
||||
`6c2e8fa80036315a695f67f3c53524165fb4b10a` checkout on 2026-09-24.
|
||||
It used disposable copies of the checked-in `collect-3d` and `examples/lua`
|
||||
projects. Every sample, process log and Player profile is retained under `raw/`;
|
||||
[the run log](workflow.log) shows the order and completion. The report identifies
|
||||
the report records the order and completion. The report identifies
|
||||
each input revision by SHA-256, and records all command arguments, phase labels,
|
||||
configuration and dirty-tree state. Its SHA-256 is
|
||||
`fd463c0cd12eed0a22143aa68bd732386804b0df4ecb2a3d9caa26f59dcfe6e2`.
|
||||
@@ -98,6 +98,12 @@ faces. This is a measured tracking-budget miss, not a failed export or a reason
|
||||
to redefine the counter silently. The linked dossier retains exact values,
|
||||
atlas breakdown, raw profiles and source/toolchain provenance.
|
||||
|
||||
The [final integrated acceptance](../p1-p3-final-2026-09-24/README.md) reruns
|
||||
all three relocated Release packages at clean `ed523c6` after the queued-edit
|
||||
source-signature fix. A deterministic test first reproduced the false stale
|
||||
schema state, then verified that Build and Export publish the worker's actual
|
||||
source hash. This does not revise the older 240-frame timing or memory baseline.
|
||||
|
||||
The [Lua-only Linux Release dossier](../lua-release-2026-09-24/README.md) separately
|
||||
records a relocated package that validated and rendered 120 frames after hiding
|
||||
its source project, with 0 validation errors. The final fixture placement was
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
# P1 and P3 integrated acceptance — 2026-09-24
|
||||
|
||||
The final code revision is `ed523c61c106b8e19614e4d56f0b5d39b8392478`.
|
||||
The [Release export report](report.json) records a clean source checkout and the
|
||||
exact Editor SHA-256. The Editor exported `collect-2d`, `collect-3d` with its
|
||||
Blender exit arch, and the Lua-only example. Each package was relocated to a
|
||||
Unicode-named path outside its disposable source project; those source paths
|
||||
were hidden while the Player validated and rendered from an unrelated working
|
||||
directory. All three packages passed **120/120** offscreen frames on a physical
|
||||
NVIDIA GeForce RTX 2080 Ti with active Vulkan validation and zero errors. The
|
||||
[file checksums](SHA256SUMS.txt), package manifests for
|
||||
[2D](evidence/collect-2d-manifest.json),
|
||||
[3D](evidence/collect-3d-manifest.json) and
|
||||
[Lua](evidence/lua-manifest.json), and raw [2D](evidence/collect-2d-profile.json),
|
||||
[3D](evidence/collect-3d-profile.json), and [Lua](evidence/lua-profile.json)
|
||||
profiles preserve the result without duplicating native build directories.
|
||||
|
||||
| Final-code check | Result |
|
||||
| --- | --- |
|
||||
| Linux Debug full CTest | 76 passed, 1 compositor-dependent native window skip, 0 failed (77 registered) |
|
||||
| Linux Release P1/P3-focused CTest | 24 passed, 0 failed |
|
||||
| Relocated Release games on physical Linux GPU | C++ 2D, C++ 3D, Lua-only: 120 frames each; validation active, 0 errors |
|
||||
| [Native/manual CI](https://github.com/emil28092005/Faset_Engine/actions/runs/35949830254) | Linux and Windows native checks plus strict MkDocs passed |
|
||||
| [Windows software-Vulkan CI](https://github.com/emil28092005/Faset_Engine/actions/runs/35949830251) | Final revision run; see linked job result |
|
||||
|
||||
The P1 queued-edit regression verifies that an asynchronous Build or Export
|
||||
reports the gameplay-source hash captured by its worker, not the hash from when
|
||||
the command entered the queue. The P3 shader-reload regression first reproduced
|
||||
a null-pipeline crash during Direct-to-GPU switching with TAA active; the
|
||||
failed transition now preserves the old pipelines and history and can be
|
||||
retried after restoring the shader package. Both regressions are in the full
|
||||
Linux suite and Windows native/graphics checks.
|
||||
|
||||
The [final P3 temporal matrix](../p3-temporal-2026-09-24/matrix/integrated-ed523c6/README.md)
|
||||
records 1,386 lossless frames across Direct, GPU frustum and GPU occlusion,
|
||||
plus an independent 90-frame 720p profile. All captures used active Vulkan
|
||||
validation with zero errors; its 1,388 PNG files are byte-identical to the
|
||||
earlier branch matrix. The [integrated lighting study](../../studies/24-p3-integrated-forward-plus-2026-09-24.md)
|
||||
contains 7,560 frame rows from the earlier clean `4a3453e` revision, on the
|
||||
same physical GPU and shader path. Its dense tile build+raster case was slower
|
||||
than forward; the localized-light case was faster, so `Auto` remains forward.
|
||||
The P1 [240-frame Release reference](../p1-iteration-2026-09-24/final-release/README.md)
|
||||
passed the original small-demo timing budgets but missed the old 20 MiB
|
||||
explicit-allocation target at 43.02/43.12 MiB because both shadow atlases are
|
||||
allocated eagerly. The final revision does not change that allocation policy.
|
||||
|
||||
TAA and 0.67 Upscale remain opt-in. The 2× spatial reference was more accurate
|
||||
on the fixed thin-wire fixture, and Upscale did not reduce whole-frame GPU time
|
||||
in the sparse 720p test. These checks cover one physical Linux GPU and Windows
|
||||
SwiftShader functionality; a physical Windows GPU and broader driver families
|
||||
still need separate testing.
|
||||
|
||||
Reproduce the relocated Release check from a clean source checkout with the
|
||||
documented dependencies:
|
||||
|
||||
```sh
|
||||
cmake --preset linux-release
|
||||
cmake --build --preset linux-release --target faset_editor --parallel 2
|
||||
python3 tools/verify_playable_exports.py \
|
||||
--editor build/linux-release/faset_editor \
|
||||
--output /tmp/faset-p1-p3-export-new \
|
||||
--standalone-root /tmp/faset-p1-p3-games-new \
|
||||
--include-lua
|
||||
```
|
||||
|
||||
Use fresh output paths. The verifier retains the full packages and captures
|
||||
outside the repository, while this dossier commits the report, selected
|
||||
manifests, per-frame profiles, and run records.
|
||||
@@ -0,0 +1,13 @@
|
||||
53aa10c37bb1c86a4cbecd040c8db3ea2104225c5463dde2475544d7ccc4e098 report.json
|
||||
0b25fbe9008fc8d0af4ee24fac8eeafe986edfcf117db5c6c25ef03e98e4e1ed evidence/collect-2d-manifest.json
|
||||
51b3756c7e81b5e1d8d48a0a145725745b6557aa722aca2c0bc2a116540f6e50 evidence/collect-2d-profile.json
|
||||
893f77cbb5312a72ba51977a41bf1821ce7d8598fba6298eb12cf71d0f9e0653 evidence/collect-2d-run.json
|
||||
ca001236d8b832b6c4243ba89eccf7321c97791d4bc65439abab94fce84c7a12 evidence/collect-2d-validate.json
|
||||
3df6c30b4ee77f39a3669ca861f91ecafe65af83166863265c7c3a71ba02acee evidence/collect-3d-manifest.json
|
||||
f1257c452464c772b396e49d5cc82e308731d390acf806340319eff52b1e1ca3 evidence/collect-3d-profile.json
|
||||
8c01257fa600e0574907dad4120d13192d965df2a617d3f120ef0a2a0384aff2 evidence/collect-3d-run.json
|
||||
ac2393c08fbdf65cc49cbf4fb67ba2f19744c21fea24e442be1fb5adaf3a90e6 evidence/collect-3d-validate.json
|
||||
bf9b158062e04b9f6c6de0b19ac37082e5ab1dec353a4c7d55d5ee645c0d4a47 evidence/lua-manifest.json
|
||||
97fd804af08b93b584572282824a34a98ab0f3b868783555f3ac425d68c186ba evidence/lua-profile.json
|
||||
a7ce66d0bc5e4d986ca29a2583149439f8b6e9eb269ac52fe6124b7903538d67 evidence/lua-run.json
|
||||
b944b17455adad19dffb2e80b6f5895b7969e98321c5618ae1f67e26542bab38 evidence/lua-validate.json
|
||||
@@ -0,0 +1,269 @@
|
||||
{
|
||||
"asset_generations": {},
|
||||
"build_fingerprint": "4e24b57bd9e1c76da8e01d84369654fcb075b5c01560223eb659d73fea9d009a",
|
||||
"configuration": "Release",
|
||||
"executable": "faset_player",
|
||||
"files": [
|
||||
{
|
||||
"path": "README.txt",
|
||||
"sha256": "82bf72bc542643f6c4090e0a5de69b0014ca3fa17c6f9dfb12cc41e44c8b8db6",
|
||||
"size": 262
|
||||
},
|
||||
{
|
||||
"path": "Notices/Faset-NOTICE.txt",
|
||||
"sha256": "30c2e7e80f5153b31ab57675e07246aef9165965d64e36022b426a26449ece3f",
|
||||
"size": 204
|
||||
},
|
||||
{
|
||||
"path": "Notices/dependencies.json",
|
||||
"sha256": "a54639ad2d9ad13c2e5f1ec90d6775f5dfc493656789b78c7e44debe2a378fdc",
|
||||
"size": 2206
|
||||
},
|
||||
{
|
||||
"path": "Notices/stb/LICENSE",
|
||||
"sha256": "bebfe904b14301657e4e5d655c811d51fd31b97c455b9cc2d8600d6bac6cff63",
|
||||
"size": 2510
|
||||
},
|
||||
{
|
||||
"path": "Notices/json/LICENSE.MIT",
|
||||
"sha256": "46a65cffd1ea955132d95a8dd921640714a8d6b537d2e4e482d31145ae95b603",
|
||||
"size": 1076
|
||||
},
|
||||
{
|
||||
"path": "Notices/box3d/LICENSE",
|
||||
"sha256": "da5e31a26bf3cfd5ba5c96d6823e480128c81e76c107ef9d3ee5d94789184b90",
|
||||
"size": 1067
|
||||
},
|
||||
{
|
||||
"path": "Notices/box2d/LICENSE",
|
||||
"sha256": "68a3e676d7e94093b102d5cba0d4e04af812040d6f230c3db67a6664574e43d2",
|
||||
"size": 1067
|
||||
},
|
||||
{
|
||||
"path": "Notices/entt/LICENSE",
|
||||
"sha256": "0785027ce472d7c61f05fba664a1d3ba6639c1593ced351ad9e4bed868765d99",
|
||||
"size": 1097
|
||||
},
|
||||
{
|
||||
"path": "Notices/sdl3/LICENSE.txt",
|
||||
"sha256": "97f35b302b361680ec1e891e95d2d52097bb95abff361434916d99dc1305f127",
|
||||
"size": 884
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuTemporalVertexMain.reflection.json",
|
||||
"sha256": "7a8efe2645e7ce465ca44d19f8cfb2eb6c767abd1c3ce12ed69a149a50be8a8c",
|
||||
"size": 3308
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuTemporalVertexMain.spv",
|
||||
"sha256": "dfe7309aafbd41974668b295e179354965db440e4156b9f12d6a67db16b357f9",
|
||||
"size": 5996
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalFragmentMain.reflection.json",
|
||||
"sha256": "e36452227788f3703d7342b6d9a7a0efef74ce4da3aa96bb176a26e169ec3628",
|
||||
"size": 3874
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalFragmentMain.spv",
|
||||
"sha256": "03adc6673276979b3ea46becf3a36940d3061af77cb8c965c7471feff8dbf89a",
|
||||
"size": 30976
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalVertexMain.reflection.json",
|
||||
"sha256": "6f7812ce88b14bca62a6d2ad82a8657e2ee48c252558f34677c6a2bd980a7edb",
|
||||
"size": 3935
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalVertexMain.spv",
|
||||
"sha256": "6cc3535c952a33ee46fd417fbec7fcad8f24357508b2119256b3077be3d60955",
|
||||
"size": 1784
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalCompositeFragmentMain.reflection.json",
|
||||
"sha256": "44765a41fc362c9a97b1a19834f285e2e7facb24d8715e3d8559b8e9633a7a0e",
|
||||
"size": 959
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalCompositeFragmentMain.spv",
|
||||
"sha256": "9e21c8534c0e70a58ae018fb2d143bf9cfb70112e71b67585f525eef0aecad1b",
|
||||
"size": 768
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalCompositeVertexMain.reflection.json",
|
||||
"sha256": "a3a2ea858bd038423896043b0703704f707addceb5bd56721cd897f6bd092065",
|
||||
"size": 956
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalCompositeVertexMain.spv",
|
||||
"sha256": "6b19f65b64f40d0a249660fdfba9dd5d95831ffab7314a307bf1f5cf39c6a248",
|
||||
"size": 340
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalResolveMain.reflection.json",
|
||||
"sha256": "07177e347d62c243264d5b70a6d0c24611fddeb30fcce6b448dd1488af8371e3",
|
||||
"size": 3381
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalResolveMain.spv",
|
||||
"sha256": "5f579dfe762d201db5ba33483b14bd0e0d37051735874919a3913ee00157bad7",
|
||||
"size": 23236
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuPostCullMain.reflection.json",
|
||||
"sha256": "19ce128388c7f88e0c517fb58a25e46f1382e35ae5f376b10eebe155a2811c4c",
|
||||
"size": 3591
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuHzbMain.reflection.json",
|
||||
"sha256": "589818f670881c64f3aba726ee3bc82fe4b9d835a347f99134e0e157dc4a112e",
|
||||
"size": 2050
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuCullMain.reflection.json",
|
||||
"sha256": "8986a45a8d29743d16f0caece9181b18c85d6490d93b4a56cdb4f53052890f3f",
|
||||
"size": 3587
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuShadowMain.reflection.json",
|
||||
"sha256": "96b3620b163dadf214933cfba6600b1b6a835c4d98b75b1f83e6ccd3dedb2425",
|
||||
"size": 2755
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuVertexMain.reflection.json",
|
||||
"sha256": "01a6cc1bbf3c11c558560d6f8557fd4582d392906ed20a8c729673d0ebf640ed",
|
||||
"size": 3098
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuPostCullMain.spv",
|
||||
"sha256": "1f8edd3be1f99f9433494a6f7be68f1317d6e7099e19354a7b8130d5d932224d",
|
||||
"size": 12548
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuHzbMain.spv",
|
||||
"sha256": "08682362ee2120ed19d260e613285071747c3e436bb09bb6238e46f9cedc2308",
|
||||
"size": 4140
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuCullMain.spv",
|
||||
"sha256": "e5ea6589ddb3613b59f8e58420be95a534cf4149816bc65bae26b1395c638955",
|
||||
"size": 16288
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuShadowMain.spv",
|
||||
"sha256": "f56e0ae3e9b31cb1e3f24e379c81e11c853f8a7102648aaaebc92a17c7e8e53c",
|
||||
"size": 2492
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuVertexMain.spv",
|
||||
"sha256": "32421d4a91f3a88d5210fee7af34b48bcad83072f14e2ccb9ef2ff983e45f78f",
|
||||
"size": 5016
|
||||
},
|
||||
{
|
||||
"path": "shaders/shadowMain.reflection.json",
|
||||
"sha256": "d39e2f83c797589296eac9dce139b9ad836a895d6685bc40f79dd2609d687fee",
|
||||
"size": 3597
|
||||
},
|
||||
{
|
||||
"path": "shaders/fragmentMain.reflection.json",
|
||||
"sha256": "2b07af2aae7578bdb6c2aa22658538821608b1dd5aeddd7b06e42b2e78cedf12",
|
||||
"size": 3596
|
||||
},
|
||||
{
|
||||
"path": "shaders/vertexMain.reflection.json",
|
||||
"sha256": "b3bdff863d53a0b385e06a36701a83a6ecafe9a93e97281a732cce8ff862c0db",
|
||||
"size": 3591
|
||||
},
|
||||
{
|
||||
"path": "shaders/lightTileMain.reflection.json",
|
||||
"sha256": "bf6a9256aaa6d6edacfa1e1c265d7c8ce2c1e4ea4036e0bea078c22fd4b536ca",
|
||||
"size": 1978
|
||||
},
|
||||
{
|
||||
"path": "shaders/lightTileMain.spv",
|
||||
"sha256": "92850edcc5ee5b586a90ce84ee69a98075a6fff3c13db4a57528d9431afe8b68",
|
||||
"size": 6800
|
||||
},
|
||||
{
|
||||
"path": "shaders/shadowMain.spv",
|
||||
"sha256": "7643b4d688492b5ee923b9606f0b0e70343ca05fa67673838206119a6f86d8d8",
|
||||
"size": 784
|
||||
},
|
||||
{
|
||||
"path": "shaders/fragmentMain.spv",
|
||||
"sha256": "fea4dd48664a510bad12b5e8582f2db798d4dbea62ce0de35dc2acfe32372733",
|
||||
"size": 28960
|
||||
},
|
||||
{
|
||||
"path": "shaders/vertexMain.spv",
|
||||
"sha256": "1ad2631c35d654f48166321ae43d4165043e1b919b14f1dc61caf97b1ada0898",
|
||||
"size": 1224
|
||||
},
|
||||
{
|
||||
"path": "faset_player",
|
||||
"sha256": "0ad5fa3dd08090b4fcfccf91714b86c6454dac43b37fbdbfeb2f3e5abb18dd51",
|
||||
"size": 6163032
|
||||
},
|
||||
{
|
||||
"path": "scene.fscene",
|
||||
"sha256": "0d7b221abc1cae5e9f1d04357c684ac6993f5878d634b4b950eec66dd8e55b2a",
|
||||
"size": 6214
|
||||
}
|
||||
],
|
||||
"format": "faset.export",
|
||||
"generation": "69bfdd90-4539-4fd5-852e-f43012482808",
|
||||
"lua_enabled": false,
|
||||
"lua_fingerprint": "",
|
||||
"platform": "linux",
|
||||
"prerequisites": [
|
||||
"Linux x86_64",
|
||||
"Vulkan 1.3 driver",
|
||||
"Compatible glibc and libstdc++ runtime"
|
||||
],
|
||||
"renderer_profile": {
|
||||
"api": "Vulkan 1.3",
|
||||
"materials": [
|
||||
"base-color factor and texture",
|
||||
"metallic and roughness factors"
|
||||
],
|
||||
"required_features": [
|
||||
"dynamicRendering",
|
||||
"synchronization2"
|
||||
],
|
||||
"shadow_atlases": {
|
||||
"caster_draw_limit": 4096,
|
||||
"fallback_resolution": 1024,
|
||||
"local_face_limit": 16,
|
||||
"preferred_resolution": 2048,
|
||||
"sampled_d32_required": true,
|
||||
"sun_cascade_limit": 4
|
||||
},
|
||||
"texture_sampling": "linear clamp, one mip level",
|
||||
"unsupported_material_features": [
|
||||
"normal maps",
|
||||
"metallic-roughness maps",
|
||||
"emissive and occlusion maps",
|
||||
"alpha mode selection",
|
||||
"unlit mode",
|
||||
"per-material face culling"
|
||||
]
|
||||
},
|
||||
"scene_hash": "fdfa1c49cf78a1cf52cd41b201c35bb0b5f852c90b7626b2a7f17da3e2e3e24c",
|
||||
"simulation": {
|
||||
"fixed_delta": 0.016666666666666666,
|
||||
"gravity": [
|
||||
0,
|
||||
-9.81,
|
||||
0
|
||||
],
|
||||
"max_catch_up_ticks": 4,
|
||||
"physics_substeps": 4
|
||||
},
|
||||
"units": {
|
||||
"angle": "radian",
|
||||
"coordinates": "right-handed Y-up",
|
||||
"distance": "metre"
|
||||
},
|
||||
"validation_log": "{\"dimension\":2,\"validated\":true}\n",
|
||||
"version": 1
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"arguments": [
|
||||
"/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/collect-2d/faset_player",
|
||||
"--headless",
|
||||
"--frames",
|
||||
"120",
|
||||
"--capture",
|
||||
"/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/collect-2d/verification.ppm",
|
||||
"--profile",
|
||||
"/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/collect-2d/profile.json"
|
||||
],
|
||||
"cwd": "/tmp/faset-p1-p3-ed523c6-games/empty-working-directory",
|
||||
"seconds": 0.7100785550137516,
|
||||
"exit_code": 0,
|
||||
"timed_out": false,
|
||||
"stdout": "New round: collect the three gold cubes, then reach the green exit. E resets.\n{\"device\":\"NVIDIA GeForce RTX 2080 Ti\",\"dimension\":2,\"effective_temporal_mode\":\"off\",\"effective_visibility_mode\":\"direct\",\"frames\":120,\"gpu_visibility_active\":false,\"temporal_mode\":\"off\",\"ticks\":120,\"validation_errors\":0,\"visibility_mode\":\"direct\"}\n",
|
||||
"stderr": ""
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"arguments": [
|
||||
"/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/collect-2d/faset_player",
|
||||
"--validate"
|
||||
],
|
||||
"cwd": "/tmp/faset-p1-p3-ed523c6-games/empty-working-directory",
|
||||
"seconds": 0.018040610011667013,
|
||||
"exit_code": 0,
|
||||
"timed_out": false,
|
||||
"stdout": "{\"dimension\":2,\"validated\":true}\n",
|
||||
"stderr": ""
|
||||
}
|
||||
@@ -0,0 +1,296 @@
|
||||
{
|
||||
"asset_generations": {
|
||||
"5832763b-3ed0-44d6-9088-0b524f196a91": "4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2"
|
||||
},
|
||||
"build_fingerprint": "decc796cd50c86e1550d33a559b4f876b691928a282c44583990589087b8579f",
|
||||
"configuration": "Release",
|
||||
"executable": "faset_player",
|
||||
"files": [
|
||||
{
|
||||
"path": "README.txt",
|
||||
"sha256": "82bf72bc542643f6c4090e0a5de69b0014ca3fa17c6f9dfb12cc41e44c8b8db6",
|
||||
"size": 262
|
||||
},
|
||||
{
|
||||
"path": "Notices/Faset-NOTICE.txt",
|
||||
"sha256": "30c2e7e80f5153b31ab57675e07246aef9165965d64e36022b426a26449ece3f",
|
||||
"size": 204
|
||||
},
|
||||
{
|
||||
"path": "Notices/dependencies.json",
|
||||
"sha256": "a54639ad2d9ad13c2e5f1ec90d6775f5dfc493656789b78c7e44debe2a378fdc",
|
||||
"size": 2206
|
||||
},
|
||||
{
|
||||
"path": "Notices/stb/LICENSE",
|
||||
"sha256": "bebfe904b14301657e4e5d655c811d51fd31b97c455b9cc2d8600d6bac6cff63",
|
||||
"size": 2510
|
||||
},
|
||||
{
|
||||
"path": "Notices/json/LICENSE.MIT",
|
||||
"sha256": "46a65cffd1ea955132d95a8dd921640714a8d6b537d2e4e482d31145ae95b603",
|
||||
"size": 1076
|
||||
},
|
||||
{
|
||||
"path": "Notices/box3d/LICENSE",
|
||||
"sha256": "da5e31a26bf3cfd5ba5c96d6823e480128c81e76c107ef9d3ee5d94789184b90",
|
||||
"size": 1067
|
||||
},
|
||||
{
|
||||
"path": "Notices/box2d/LICENSE",
|
||||
"sha256": "68a3e676d7e94093b102d5cba0d4e04af812040d6f230c3db67a6664574e43d2",
|
||||
"size": 1067
|
||||
},
|
||||
{
|
||||
"path": "Notices/entt/LICENSE",
|
||||
"sha256": "0785027ce472d7c61f05fba664a1d3ba6639c1593ced351ad9e4bed868765d99",
|
||||
"size": 1097
|
||||
},
|
||||
{
|
||||
"path": "Notices/sdl3/LICENSE.txt",
|
||||
"sha256": "97f35b302b361680ec1e891e95d2d52097bb95abff361434916d99dc1305f127",
|
||||
"size": 884
|
||||
},
|
||||
{
|
||||
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/current.json",
|
||||
"sha256": "b0732959808ce61ef5a3223fba2d9ad8c17a3ea7873d4a81c00aadee6c51032e",
|
||||
"size": 134
|
||||
},
|
||||
{
|
||||
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2/manifest.json",
|
||||
"sha256": "ee3f68794c6dc44ab492b1ba4640aa74e4de79a5ec10aed8dcdd45a03afc508e",
|
||||
"size": 4532
|
||||
},
|
||||
{
|
||||
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2/meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh",
|
||||
"sha256": "3875c16ea628d4126373ebfe07816621fbad3961596a2fcd112f1eec0e378071",
|
||||
"size": 928
|
||||
},
|
||||
{
|
||||
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2/meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh",
|
||||
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
|
||||
"size": 928
|
||||
},
|
||||
{
|
||||
"path": "assets/5832763b-3ed0-44d6-9088-0b524f196a91/generations/4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2/meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh",
|
||||
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
|
||||
"size": 928
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuTemporalVertexMain.reflection.json",
|
||||
"sha256": "7a8efe2645e7ce465ca44d19f8cfb2eb6c767abd1c3ce12ed69a149a50be8a8c",
|
||||
"size": 3308
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuTemporalVertexMain.spv",
|
||||
"sha256": "dfe7309aafbd41974668b295e179354965db440e4156b9f12d6a67db16b357f9",
|
||||
"size": 5996
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalFragmentMain.reflection.json",
|
||||
"sha256": "e36452227788f3703d7342b6d9a7a0efef74ce4da3aa96bb176a26e169ec3628",
|
||||
"size": 3874
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalFragmentMain.spv",
|
||||
"sha256": "03adc6673276979b3ea46becf3a36940d3061af77cb8c965c7471feff8dbf89a",
|
||||
"size": 30976
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalVertexMain.reflection.json",
|
||||
"sha256": "6f7812ce88b14bca62a6d2ad82a8657e2ee48c252558f34677c6a2bd980a7edb",
|
||||
"size": 3935
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalVertexMain.spv",
|
||||
"sha256": "6cc3535c952a33ee46fd417fbec7fcad8f24357508b2119256b3077be3d60955",
|
||||
"size": 1784
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalCompositeFragmentMain.reflection.json",
|
||||
"sha256": "44765a41fc362c9a97b1a19834f285e2e7facb24d8715e3d8559b8e9633a7a0e",
|
||||
"size": 959
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalCompositeFragmentMain.spv",
|
||||
"sha256": "9e21c8534c0e70a58ae018fb2d143bf9cfb70112e71b67585f525eef0aecad1b",
|
||||
"size": 768
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalCompositeVertexMain.reflection.json",
|
||||
"sha256": "a3a2ea858bd038423896043b0703704f707addceb5bd56721cd897f6bd092065",
|
||||
"size": 956
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalCompositeVertexMain.spv",
|
||||
"sha256": "6b19f65b64f40d0a249660fdfba9dd5d95831ffab7314a307bf1f5cf39c6a248",
|
||||
"size": 340
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalResolveMain.reflection.json",
|
||||
"sha256": "07177e347d62c243264d5b70a6d0c24611fddeb30fcce6b448dd1488af8371e3",
|
||||
"size": 3381
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalResolveMain.spv",
|
||||
"sha256": "5f579dfe762d201db5ba33483b14bd0e0d37051735874919a3913ee00157bad7",
|
||||
"size": 23236
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuPostCullMain.reflection.json",
|
||||
"sha256": "19ce128388c7f88e0c517fb58a25e46f1382e35ae5f376b10eebe155a2811c4c",
|
||||
"size": 3591
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuHzbMain.reflection.json",
|
||||
"sha256": "589818f670881c64f3aba726ee3bc82fe4b9d835a347f99134e0e157dc4a112e",
|
||||
"size": 2050
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuCullMain.reflection.json",
|
||||
"sha256": "8986a45a8d29743d16f0caece9181b18c85d6490d93b4a56cdb4f53052890f3f",
|
||||
"size": 3587
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuShadowMain.reflection.json",
|
||||
"sha256": "96b3620b163dadf214933cfba6600b1b6a835c4d98b75b1f83e6ccd3dedb2425",
|
||||
"size": 2755
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuVertexMain.reflection.json",
|
||||
"sha256": "01a6cc1bbf3c11c558560d6f8557fd4582d392906ed20a8c729673d0ebf640ed",
|
||||
"size": 3098
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuPostCullMain.spv",
|
||||
"sha256": "1f8edd3be1f99f9433494a6f7be68f1317d6e7099e19354a7b8130d5d932224d",
|
||||
"size": 12548
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuHzbMain.spv",
|
||||
"sha256": "08682362ee2120ed19d260e613285071747c3e436bb09bb6238e46f9cedc2308",
|
||||
"size": 4140
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuCullMain.spv",
|
||||
"sha256": "e5ea6589ddb3613b59f8e58420be95a534cf4149816bc65bae26b1395c638955",
|
||||
"size": 16288
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuShadowMain.spv",
|
||||
"sha256": "f56e0ae3e9b31cb1e3f24e379c81e11c853f8a7102648aaaebc92a17c7e8e53c",
|
||||
"size": 2492
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuVertexMain.spv",
|
||||
"sha256": "32421d4a91f3a88d5210fee7af34b48bcad83072f14e2ccb9ef2ff983e45f78f",
|
||||
"size": 5016
|
||||
},
|
||||
{
|
||||
"path": "shaders/shadowMain.reflection.json",
|
||||
"sha256": "d39e2f83c797589296eac9dce139b9ad836a895d6685bc40f79dd2609d687fee",
|
||||
"size": 3597
|
||||
},
|
||||
{
|
||||
"path": "shaders/fragmentMain.reflection.json",
|
||||
"sha256": "2b07af2aae7578bdb6c2aa22658538821608b1dd5aeddd7b06e42b2e78cedf12",
|
||||
"size": 3596
|
||||
},
|
||||
{
|
||||
"path": "shaders/vertexMain.reflection.json",
|
||||
"sha256": "b3bdff863d53a0b385e06a36701a83a6ecafe9a93e97281a732cce8ff862c0db",
|
||||
"size": 3591
|
||||
},
|
||||
{
|
||||
"path": "shaders/lightTileMain.reflection.json",
|
||||
"sha256": "bf6a9256aaa6d6edacfa1e1c265d7c8ce2c1e4ea4036e0bea078c22fd4b536ca",
|
||||
"size": 1978
|
||||
},
|
||||
{
|
||||
"path": "shaders/lightTileMain.spv",
|
||||
"sha256": "92850edcc5ee5b586a90ce84ee69a98075a6fff3c13db4a57528d9431afe8b68",
|
||||
"size": 6800
|
||||
},
|
||||
{
|
||||
"path": "shaders/shadowMain.spv",
|
||||
"sha256": "7643b4d688492b5ee923b9606f0b0e70343ca05fa67673838206119a6f86d8d8",
|
||||
"size": 784
|
||||
},
|
||||
{
|
||||
"path": "shaders/fragmentMain.spv",
|
||||
"sha256": "fea4dd48664a510bad12b5e8582f2db798d4dbea62ce0de35dc2acfe32372733",
|
||||
"size": 28960
|
||||
},
|
||||
{
|
||||
"path": "shaders/vertexMain.spv",
|
||||
"sha256": "1ad2631c35d654f48166321ae43d4165043e1b919b14f1dc61caf97b1ada0898",
|
||||
"size": 1224
|
||||
},
|
||||
{
|
||||
"path": "faset_player",
|
||||
"sha256": "aaca5e66ea65e7ff71e1e9ecb4dbc7f461cc3927dd422a90785ec669d7afb171",
|
||||
"size": 6168048
|
||||
},
|
||||
{
|
||||
"path": "scene.fscene",
|
||||
"sha256": "21c364140669ec82c6886102667b255df5ccdf0ec77e0ca64060f84dd7b86632",
|
||||
"size": 8639
|
||||
}
|
||||
],
|
||||
"format": "faset.export",
|
||||
"generation": "6c1dbd3a-7254-4b80-9dd5-ea433c42692c",
|
||||
"lua_enabled": false,
|
||||
"lua_fingerprint": "",
|
||||
"platform": "linux",
|
||||
"prerequisites": [
|
||||
"Linux x86_64",
|
||||
"Vulkan 1.3 driver",
|
||||
"Compatible glibc and libstdc++ runtime"
|
||||
],
|
||||
"renderer_profile": {
|
||||
"api": "Vulkan 1.3",
|
||||
"materials": [
|
||||
"base-color factor and texture",
|
||||
"metallic and roughness factors"
|
||||
],
|
||||
"required_features": [
|
||||
"dynamicRendering",
|
||||
"synchronization2"
|
||||
],
|
||||
"shadow_atlases": {
|
||||
"caster_draw_limit": 4096,
|
||||
"fallback_resolution": 1024,
|
||||
"local_face_limit": 16,
|
||||
"preferred_resolution": 2048,
|
||||
"sampled_d32_required": true,
|
||||
"sun_cascade_limit": 4
|
||||
},
|
||||
"texture_sampling": "linear clamp, one mip level",
|
||||
"unsupported_material_features": [
|
||||
"normal maps",
|
||||
"metallic-roughness maps",
|
||||
"emissive and occlusion maps",
|
||||
"alpha mode selection",
|
||||
"unlit mode",
|
||||
"per-material face culling"
|
||||
]
|
||||
},
|
||||
"scene_hash": "ee12794145c14ba5b599c5d9ae21648cccdfa91c47ee7742549f60d5fe7bc3e0",
|
||||
"simulation": {
|
||||
"fixed_delta": 0.016666666666666666,
|
||||
"gravity": [
|
||||
0,
|
||||
-9.81,
|
||||
0
|
||||
],
|
||||
"max_catch_up_ticks": 4,
|
||||
"physics_substeps": 4
|
||||
},
|
||||
"units": {
|
||||
"angle": "radian",
|
||||
"coordinates": "right-handed Y-up",
|
||||
"distance": "metre"
|
||||
},
|
||||
"validation_log": "warning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\n{\"dimension\":3,\"validated\":true}\n",
|
||||
"version": 1
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"arguments": [
|
||||
"/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/collect-3d/faset_player",
|
||||
"--headless",
|
||||
"--frames",
|
||||
"120",
|
||||
"--capture",
|
||||
"/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/collect-3d/verification.ppm",
|
||||
"--profile",
|
||||
"/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/collect-3d/profile.json"
|
||||
],
|
||||
"cwd": "/tmp/faset-p1-p3-ed523c6-games/empty-working-directory",
|
||||
"seconds": 0.6615268219902646,
|
||||
"exit_code": 0,
|
||||
"timed_out": false,
|
||||
"stdout": "New round: collect the three gold cubes, then reach the green exit. E resets.\n{\"device\":\"NVIDIA GeForce RTX 2080 Ti\",\"dimension\":3,\"effective_temporal_mode\":\"off\",\"effective_visibility_mode\":\"direct\",\"frames\":120,\"gpu_visibility_active\":false,\"temporal_mode\":\"off\",\"ticks\":120,\"validation_errors\":0,\"visibility_mode\":\"direct\"}\n",
|
||||
"stderr": "warning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\n"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"arguments": [
|
||||
"/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/collect-3d/faset_player",
|
||||
"--validate"
|
||||
],
|
||||
"cwd": "/tmp/faset-p1-p3-ed523c6-games/empty-working-directory",
|
||||
"seconds": 0.012342931993771344,
|
||||
"exit_code": 0,
|
||||
"timed_out": false,
|
||||
"stdout": "{\"dimension\":3,\"validated\":true}\n",
|
||||
"stderr": "warning: material material-bb63b094febbf90bb7049c9bcf7587bc has features beyond the initial base-color/PBR renderer\n"
|
||||
}
|
||||
@@ -0,0 +1,294 @@
|
||||
{
|
||||
"asset_generations": {},
|
||||
"build_fingerprint": "29bd60b58d0331ca9aef6738bc2de9b6e1fc700987de05730207cbd288013871",
|
||||
"configuration": "Release",
|
||||
"executable": "faset_player",
|
||||
"files": [
|
||||
{
|
||||
"path": "README.txt",
|
||||
"sha256": "82bf72bc542643f6c4090e0a5de69b0014ca3fa17c6f9dfb12cc41e44c8b8db6",
|
||||
"size": 262
|
||||
},
|
||||
{
|
||||
"path": "Notices/Faset-NOTICE.txt",
|
||||
"sha256": "30c2e7e80f5153b31ab57675e07246aef9165965d64e36022b426a26449ece3f",
|
||||
"size": 204
|
||||
},
|
||||
{
|
||||
"path": "Notices/dependencies.json",
|
||||
"sha256": "262e8f63cf21c516829b1fedb0900ac90e76d62aa8f78d9ad02d8f24e0359e74",
|
||||
"size": 2468
|
||||
},
|
||||
{
|
||||
"path": "Notices/lua/LICENSE.txt",
|
||||
"sha256": "e42d195c77d3ad7255ee9c874772d3c53998e7f60f9acf453d4630fa161e0bfe",
|
||||
"size": 1126
|
||||
},
|
||||
{
|
||||
"path": "Notices/stb/LICENSE",
|
||||
"sha256": "bebfe904b14301657e4e5d655c811d51fd31b97c455b9cc2d8600d6bac6cff63",
|
||||
"size": 2510
|
||||
},
|
||||
{
|
||||
"path": "Notices/json/LICENSE.MIT",
|
||||
"sha256": "46a65cffd1ea955132d95a8dd921640714a8d6b537d2e4e482d31145ae95b603",
|
||||
"size": 1076
|
||||
},
|
||||
{
|
||||
"path": "Notices/box3d/LICENSE",
|
||||
"sha256": "da5e31a26bf3cfd5ba5c96d6823e480128c81e76c107ef9d3ee5d94789184b90",
|
||||
"size": 1067
|
||||
},
|
||||
{
|
||||
"path": "Notices/box2d/LICENSE",
|
||||
"sha256": "68a3e676d7e94093b102d5cba0d4e04af812040d6f230c3db67a6664574e43d2",
|
||||
"size": 1067
|
||||
},
|
||||
{
|
||||
"path": "Notices/entt/LICENSE",
|
||||
"sha256": "0785027ce472d7c61f05fba664a1d3ba6639c1593ced351ad9e4bed868765d99",
|
||||
"size": 1097
|
||||
},
|
||||
{
|
||||
"path": "Notices/sdl3/LICENSE.txt",
|
||||
"sha256": "97f35b302b361680ec1e891e95d2d52097bb95abff361434916d99dc1305f127",
|
||||
"size": 884
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuTemporalVertexMain.reflection.json",
|
||||
"sha256": "7a8efe2645e7ce465ca44d19f8cfb2eb6c767abd1c3ce12ed69a149a50be8a8c",
|
||||
"size": 3308
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuTemporalVertexMain.spv",
|
||||
"sha256": "dfe7309aafbd41974668b295e179354965db440e4156b9f12d6a67db16b357f9",
|
||||
"size": 5996
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalFragmentMain.reflection.json",
|
||||
"sha256": "e36452227788f3703d7342b6d9a7a0efef74ce4da3aa96bb176a26e169ec3628",
|
||||
"size": 3874
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalFragmentMain.spv",
|
||||
"sha256": "03adc6673276979b3ea46becf3a36940d3061af77cb8c965c7471feff8dbf89a",
|
||||
"size": 30976
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalVertexMain.reflection.json",
|
||||
"sha256": "6f7812ce88b14bca62a6d2ad82a8657e2ee48c252558f34677c6a2bd980a7edb",
|
||||
"size": 3935
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalVertexMain.spv",
|
||||
"sha256": "6cc3535c952a33ee46fd417fbec7fcad8f24357508b2119256b3077be3d60955",
|
||||
"size": 1784
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalCompositeFragmentMain.reflection.json",
|
||||
"sha256": "44765a41fc362c9a97b1a19834f285e2e7facb24d8715e3d8559b8e9633a7a0e",
|
||||
"size": 959
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalCompositeFragmentMain.spv",
|
||||
"sha256": "9e21c8534c0e70a58ae018fb2d143bf9cfb70112e71b67585f525eef0aecad1b",
|
||||
"size": 768
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalCompositeVertexMain.reflection.json",
|
||||
"sha256": "a3a2ea858bd038423896043b0703704f707addceb5bd56721cd897f6bd092065",
|
||||
"size": 956
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalCompositeVertexMain.spv",
|
||||
"sha256": "6b19f65b64f40d0a249660fdfba9dd5d95831ffab7314a307bf1f5cf39c6a248",
|
||||
"size": 340
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalResolveMain.reflection.json",
|
||||
"sha256": "07177e347d62c243264d5b70a6d0c24611fddeb30fcce6b448dd1488af8371e3",
|
||||
"size": 3381
|
||||
},
|
||||
{
|
||||
"path": "shaders/temporalResolveMain.spv",
|
||||
"sha256": "5f579dfe762d201db5ba33483b14bd0e0d37051735874919a3913ee00157bad7",
|
||||
"size": 23236
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuPostCullMain.reflection.json",
|
||||
"sha256": "19ce128388c7f88e0c517fb58a25e46f1382e35ae5f376b10eebe155a2811c4c",
|
||||
"size": 3591
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuHzbMain.reflection.json",
|
||||
"sha256": "589818f670881c64f3aba726ee3bc82fe4b9d835a347f99134e0e157dc4a112e",
|
||||
"size": 2050
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuCullMain.reflection.json",
|
||||
"sha256": "8986a45a8d29743d16f0caece9181b18c85d6490d93b4a56cdb4f53052890f3f",
|
||||
"size": 3587
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuShadowMain.reflection.json",
|
||||
"sha256": "96b3620b163dadf214933cfba6600b1b6a835c4d98b75b1f83e6ccd3dedb2425",
|
||||
"size": 2755
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuVertexMain.reflection.json",
|
||||
"sha256": "01a6cc1bbf3c11c558560d6f8557fd4582d392906ed20a8c729673d0ebf640ed",
|
||||
"size": 3098
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuPostCullMain.spv",
|
||||
"sha256": "1f8edd3be1f99f9433494a6f7be68f1317d6e7099e19354a7b8130d5d932224d",
|
||||
"size": 12548
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuHzbMain.spv",
|
||||
"sha256": "08682362ee2120ed19d260e613285071747c3e436bb09bb6238e46f9cedc2308",
|
||||
"size": 4140
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuCullMain.spv",
|
||||
"sha256": "e5ea6589ddb3613b59f8e58420be95a534cf4149816bc65bae26b1395c638955",
|
||||
"size": 16288
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuShadowMain.spv",
|
||||
"sha256": "f56e0ae3e9b31cb1e3f24e379c81e11c853f8a7102648aaaebc92a17c7e8e53c",
|
||||
"size": 2492
|
||||
},
|
||||
{
|
||||
"path": "shaders/gpuVertexMain.spv",
|
||||
"sha256": "32421d4a91f3a88d5210fee7af34b48bcad83072f14e2ccb9ef2ff983e45f78f",
|
||||
"size": 5016
|
||||
},
|
||||
{
|
||||
"path": "shaders/shadowMain.reflection.json",
|
||||
"sha256": "d39e2f83c797589296eac9dce139b9ad836a895d6685bc40f79dd2609d687fee",
|
||||
"size": 3597
|
||||
},
|
||||
{
|
||||
"path": "shaders/fragmentMain.reflection.json",
|
||||
"sha256": "2b07af2aae7578bdb6c2aa22658538821608b1dd5aeddd7b06e42b2e78cedf12",
|
||||
"size": 3596
|
||||
},
|
||||
{
|
||||
"path": "shaders/vertexMain.reflection.json",
|
||||
"sha256": "b3bdff863d53a0b385e06a36701a83a6ecafe9a93e97281a732cce8ff862c0db",
|
||||
"size": 3591
|
||||
},
|
||||
{
|
||||
"path": "shaders/lightTileMain.reflection.json",
|
||||
"sha256": "bf6a9256aaa6d6edacfa1e1c265d7c8ce2c1e4ea4036e0bea078c22fd4b536ca",
|
||||
"size": 1978
|
||||
},
|
||||
{
|
||||
"path": "shaders/lightTileMain.spv",
|
||||
"sha256": "92850edcc5ee5b586a90ce84ee69a98075a6fff3c13db4a57528d9431afe8b68",
|
||||
"size": 6800
|
||||
},
|
||||
{
|
||||
"path": "shaders/shadowMain.spv",
|
||||
"sha256": "7643b4d688492b5ee923b9606f0b0e70343ca05fa67673838206119a6f86d8d8",
|
||||
"size": 784
|
||||
},
|
||||
{
|
||||
"path": "shaders/fragmentMain.spv",
|
||||
"sha256": "fea4dd48664a510bad12b5e8582f2db798d4dbea62ce0de35dc2acfe32372733",
|
||||
"size": 28960
|
||||
},
|
||||
{
|
||||
"path": "shaders/vertexMain.spv",
|
||||
"sha256": "1ad2631c35d654f48166321ae43d4165043e1b919b14f1dc61caf97b1ada0898",
|
||||
"size": 1224
|
||||
},
|
||||
{
|
||||
"path": "faset_player",
|
||||
"sha256": "fa97bc49dd022aba111764957ce0ee39a96f9fcaf898bcf34da6cd752a441c5c",
|
||||
"size": 6513616
|
||||
},
|
||||
{
|
||||
"path": "project.faset.json",
|
||||
"sha256": "e07b12047f8141c3c4cc8f0e7d0905a5c635375e4494755e34191db0859ab86f",
|
||||
"size": 175
|
||||
},
|
||||
{
|
||||
"path": "Scripts/util/motion.lua",
|
||||
"sha256": "bad3dcdc1081fd1dec589c12dad8dc175b739d77ea52b957ead9ecb4b7cb88a3",
|
||||
"size": 150
|
||||
},
|
||||
{
|
||||
"path": "Scripts/player.lua",
|
||||
"sha256": "1c51810574a3413c46a7cbd0ea2e84a9b802da1206a2b72bb78f6cc951367a11",
|
||||
"size": 1376
|
||||
},
|
||||
{
|
||||
"path": "Scripts/beacon.lua",
|
||||
"sha256": "44d932ebedf66cadb9620f2d926177be2f8d43d71d56aa83611de686af026231",
|
||||
"size": 820
|
||||
},
|
||||
{
|
||||
"path": "scene.fscene",
|
||||
"sha256": "641ba14a1f9c3966b9ec797814fdfa54f954dc5e0d53ab00c645598edef61baf",
|
||||
"size": 1681
|
||||
}
|
||||
],
|
||||
"format": "faset.export",
|
||||
"generation": "e6cea245-85ab-4203-9a79-747cd19c5139",
|
||||
"lua_enabled": true,
|
||||
"lua_fingerprint": "a9261789bb1e0ca38bd40b08b0454165cd51454cba3ad4725dd357812ced6e35",
|
||||
"platform": "linux",
|
||||
"prerequisites": [
|
||||
"Linux x86_64",
|
||||
"Vulkan 1.3 driver",
|
||||
"Compatible glibc and libstdc++ runtime"
|
||||
],
|
||||
"renderer_profile": {
|
||||
"api": "Vulkan 1.3",
|
||||
"materials": [
|
||||
"base-color factor and texture",
|
||||
"metallic and roughness factors"
|
||||
],
|
||||
"required_features": [
|
||||
"dynamicRendering",
|
||||
"synchronization2"
|
||||
],
|
||||
"shadow_atlases": {
|
||||
"caster_draw_limit": 4096,
|
||||
"fallback_resolution": 1024,
|
||||
"local_face_limit": 16,
|
||||
"preferred_resolution": 2048,
|
||||
"sampled_d32_required": true,
|
||||
"sun_cascade_limit": 4
|
||||
},
|
||||
"texture_sampling": "linear clamp, one mip level",
|
||||
"unsupported_material_features": [
|
||||
"normal maps",
|
||||
"metallic-roughness maps",
|
||||
"emissive and occlusion maps",
|
||||
"alpha mode selection",
|
||||
"unlit mode",
|
||||
"per-material face culling"
|
||||
]
|
||||
},
|
||||
"scene_hash": "143724a468d711cbdf9a9700310d7b0acef003ce1b21422ca5204e0e565fa02c",
|
||||
"simulation": {
|
||||
"fixed_delta": 0.016666666666666666,
|
||||
"gravity": [
|
||||
0,
|
||||
-9.81,
|
||||
0
|
||||
],
|
||||
"max_catch_up_ticks": 4,
|
||||
"physics_substeps": 4
|
||||
},
|
||||
"units": {
|
||||
"angle": "radian",
|
||||
"coordinates": "right-handed Y-up",
|
||||
"distance": "metre"
|
||||
},
|
||||
"validation_log": "{\"dimension\":2,\"validated\":true}\n",
|
||||
"version": 1
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"arguments": [
|
||||
"/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/lua/faset_player",
|
||||
"--headless",
|
||||
"--frames",
|
||||
"120",
|
||||
"--capture",
|
||||
"/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/lua/verification.ppm",
|
||||
"--profile",
|
||||
"/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/lua/profile.json"
|
||||
],
|
||||
"cwd": "/tmp/faset-p1-p3-ed523c6-games/empty-working-directory",
|
||||
"seconds": 0.5867973900167271,
|
||||
"exit_code": 0,
|
||||
"timed_out": false,
|
||||
"stdout": "{\"device\":\"NVIDIA GeForce RTX 2080 Ti\",\"dimension\":2,\"effective_temporal_mode\":\"off\",\"effective_visibility_mode\":\"direct\",\"frames\":120,\"gpu_visibility_active\":false,\"temporal_mode\":\"off\",\"ticks\":120,\"validation_errors\":0,\"visibility_mode\":\"direct\"}\n",
|
||||
"stderr": "Lua player ready: A/D move, Space jump, E reset\n"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"arguments": [
|
||||
"/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/lua/faset_player",
|
||||
"--validate"
|
||||
],
|
||||
"cwd": "/tmp/faset-p1-p3-ed523c6-games/empty-working-directory",
|
||||
"seconds": 0.007388445985270664,
|
||||
"exit_code": 0,
|
||||
"timed_out": false,
|
||||
"stdout": "{\"dimension\":2,\"validated\":true}\n",
|
||||
"stderr": ""
|
||||
}
|
||||
@@ -0,0 +1,577 @@
|
||||
{
|
||||
"format": "faset.playable-export-verification",
|
||||
"version": 1,
|
||||
"started_utc": "2026-09-24T03:16:06.383543+00:00",
|
||||
"platform": "linux",
|
||||
"engine": "/home/emil/Desktop/.worktrees/Faset_Engine-p1-p3-integration",
|
||||
"editor": "/home/emil/Desktop/.worktrees/Faset_Engine-p1-p3-integration/build/linux-release/faset_editor",
|
||||
"standalone_root": "/tmp/faset-p1-p3-ed523c6-games",
|
||||
"engine_revision": "ed523c61c106b8e19614e4d56f0b5d39b8392478",
|
||||
"engine_dirty": false,
|
||||
"engine_git_status": [],
|
||||
"engine_diff_sha256": null,
|
||||
"editor_sha256": "142405fc82ea3c7fbf9866179651e75867e954149303ef2b182e122fd0f32524",
|
||||
"project_workspace": "/tmp/faset-p1-p3-ed523c6-export",
|
||||
"vulkaninfo_available": true,
|
||||
"driver_override": null,
|
||||
"frames_per_game": 120,
|
||||
"status": "passed",
|
||||
"projects": [
|
||||
{
|
||||
"name": "collect-2d",
|
||||
"dimension": 2,
|
||||
"language": "cpp",
|
||||
"source_inputs": [
|
||||
{
|
||||
"path": ".gitignore",
|
||||
"sha256": "53aa4d7124d4c8d93b8d7c4cb470b6c82b844e019a660d6243ffeadc50602de1"
|
||||
},
|
||||
{
|
||||
"path": "README.md",
|
||||
"sha256": "8cf5a2d6de849eb090b9ea6d5e27841f551bd06947e5054f0d2f59639a90edd0"
|
||||
},
|
||||
{
|
||||
"path": "Scenes/main.scene.json",
|
||||
"sha256": "be48a6d21385e717b6c8ebf9a3b4322eebbeff6bb067428e089ab5214be79854"
|
||||
},
|
||||
{
|
||||
"path": "Scripts/Gameplay.cpp",
|
||||
"sha256": "6b581b24da613e1915819de0a0f0ea820dd3333efa62c4b479a9ea7ffdbc6bcc"
|
||||
},
|
||||
{
|
||||
"path": "Scripts/Gameplay.hpp",
|
||||
"sha256": "4121587182ed4f74901b1c0757c53daadbf309af1d6bb5dd87fef142130ccbbe"
|
||||
},
|
||||
{
|
||||
"path": "project.faset.json",
|
||||
"sha256": "36e2acd32210f5489372a2331346a3294ead2395f0713e3e5fd2da4e83263689"
|
||||
}
|
||||
],
|
||||
"generation": "69bfdd90-4539-4fd5-852e-f43012482808",
|
||||
"configuration": "Release",
|
||||
"standalone_directory": "/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/collect-2d",
|
||||
"executable": "faset_player",
|
||||
"package_file_count": 41,
|
||||
"asset_generations": {},
|
||||
"device": "NVIDIA GeForce RTX 2080 Ti",
|
||||
"device_class": "physical",
|
||||
"driver": {
|
||||
"apiVersion": "1.4.329",
|
||||
"driverVersion": "595.84.0.0",
|
||||
"deviceName": "NVIDIA GeForce RTX 2080 Ti",
|
||||
"driverID": "DRIVER_ID_NVIDIA_PROPRIETARY",
|
||||
"driverName": "NVIDIA",
|
||||
"driverInfo": "595.84"
|
||||
},
|
||||
"validation_enabled": true,
|
||||
"validation_errors": 0,
|
||||
"completed_frames": 120,
|
||||
"summary_ms": {
|
||||
"gpu": {
|
||||
"max": 0.58032,
|
||||
"min": 0.554496,
|
||||
"p50": 0.559104,
|
||||
"p95": 0.575584,
|
||||
"samples": 120
|
||||
},
|
||||
"render_call": {
|
||||
"max": 5.697768,
|
||||
"min": 1.5953,
|
||||
"p50": 1.930722,
|
||||
"p95": 2.358479,
|
||||
"samples": 120
|
||||
},
|
||||
"renderer_cpu": {
|
||||
"max": 5.692117,
|
||||
"min": 1.59053,
|
||||
"p50": 1.921184,
|
||||
"p95": 2.345554,
|
||||
"samples": 120
|
||||
},
|
||||
"renderer_readback_cpu": {
|
||||
"max": 2.598762,
|
||||
"min": 0.376931,
|
||||
"p50": 0.463665,
|
||||
"p95": 0.606183,
|
||||
"samples": 120
|
||||
},
|
||||
"simulation": {
|
||||
"max": 0.294355,
|
||||
"min": 0.134755,
|
||||
"p50": 0.168708,
|
||||
"p95": 0.272694,
|
||||
"samples": 120
|
||||
},
|
||||
"snapshot": {
|
||||
"max": 0.248098,
|
||||
"min": 0.128342,
|
||||
"p50": 0.144372,
|
||||
"p95": 0.23347,
|
||||
"samples": 120
|
||||
},
|
||||
"wall": {
|
||||
"max": 6.124743,
|
||||
"min": 1.900084,
|
||||
"p50": 2.29008,
|
||||
"p95": 2.699522,
|
||||
"samples": 120
|
||||
}
|
||||
},
|
||||
"capture": {
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"sampled_colors": 7,
|
||||
"sha256": "f9d74067d87c1ebf30c6db372a26d93b7285791c8cb0307a24af5adb23bf201a"
|
||||
},
|
||||
"source_project_paths_unavailable": true,
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"name": "collect-3d",
|
||||
"dimension": 3,
|
||||
"language": "cpp",
|
||||
"source_inputs": [
|
||||
{
|
||||
"path": ".gitignore",
|
||||
"sha256": "53aa4d7124d4c8d93b8d7c4cb470b6c82b844e019a660d6243ffeadc50602de1"
|
||||
},
|
||||
{
|
||||
"path": "Assets/exit-arch/create.py",
|
||||
"sha256": "9c7291124fb1498a3f992ef74afc39cd98f9cc3e2ff4687c633bece85d580905"
|
||||
},
|
||||
{
|
||||
"path": "Assets/exit-arch/manifest.json",
|
||||
"sha256": "7a13347adc89761fb02ebeab3c58ba87f319cd62f53ec87a3bb61bcd066ffa55"
|
||||
},
|
||||
{
|
||||
"path": "Assets/exit-arch/manifest.json.faset-import.json",
|
||||
"sha256": "ef4eef28a18a0cc40a40df75db34c97faa5d783b891265f862633f3aec514afc"
|
||||
},
|
||||
{
|
||||
"path": "Assets/exit-arch/payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb",
|
||||
"sha256": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3"
|
||||
},
|
||||
{
|
||||
"path": "Assets/exit-arch/source.blend",
|
||||
"sha256": "ff2676bec97ab778e531e87a185ad716049ea3b05b4a4f0027a6345737735035"
|
||||
},
|
||||
{
|
||||
"path": "README.md",
|
||||
"sha256": "2df5ca4df47ab5d3d05d41508201296d4ad5ec876245f19f061767ade6a30e8f"
|
||||
},
|
||||
{
|
||||
"path": "Scenes/main.scene.json",
|
||||
"sha256": "61b65baf79e52f07ac386a7f98acf985a1b09e88770cdde37ef461dc94b9dcd7"
|
||||
},
|
||||
{
|
||||
"path": "Scripts/Extensions/Beacon.hpp",
|
||||
"sha256": "c60d56161eead16f541835053ad32ac3333383d83015709c060b7d45e0af5a97"
|
||||
},
|
||||
{
|
||||
"path": "Scripts/Gameplay.cpp",
|
||||
"sha256": "5d419786a6861d7f14ed4eca54634694d8cd43be5dbbd60a2c6790db665c3a6a"
|
||||
},
|
||||
{
|
||||
"path": "Scripts/Gameplay.hpp",
|
||||
"sha256": "4121587182ed4f74901b1c0757c53daadbf309af1d6bb5dd87fef142130ccbbe"
|
||||
},
|
||||
{
|
||||
"path": "project.faset.json",
|
||||
"sha256": "43d273b1054ec9069369073f54cc1fc7efb3d6b699dcd342c552a2dc2ef852ef"
|
||||
}
|
||||
],
|
||||
"import": {
|
||||
"asset_id": "5832763b-3ed0-44d6-9088-0b524f196a91",
|
||||
"cache_hit": false,
|
||||
"diagnostics": [],
|
||||
"generation": "4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2",
|
||||
"manifest": {
|
||||
"asset_id": "5832763b-3ed0-44d6-9088-0b524f196a91",
|
||||
"files": [
|
||||
{
|
||||
"path": "meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh",
|
||||
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
|
||||
"size": 928
|
||||
},
|
||||
{
|
||||
"path": "meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh",
|
||||
"sha256": "98b38aca7d2786c58a2265ba4d1f2255123f03d31d947e239232cf55bfdc2c97",
|
||||
"size": 928
|
||||
},
|
||||
{
|
||||
"path": "meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh",
|
||||
"sha256": "3875c16ea628d4126373ebfe07816621fbad3961596a2fcd112f1eec0e378071",
|
||||
"size": 928
|
||||
}
|
||||
],
|
||||
"generation": "4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2",
|
||||
"importer": "faset-gltf-1/cgltf-1.15",
|
||||
"input_key": {
|
||||
"bundle_sha256": "7a13347adc89761fb02ebeab3c58ba87f319cd62f53ec87a3bb61bcd066ffa55",
|
||||
"dependencies": {},
|
||||
"importer": "faset-gltf-1/cgltf-1.15",
|
||||
"settings": {},
|
||||
"source": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3",
|
||||
"target_profile": "desktop-static-pbr-v1",
|
||||
"toolchain": {
|
||||
"cgltf": "360db1a95480fe102ae9c69b27c5d101167ff5ba",
|
||||
"stb": "2c980bb59875b0d32144a71867fbdebb2f77cd20"
|
||||
}
|
||||
},
|
||||
"kind": "scene",
|
||||
"materials": [
|
||||
{
|
||||
"alpha_cutoff": 0.5,
|
||||
"alpha_mode": "OPAQUE",
|
||||
"base_color": [
|
||||
0.2199999988079071,
|
||||
0.28999999165534973,
|
||||
0.3400000035762787,
|
||||
1.0
|
||||
],
|
||||
"base_color_texture": -1,
|
||||
"double_sided": true,
|
||||
"emissive": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"emissive_texture": -1,
|
||||
"format": "faset.material",
|
||||
"id": "material-bb63b094febbf90bb7049c9bcf7587bc",
|
||||
"metallic": 0.07999999821186066,
|
||||
"metallic_roughness_texture": -1,
|
||||
"name": "Weathered stone",
|
||||
"normal_texture": -1,
|
||||
"occlusion_texture": -1,
|
||||
"roughness": 0.800000011920929,
|
||||
"unlit": false,
|
||||
"version": 1
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"id": "mesh-fc069a07a87e0f831fd92efdbc4efa1f",
|
||||
"name": "Cube.001",
|
||||
"primitives": [
|
||||
{
|
||||
"material": 0,
|
||||
"path": "meshes/mesh-fc069a07a87e0f831fd92efdbc4efa1f-0.fmesh"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mesh-0961e2a3f92977836a3aa80cab09277e",
|
||||
"name": "Cube.002",
|
||||
"primitives": [
|
||||
{
|
||||
"material": 0,
|
||||
"path": "meshes/mesh-0961e2a3f92977836a3aa80cab09277e-0.fmesh"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mesh-93b5b3e52cb6bb120fefb80e2d8e222b",
|
||||
"name": "Cube.003",
|
||||
"primitives": [
|
||||
{
|
||||
"material": 0,
|
||||
"path": "meshes/mesh-93b5b3e52cb6bb120fefb80e2d8e222b-0.fmesh"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "node-cec6e8cea80cf5a98ba3263a0156bee4",
|
||||
"local_transform": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.4500000476837158,
|
||||
1.2999999523162842,
|
||||
1.0
|
||||
],
|
||||
"mesh": 0,
|
||||
"name": "Left post",
|
||||
"parent_id": "",
|
||||
"stable_source_id": true
|
||||
},
|
||||
{
|
||||
"id": "node-5f8a90a6c4d27020d20bd4fa81d1d958",
|
||||
"local_transform": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.4500000476837158,
|
||||
-1.2999999523162842,
|
||||
1.0
|
||||
],
|
||||
"mesh": 1,
|
||||
"name": "Right post",
|
||||
"parent_id": "",
|
||||
"stable_source_id": true
|
||||
},
|
||||
{
|
||||
"id": "node-482463e486a8d1fd741340c653cd128f",
|
||||
"local_transform": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
3.0,
|
||||
0.0,
|
||||
1.0
|
||||
],
|
||||
"mesh": 2,
|
||||
"name": "Lintel",
|
||||
"parent_id": "",
|
||||
"stable_source_id": true
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
"node-cec6e8cea80cf5a98ba3263a0156bee4",
|
||||
"node-5f8a90a6c4d27020d20bd4fa81d1d958",
|
||||
"node-482463e486a8d1fd741340c653cd128f",
|
||||
"mesh-fc069a07a87e0f831fd92efdbc4efa1f",
|
||||
"mesh-0961e2a3f92977836a3aa80cab09277e",
|
||||
"mesh-93b5b3e52cb6bb120fefb80e2d8e222b",
|
||||
"material-bb63b094febbf90bb7049c9bcf7587bc"
|
||||
],
|
||||
"payload_source": "/tmp/faset-p1-p3-ed523c6-export/Faset Café 世界/collect-3d/Assets/exit-arch/payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb",
|
||||
"schema_version": 1,
|
||||
"settings": {},
|
||||
"source": "/tmp/faset-p1-p3-ed523c6-export/Faset Café 世界/collect-3d/Assets/exit-arch/manifest.json",
|
||||
"source_sha256": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3",
|
||||
"textures": []
|
||||
},
|
||||
"previous_generation": "",
|
||||
"removed_output_ids": []
|
||||
},
|
||||
"generation": "6c1dbd3a-7254-4b80-9dd5-ea433c42692c",
|
||||
"configuration": "Release",
|
||||
"standalone_directory": "/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/collect-3d",
|
||||
"executable": "faset_player",
|
||||
"package_file_count": 46,
|
||||
"asset_generations": {
|
||||
"5832763b-3ed0-44d6-9088-0b524f196a91": "4a5bfcc1437a7b4d65c388da2beace0308cceda8e16503d08ce676260f21d5c2"
|
||||
},
|
||||
"device": "NVIDIA GeForce RTX 2080 Ti",
|
||||
"device_class": "physical",
|
||||
"driver": {
|
||||
"apiVersion": "1.4.329",
|
||||
"driverVersion": "595.84.0.0",
|
||||
"deviceName": "NVIDIA GeForce RTX 2080 Ti",
|
||||
"driverID": "DRIVER_ID_NVIDIA_PROPRIETARY",
|
||||
"driverName": "NVIDIA",
|
||||
"driverInfo": "595.84"
|
||||
},
|
||||
"validation_enabled": true,
|
||||
"validation_errors": 0,
|
||||
"completed_frames": 120,
|
||||
"summary_ms": {
|
||||
"gpu": {
|
||||
"max": 0.626976,
|
||||
"min": 0.591392,
|
||||
"p50": 0.593024,
|
||||
"p95": 0.609792,
|
||||
"samples": 120
|
||||
},
|
||||
"render_call": {
|
||||
"max": 6.146895,
|
||||
"min": 1.808681,
|
||||
"p50": 2.18943,
|
||||
"p95": 2.625573,
|
||||
"samples": 120
|
||||
},
|
||||
"renderer_cpu": {
|
||||
"max": 6.132347,
|
||||
"min": 1.80252,
|
||||
"p50": 2.179871,
|
||||
"p95": 2.614251,
|
||||
"samples": 120
|
||||
},
|
||||
"renderer_readback_cpu": {
|
||||
"max": 2.79918,
|
||||
"min": 0.363165,
|
||||
"p50": 0.462913,
|
||||
"p95": 0.60977,
|
||||
"samples": 120
|
||||
},
|
||||
"simulation": {
|
||||
"max": 0.56743,
|
||||
"min": 0.171815,
|
||||
"p50": 0.195588,
|
||||
"p95": 0.312489,
|
||||
"samples": 120
|
||||
},
|
||||
"snapshot": {
|
||||
"max": 1.089595,
|
||||
"min": 0.166834,
|
||||
"p50": 0.188876,
|
||||
"p95": 0.30222,
|
||||
"samples": 120
|
||||
},
|
||||
"wall": {
|
||||
"max": 7.696708,
|
||||
"min": 2.167007,
|
||||
"p50": 2.61865,
|
||||
"p95": 3.165631,
|
||||
"samples": 120
|
||||
}
|
||||
},
|
||||
"capture": {
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"sampled_colors": 65,
|
||||
"sha256": "2905891c9766b2f1f65d5b4284056cb3839f1faae195f9fea39a56e3ebf44363"
|
||||
},
|
||||
"source_project_paths_unavailable": true,
|
||||
"status": "passed"
|
||||
},
|
||||
{
|
||||
"name": "lua",
|
||||
"dimension": 2,
|
||||
"language": "lua",
|
||||
"source_inputs": [
|
||||
{
|
||||
"path": "README.md",
|
||||
"sha256": "8392da3c18916400ea628daed094c77c390c553cbdcf822da227bdcd3d86380c"
|
||||
},
|
||||
{
|
||||
"path": "Scenes/main.scene.json",
|
||||
"sha256": "f1ab54150a58b289c47bcc34566ad7ee3025ad931db81e7f5dce70d9fbcac8ab"
|
||||
},
|
||||
{
|
||||
"path": "Scripts/beacon.lua",
|
||||
"sha256": "44d932ebedf66cadb9620f2d926177be2f8d43d71d56aa83611de686af026231"
|
||||
},
|
||||
{
|
||||
"path": "Scripts/player.lua",
|
||||
"sha256": "1c51810574a3413c46a7cbd0ea2e84a9b802da1206a2b72bb78f6cc951367a11"
|
||||
},
|
||||
{
|
||||
"path": "Scripts/util/motion.lua",
|
||||
"sha256": "bad3dcdc1081fd1dec589c12dad8dc175b739d77ea52b957ead9ecb4b7cb88a3"
|
||||
},
|
||||
{
|
||||
"path": "project.faset.json",
|
||||
"sha256": "7e4c0781c1837208b4499a9991ffb702143edf1f933ae9c7e3d2543fd2577747"
|
||||
}
|
||||
],
|
||||
"generation": "e6cea245-85ab-4203-9a79-747cd19c5139",
|
||||
"configuration": "Release",
|
||||
"standalone_directory": "/tmp/faset-p1-p3-ed523c6-games/Faset Café 世界/lua",
|
||||
"executable": "faset_player",
|
||||
"package_file_count": 46,
|
||||
"asset_generations": {},
|
||||
"device": "NVIDIA GeForce RTX 2080 Ti",
|
||||
"device_class": "physical",
|
||||
"driver": {
|
||||
"apiVersion": "1.4.329",
|
||||
"driverVersion": "595.84.0.0",
|
||||
"deviceName": "NVIDIA GeForce RTX 2080 Ti",
|
||||
"driverID": "DRIVER_ID_NVIDIA_PROPRIETARY",
|
||||
"driverName": "NVIDIA",
|
||||
"driverInfo": "595.84"
|
||||
},
|
||||
"validation_enabled": true,
|
||||
"validation_errors": 0,
|
||||
"completed_frames": 120,
|
||||
"summary_ms": {
|
||||
"gpu": {
|
||||
"max": 0.572544,
|
||||
"min": 0.551552,
|
||||
"p50": 0.552288,
|
||||
"p95": 0.567232,
|
||||
"samples": 120
|
||||
},
|
||||
"render_call": {
|
||||
"max": 5.602829,
|
||||
"min": 1.551566,
|
||||
"p50": 1.886379,
|
||||
"p95": 2.296171,
|
||||
"samples": 120
|
||||
},
|
||||
"renderer_cpu": {
|
||||
"max": 5.596396,
|
||||
"min": 1.544143,
|
||||
"p50": 1.877962,
|
||||
"p95": 2.288677,
|
||||
"samples": 120
|
||||
},
|
||||
"renderer_readback_cpu": {
|
||||
"max": 2.93176,
|
||||
"min": 0.380919,
|
||||
"p50": 0.480496,
|
||||
"p95": 0.599982,
|
||||
"samples": 120
|
||||
},
|
||||
"simulation": {
|
||||
"max": 0.171945,
|
||||
"min": 0.082806,
|
||||
"p50": 0.116279,
|
||||
"p95": 0.158329,
|
||||
"samples": 120
|
||||
},
|
||||
"snapshot": {
|
||||
"max": 0.096432,
|
||||
"min": 0.046618,
|
||||
"p50": 0.056105,
|
||||
"p95": 0.082215,
|
||||
"samples": 120
|
||||
},
|
||||
"wall": {
|
||||
"max": 5.867127,
|
||||
"min": 1.702691,
|
||||
"p50": 2.074804,
|
||||
"p95": 2.451364,
|
||||
"samples": 120
|
||||
}
|
||||
},
|
||||
"capture": {
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"sampled_colors": 4,
|
||||
"sha256": "e2f4c3b84de75dadd2e31d388d0ba51abc1861f1ec76eb7ba51a4a2dcac720a7"
|
||||
},
|
||||
"source_project_paths_unavailable": true,
|
||||
"status": "passed"
|
||||
}
|
||||
],
|
||||
"requested_projects": [
|
||||
"collect-2d",
|
||||
"collect-3d",
|
||||
"lua"
|
||||
],
|
||||
"finished_utc": "2026-09-24T03:22:20.623059+00:00"
|
||||
}
|
||||
@@ -9,6 +9,9 @@ SwiftShader CI at the tiled revision. The combined P1+P3 renderer checkpoint
|
||||
`4a3453e` was tested separately, including the temporal renderer. Its lighting
|
||||
A/B raw data are in [study 24](../../studies/24-p3-integrated-forward-plus-2026-09-24.md),
|
||||
and temporal image/cost evidence has a [separate record](../p3-temporal-2026-09-24/README.md).
|
||||
The later [final P1/P3 acceptance](../p1-p3-final-2026-09-24/README.md) at
|
||||
`ed523c6` reruns the lighting/temporal tests and relocated Release games; the
|
||||
7,560-frame lighting A/B sweep remains the measured `4a3453e` workload.
|
||||
|
||||
## Implemented at the checkpoint
|
||||
|
||||
|
||||
@@ -13,6 +13,13 @@ recorded frame reported zero
|
||||
validation errors. These observations do not establish physical Windows GPU
|
||||
behavior or high-end reconstruction quality.
|
||||
|
||||
The [final integrated matrix](matrix/integrated-ed523c6/README.md) separately
|
||||
repeats all 1,386 frames at clean `ed523c6`, after the optional diagnostics
|
||||
shader, resize fix, and visibility-switch rollback. Actual Vulkan validation
|
||||
was active with zero errors;
|
||||
all captured PNGs are byte-identical to the earlier branch matrix. Its
|
||||
independent 720p profile is recorded with exact binary and shader hashes.
|
||||
|
||||
## Raw artifacts and method
|
||||
|
||||
- [Lossless PNG example](captures/wire-static-taa-15.png) and
|
||||
|
||||
@@ -1,12 +1,20 @@
|
||||
# P3 temporal image-quality matrix: branch checkpoint
|
||||
# P3 temporal image-quality matrix: branch and integrated captures
|
||||
|
||||
The [final integrated capture](integrated-ed523c6/README.md) repeated this
|
||||
entire 1,386-frame matrix on clean source `ed523c6` after the optional
|
||||
pixel-diagnostics shader, resize fix, and visibility-switch rollback. Validation
|
||||
was active with zero errors,
|
||||
all 1,388 resulting PNG files are byte-identical to the branch artifacts
|
||||
below, and a separate final-shader 720p profile is retained. The branch record
|
||||
remains here as the original quality study and provenance baseline.
|
||||
|
||||
This is a functional and image-quality capture from
|
||||
`fe3a589174f8fe8e35ee231fe74fe938f4dd3cbd` on
|
||||
`feat/p3-temporal-integration`, before the later pixel-diagnostics shader was
|
||||
merged into the combined P1+P3 branch. It is separate from the earlier Direct
|
||||
capture at `1a1f69f` and from the combined lighting performance sweep at
|
||||
`4a3453e`. Repeating this matrix on the final combined source is necessary
|
||||
before claiming its exact images as integrated release evidence.
|
||||
`4a3453e`. The integrated rerun linked above now checks the exact images on
|
||||
the combined shader.
|
||||
|
||||
The run used Linux Debug, NVIDIA GeForce RTX 2080 Ti, proprietary driver
|
||||
595.84, 160×120 output except the 319×241 resize scene and 320×240 spatial
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
# Final integrated temporal capture at `ed523c6`
|
||||
|
||||
This is the P1+P3 integration capture from **clean source revision
|
||||
`ed523c61c106b8e19614e4d56f0b5d39b8392478`**, after merging the optional
|
||||
history-pixel diagnostics shader and its window-resize fix, plus the
|
||||
transactional visibility-switch rollback and async build-signature fixes.
|
||||
The Linux Debug capture used the physical NVIDIA GeForce RTX 2080 Ti with proprietary driver
|
||||
595.84. The [provenance manifest](provenance.json) records the exact capture
|
||||
executable SHA-256 and all 31 loaded SPIR-V/reflection artifact hashes.
|
||||
|
||||
The [frame CSV](frames.csv) links **1,386 lossless source PNGs** across Direct,
|
||||
GPU frustum and GPU occlusion, Off/jittered-current/TAA/upscale-current/Upscale,
|
||||
2× spatial sources, motion, eight post-open door frames, cut, teleport,
|
||||
projection/view switch, resize, transparency and UI. Every row reports
|
||||
`validation_enabled=1`, `validation_errors=0`, and the requested visibility and
|
||||
temporal paths actually executed. Output was 160×120 except the 319×241 resize
|
||||
and 320×240 spatial source. The [metrics](metrics.json),
|
||||
[wire reference sheet](spatial-reference.png) and
|
||||
[door trail sheet](door-trail-nearest-4x.png) are computed from these images.
|
||||
|
||||
All 1,388 PNG files (the 1,386 frames plus two sheets) are byte-identical to
|
||||
[the earlier branch matrix](../README.md) under the same relative names. This
|
||||
checks that the integrated diagnostic shader and failure-path fixes, with pixel
|
||||
counting disabled, did not alter these fixtures. The metrics JSON differs only
|
||||
in source revision; the frame CSV contains separate timings. In the final matrix, both GPU visibility paths
|
||||
matched Direct exactly on all 430 comparable ordinary frames per path. The
|
||||
static wire's frame variation fell 7.2% with TAA and 6.1% with Upscale versus
|
||||
their same-jitter current-only controls. The 2× box-filter spatial reference
|
||||
still had lower error than either temporal mode in this fixture; this is no
|
||||
claim of overall quality superiority. In the opening-door sequence, old red
|
||||
foreground never returned; the count of edge pixels differing by >8 from the
|
||||
unobstructed temporal reference went from 121 to 17, then reached zero by the
|
||||
sixth open frame for TAA, and from 176 to 28, reaching zero by the fifth open
|
||||
frame for Upscale. Cut, teleport, changed projection/view and resize matched
|
||||
current-only immediately in the fixed reset ROI.
|
||||
|
||||
The separate [720p CSV](profile-720p-debug.csv) has 30 measured frames per Off,
|
||||
TAA and 0.67 Upscale after ten warm-up frames for each mode, with rotating mode
|
||||
order. Every one of its 90 rows reports active validation and zero errors.
|
||||
It is a sparse one-cube/one-wire Direct fixture with full-frame synchronous
|
||||
capture in Debug, not a quiet Release gameplay benchmark. p95 below uses
|
||||
linear interpolation at rank `(n − 1) × 0.95`:
|
||||
|
||||
| Mode | Full GPU p50 / p95 | Resolve p50 / p95 | Renderer CPU p50 / p95 | Explicit Vulkan allocation |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| Off | 0.558 / 0.581 ms | — | 2.109 / 2.437 ms | 43.02 MiB |
|
||||
| TAA | 0.676 / 0.697 ms | 0.084 / 0.101 ms | 2.472 / 2.770 ms | 76.77 MiB |
|
||||
| Upscale 0.67 | 0.675 / 0.702 ms | 0.083 / 0.101 ms | 2.475 / 2.836 ms | 68.52 MiB |
|
||||
|
||||
The diagnostic counter toggle was off, so no per-pixel counter readback was
|
||||
included in these timings. The 0.67 mode did not improve the whole GPU time on
|
||||
this sparse fixture. The [parent P3 record](../../README.md) explains the
|
||||
quality limitations and the earlier, separately timed 720p checkpoint.
|
||||
|
||||
To reproduce from this source revision, install the
|
||||
[pinned analyzer dependencies](../../../../../tools/requirements-temporal-quality.txt)
|
||||
into a Python environment, configure the Linux Debug build and run:
|
||||
|
||||
```sh
|
||||
cmake --build build/linux-debug --target faset_render_temporal_acceptance_tests --parallel 2
|
||||
ctest --test-dir build/linux-debug --no-tests=error -R '^render_temporal_quality_matrix$' --output-on-failure
|
||||
build/linux-debug/faset_render_temporal_acceptance_tests --capture-quality /tmp/faset-p3-final-new
|
||||
build/linux-debug/faset_render_temporal_acceptance_tests --profile-720p /tmp/faset-p3-final-new-profile.csv
|
||||
python3 tools/analyze_temporal_quality_matrix.py --input /tmp/faset-p3-final-new \
|
||||
--output /tmp/faset-p3-final-new-analyzed \
|
||||
--revision ed523c61c106b8e19614e4d56f0b5d39b8392478 \
|
||||
--driver 'NVIDIA proprietary 595.84'
|
||||
```
|
||||
|
||||
Use fresh paths: the analyzer rejects an existing output directory. The
|
||||
separate [resize diagnostics regression](https://github.com/emil28092005/Faset_Engine/blob/main/tests/render_temporal_diagnostics_tests.cpp)
|
||||
exercises counter readback during swapchain recreation on a physical GPU; this
|
||||
quality capture leaves that optional diagnostic path disabled.
|
||||
|
||||
The [visibility-switch rollback test](https://github.com/emil28092005/Faset_Engine/blob/main/tests/render_reload_tests.cpp)
|
||||
checks that a failed GPU-mode transition preserves live TAA output and history
|
||||
and that the transition can be retried after restoring the shader bundle. The
|
||||
[P1 queued-source regression](https://github.com/emil28092005/Faset_Engine/blob/main/tests/editor_schema_signature_tests.cpp)
|
||||
checks that Build and Export report the worker snapshot hash rather than the
|
||||
enqueue-time hash. These failure-path fixes did not change any matrix image.
|
||||
|
After Width: | Height: | Size: 185 B |
|
After Width: | Height: | Size: 278 B |
|
After Width: | Height: | Size: 185 B |
|
After Width: | Height: | Size: 262 B |
|
After Width: | Height: | Size: 185 B |
|
After Width: | Height: | Size: 278 B |
|
After Width: | Height: | Size: 185 B |
|
After Width: | Height: | Size: 247 B |
|
After Width: | Height: | Size: 185 B |
|
After Width: | Height: | Size: 247 B |
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 214 B |
|
After Width: | Height: | Size: 210 B |
|
After Width: | Height: | Size: 210 B |
|
After Width: | Height: | Size: 207 B |
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 213 B |
|
After Width: | Height: | Size: 214 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 211 B |
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 215 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 208 B |
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 237 B |
|
After Width: | Height: | Size: 250 B |
|
After Width: | Height: | Size: 263 B |
|
After Width: | Height: | Size: 251 B |
|
After Width: | Height: | Size: 253 B |
|
After Width: | Height: | Size: 261 B |
|
After Width: | Height: | Size: 253 B |
|
After Width: | Height: | Size: 255 B |
|
After Width: | Height: | Size: 254 B |
|
After Width: | Height: | Size: 248 B |
|
After Width: | Height: | Size: 242 B |
|
After Width: | Height: | Size: 260 B |
|
After Width: | Height: | Size: 242 B |
|
After Width: | Height: | Size: 258 B |
|
After Width: | Height: | Size: 262 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 244 B |
|
After Width: | Height: | Size: 274 B |
|
After Width: | Height: | Size: 264 B |
|
After Width: | Height: | Size: 257 B |
|
After Width: | Height: | Size: 255 B |
|
After Width: | Height: | Size: 271 B |
|
After Width: | Height: | Size: 261 B |
|
After Width: | Height: | Size: 246 B |
|
After Width: | Height: | Size: 267 B |
|
After Width: | Height: | Size: 286 B |
|
After Width: | Height: | Size: 257 B |
|
After Width: | Height: | Size: 263 B |
|
After Width: | Height: | Size: 261 B |
|
After Width: | Height: | Size: 252 B |
|
After Width: | Height: | Size: 276 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 199 B |
|
After Width: | Height: | Size: 198 B |
|
After Width: | Height: | Size: 203 B |
|
After Width: | Height: | Size: 200 B |
|
After Width: | Height: | Size: 204 B |