From cf5b7022334debfd1a5f9ad17729d0d526723a02 Mon Sep 17 00:00:00 2001 From: Emil <65846814+emil28092005@users.noreply.github.com> Date: Thu, 24 Sep 2026 01:58:38 +0300 Subject: [PATCH] Record Linux starter project validation --- .../p1-starters-linux-2026-09-24.md | 42 ++++++++++++++++++ .../p1-starters-linux-2026-09-24/cpp-2.png | Bin 0 -> 4408 bytes .../p1-starters-linux-2026-09-24/cpp-3.png | Bin 0 -> 9256 bytes 3 files changed, 42 insertions(+) create mode 100644 docs/validation/p1-starters-linux-2026-09-24.md create mode 100644 docs/validation/p1-starters-linux-2026-09-24/cpp-2.png create mode 100644 docs/validation/p1-starters-linux-2026-09-24/cpp-3.png diff --git a/docs/validation/p1-starters-linux-2026-09-24.md b/docs/validation/p1-starters-linux-2026-09-24.md new file mode 100644 index 0000000..4e35113 --- /dev/null +++ b/docs/validation/p1-starters-linux-2026-09-24.md @@ -0,0 +1,42 @@ +# P1 starter projects: Linux checkpoint (2026-09-24) + +This is a focused validation of the four explicit new-project choices in commit +`cbb8b4508723e1a3a0bbd53c884e116a47b121dc`. It is not the final P1 acceptance +record. The run used Linux 7.0.0-31-generic x86_64, Clang 21.1.8, CMake 4.2.3, +and an NVIDIA GeForce RTX 2080 Ti with driver 595.84. + +The Editor CLI created C++ 2D, C++ 3D, Lua 2D, and Lua 3D projects in disposable +directories with `--new`, `--dimension`, and `--language`. The test checked the +project manifest, authored start scene, behavior binding, Lua script declaration, +LuaLS files, and the absence of a C++ gameplay stub in Lua-only projects. A real +Debug `faset_build` succeeded for C++ 2D and Lua 3D. Their built Players then +validated and rendered **both** corresponding scene dimensions using the same +language module, so all four templates exercised runtime schema and rendering. +Each headless one-frame render reported `validation_errors: 0` on the physical GPU. + +| Project | Built Player used | `--validate` | One-frame headless render | +| --- | --- | --- | --- | +| C++ 2D | C++ 2D | passed | passed | +| C++ 3D | C++ 2D | passed | passed | +| Lua 2D | Lua 3D | passed | passed | +| Lua 3D | Lua 3D | passed | passed | + +The C++ and Lua source files are identical within each language choice; the 2D/3D +difference is the authored scene. Reusing one built Player per language therefore +checks scene validity without repeating an identical native compile. The focused +CTest cases `process_and_cook` and `editor_ui_launcher` passed 2/2. They include a +two-service concurrent creation test: exactly one starter wins, and the other +cannot overwrite it. A fresh Lua starter was initialized as a Git repository; +`git check-ignore` confirmed `.faset/cache` is ignored while the LuaLS API +declaration `.faset/lua/faset.lua` can be committed. A strict MkDocs build passed. + +These captures are representative output from the C++ 2D and 3D scenes. Lua +scenes rendered the same layout with their own behavior module. + +![C++ 2D starter after one frame](p1-starters-linux-2026-09-24/cpp-2.png) + +![C++ 3D starter after one frame](p1-starters-linux-2026-09-24/cpp-3.png) + +The run did not test Windows, a relocated Release export, multi-frame gameplay +input, or the final P1 build-cache integration. Those belong to the P1 acceptance +matrix and must be recorded separately. diff --git a/docs/validation/p1-starters-linux-2026-09-24/cpp-2.png b/docs/validation/p1-starters-linux-2026-09-24/cpp-2.png new file mode 100644 index 0000000000000000000000000000000000000000..d8755c52fd33dd734ea39eef6ab0b1f3e317d4ad GIT binary patch literal 4408 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 G|9=3*zfL0n literal 0 HcmV?d00001