Skip to content

Commit 80ebf76

Browse files
timfoxcursoragent
andauthored
docs: roadmap Tier A Forward+ checks; DEVELOPMENT_SETUP minimal base (#135)
- ROADMAP: execution focus + P1 validation row mention FORWARD_PLUS_PIPELINE_AUDIT, gen_frag tile stride vs MAX_PER_TILE, manifest item. - DEVELOPMENT_SETUP: link MINIMAL_GAME_SHELL, demo_skeleton, renderer devdata under Build Outputs for engine-only workflows. Co-authored-by: Cursor Agent <cursoragent@cursor.com>
1 parent d0168eb commit 80ebf76

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

docs/DEVELOPMENT_SETUP.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,10 @@ Requires OpenSSL. When enabled, use `net_dtls 1` and `net_dtls_key <shared-secre
200200
| `release/idtech3_opengl.so` | OpenGL renderer plugin |
201201
| `release/flux_cli` | FLUX.2 image generation tool |
202202

203+
### Minimal game data (engine-only trees)
204+
205+
The repo does not ship full game `.pk3` sets. For a **smallest valid `base/`** (one `.pk3` + `default.cfg`) so the client/server pass filesystem init without **“No game data”**, see [MINIMAL_GAME_SHELL.md](MINIMAL_GAME_SHELL.md). For a **demo layout** with optional `idtech3_demo.pk3`, see [examples/demo_skeleton/README.md](../examples/demo_skeleton/README.md). For **headless dedicated** smoke with maps + `qagame.qvm`, build [renderer_validation/devdata](renderer_validation/devdata/README.md) and point **`GAME_BASE`** at `rtest_base/`.
206+
203207
## Shader Compilation
204208

205209
Vulkan GLSL shaders are compiled to SPIR-V automatically during the CMake build:

docs/ROADMAP.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Priorities that keep **CI green** and **README/build truth** aligned:
77
**Long-arc goal (id Tech 6–8 class, incrementally):** converge on **lighting scale** (Forward+ / clustered lists), **temporal robustness** (history + motion vectors before heavy TAA/upscale), **trustworthy GPU glTF**, and **locked-in validation** (Tier A everywhere, Tier B where `GAME_BASE` exists). Treat **Metal / RTX / full-cluster deferred** as later tiers once the forward path and CI are boringly stable—not parallel science projects on `main`.
88

99
1. **Watch GitHub Actions on `main`** - especially **Android** (CMake + Gradle `assembleDebug`, OpenSSL/Lua/FetchContent caches) and **MSYS curl**.
10-
2. **Renderer validation** - Tier B (self-hosted `GAME_BASE`) and Tier C (manual GPU notes) when you have hardware/content; keep `renderer_regression_check` passing on default CI (manifest + GLSL + **IQM_MORPH_TOP_K** C/GLSL parity + **glTF vs IQM** joint/morph `#define` parity + **OpenGL vs Vulkan** `IQM_MORPH_*` in `tr_local.h`).
10+
2. **Renderer validation** - Tier B (self-hosted `GAME_BASE`) and Tier C (manual GPU notes) when you have hardware/content; keep `renderer_regression_check` passing on default CI (manifest + GLSL + **IQM_MORPH_TOP_K** C/GLSL parity + **glTF vs IQM** joint/morph `#define` parity + **OpenGL vs Vulkan** `IQM_MORPH_*` in `tr_local.h` + Forward+ **`gen_frag.tmpl` tile stride** vs **`MAX_PER_TILE`**; repo manifest includes **`docs/FORWARD_PLUS_PIPELINE_AUDIT.md`**).
1111
3. **glTF on Vulkan** - **GPU skinning/morph** (PBR + `r_gltfGpu`) uses **top-8** morph weights per draw (aligned with `GLTF_MAX_MORPH_TARGETS`), including **`RE_SetEntityMorphWeight`** with clip-driven weights; **`r_gltfGpuTangentFix`** (default on) re-orthonormalizes tangents on the GPU path after skin+morph; next polish: full **MikkTSpace**-style qtangent on GPU (neighborhood-aware). **OpenGL** now registers glTF/OBJ/MD5 with a **CPU tess** path (no `r_gltfGpu`).
1212
4. **Android product** - missing `base/` / no pk3: logcat path + **Toast** with `.../base` and apkassets hint before exit; optional APK smoke.
1313

@@ -87,7 +87,7 @@ Priorities that keep **CI green** and **README/build truth** aligned:
8787
|----------|------|--------|
8888
| P0 | **CI stability** | Fix any red matrix on `main`; Android OpenSSL/Lua first-build time - tune cache keys if needed |
8989
| P1 | **glTF GPU path (polish)** | Entity morph + top-8 GPU morph (done); GPU tangent Gram–Schmidt after skin+morph via **`r_gltfGpuTangentFix`** (done); optional full MikkTSpace qtangent on GPU; validate on real assets |
90-
| P1 | **Renderer validation** | Tier B/C as optional gates; `renderer_regression_check`: manifest (**`BUILD.md`**, **`docs/ROADMAP.md`**, **`src/renderers/vulkan/vk_temporal.h`**, **`docs/GLTF.md`**, …), GLSL validate, **IQM_MORPH_TOP_K** + **IQM_MORPH_MAX_CHANNELS** (OpenGL vs Vulkan `tr_local.h`), **GLTF_MAX_* vs IQM_*** header parity; **`tr_model_gltf.c`** `STATIC_ASSERT` for joint/morph caps + `IQM_MORPH_MAX_CHANNELS == IQM_MORPH_TOP_K`; PBR **`forward_plus_shade_strength`** `constant_id` vs **`vk_create_pipeline.c`**; **`vk_temporal`** reset enum vs reason-string / log-table drift guard |
90+
| P1 | **Renderer validation** | Tier B/C as optional gates; `renderer_regression_check`: manifest (**`BUILD.md`**, **`docs/ROADMAP.md`**, **`docs/FORWARD_PLUS_PIPELINE_AUDIT.md`**, **`src/renderers/vulkan/vk_temporal.h`**, **`docs/GLTF.md`**, …), GLSL validate, **IQM_MORPH_TOP_K** + **IQM_MORPH_MAX_CHANNELS** (OpenGL vs Vulkan `tr_local.h`), **GLTF_MAX_* vs IQM_*** header parity; **`tr_model_gltf.c`** `STATIC_ASSERT` for joint/morph caps + `IQM_MORPH_MAX_CHANNELS == IQM_MORPH_TOP_K`; PBR **`forward_plus_shade_strength`** `constant_id` vs **`vk_create_pipeline.c`**; Forward+ **`gen_frag.tmpl`** `tileId * N` vs **`MAX_PER_TILE`**; **`vk_temporal`** reset enum vs reason-string / log-table drift guard |
9191
| P2 | **OpenGL glTF polish** | CPU tess + **`r_gltfCpuQtangent`** qtangent recompute when stage textures look like a normal map (`norm` / `bump` / `nmap` / `_n.`); **`_norm`** shader try from `normalTexture`; optional: wire qtangents into fixed-function tangents if a normal-mapped ARB path appears |
9292
| P2 | **Engine systems hardening** | Telemetry / replay / save / quest / dialogue - define stable APIs + minimal tests |
9393
| P3 | **GOAP content** | Data-driven actions; perf limits; debug draw |

0 commit comments

Comments
 (0)