OpenArena-optimized Vulkan: merge compat + spec_energy + r_classicMod#233
Draft
timfox wants to merge 20 commits into
Draft
OpenArena-optimized Vulkan: merge compat + spec_energy + r_classicMod#233timfox wants to merge 20 commits into
timfox wants to merge 20 commits into
Conversation
The cs_autoInit guard only matched ri.Cvar_Get, but qcommon uses Cvar_Get in csharp_debug.c. Accept both patterns and document Vulkan troubleshooting for classic Quake III / OpenArena installs. Co-authored-by: Tim Fox <timfox@outlook.com>
- examples/q3_vulkan_compat.cfg for optional classic-mod renderer tuning - q3_openarena_compat_check registered in CTest (validation;smoke) - Link example from COMPATIBILITY.md and examples/README.md Co-authored-by: Tim Fox <timfox@outlook.com>
- Do not ERR_FATAL when swapchain lacks TRANSFER_SRC (r_fbo 0); warn and disable screenshot readback instead; only request supported usage flags. - Rebuild world pipelines when r_lightmap_srgb_decode changes (Q3/OA HDR fix). - test_vk_vegetation_dispatch_order: use grep instead of rg for portability. - Extend source guards; fix devdata OPTIONAL_GAME_ASSETS path comment. Co-authored-by: Tim Fox <timfox@outlook.com>
- VK_SetLightParams: skip legacy r_gamma light scaling when r_fbo/HDR active. - OpenGL dlight ARB path: same when r_hdr 1/2. - Expand q3_openarena_compat_check for swapchain, lightmap, and dlight guards. - Document volumetric fog on alpha geometry; dedupe validate_ci_build q3 run. - Update HDR_GAPS §6.7 to match implementation. Co-authored-by: Tim Fox <timfox@outlook.com>
- Add run_renderer_tier_b_devdata.sh (rtest_base map load + asset manifest). - CTest renderer_regression_maps_devdata; validate_ci_build step 6b. - production_readiness uses devdata when GAME_BASE unset. - Auto-select devdata OPTIONAL_GAME_ASSETS when GAME_BASE is rtest_base. Co-authored-by: Tim Fox <timfox@outlook.com>
- evidence_status.sh: detect shipped rtest_base devdata path. - bootstrap_ioq3_qvm.sh for rebuilding qagame.qvm when devdata is missing. - FINDINGS Tier A row for 2026-05-29 automated gate; AGENTS.md ctest note. Co-authored-by: Tim Fox <timfox@outlook.com>
- docs/Q3_OPENARENA_VULKAN.md consolidates setup, scripts, and tuning. - CHANGELOG [Unreleased] entries for compat, Tier B, and Vulkan fixes. - Link from QUICKSTART and COMPATIBILITY. Co-authored-by: Tim Fox <timfox@outlook.com>
When SDL cannot create a VK_KHR_surface window (headless CI, missing ICD), fall back to OpenGL before VKimp_Init fatals — Q3/OA and demo shells still start. ARM-only guard removed; compat check and docs updated. Co-authored-by: Tim Fox <timfox@outlook.com>
Co-authored-by: Tim Fox <timfox@outlook.com>
Integrate rajabi2001/sega as an external PyTorch generation hook mirroring FLUX/TRELLIS: async SDL jobs, console commands, and texture hot-reload. - Vendored upstream flux_sega/ and qwen_sega/ under external/sega/ - scripts/sega_flux_generate.py wrapper copied to release on build - src/client/cl_sega.c with cvars, sega_generate/status/cancel/view - Shared cl_pipeline.c/h for shell template expansion (FLUX/TRELLIS/SEGA) - USE_SEGA CMake option (default ON), docs/SEGA.md, runtime check script - cl_sega_enable defaults to 0 for classic mod compatibility Co-authored-by: Tim Fox <timfox@outlook.com>
User-facing commands, cvars, CMake flag, docs, and scripts now use spec_energy_* / USE_SPEC_ENERGY instead of sega_* / USE_SEGA. Vendored upstream moved to external/flux_spec_energy/ (upstream flux_sega/ layout unchanged). GitHub repo URL kept only as upstream reference in docs. Co-authored-by: Tim Fox <timfox@outlook.com>
- Add spec_energy_runtime_check to CTest, validate_ci_build, smoke_test - Fix cs_autoInit compat grep (Cvar_Get vs ri.Cvar_Get) - Document release wrappers in DEVELOPMENT_SETUP; cross-link TRELLIS.md Co-authored-by: Tim Fox <timfox@outlook.com>
- Upstream layout validator (flux_sega/, qwen_sega/, requirements.txt) - spec_energy_runtime_check runs layout check on vendored copy - COMPATIBILITY.md notes generative hooks default off Co-authored-by: Tim Fox <timfox@outlook.com>
ASAN and other raw-CMake jobs may not copy release/spec_energy_flux_generate.py. Skip spec_energy_runtime_check in that case (warn), so smoke_test doesn't fail unless the wrapper is actually present. Co-authored-by: Tim Fox <timfox@outlook.com>
- vk_shader_determinism_check: compile_shaders to temp dir and compare to tracked blobs - vulkan_state_of_art_check: enforce RTX feature gating (Features2), pNext chain use, and extension-list guards - Wire both into validate_ci_build and CTest Co-authored-by: Tim Fox <timfox@outlook.com>
Co-authored-by: Tim Fox <timfox@outlook.com>
- Merge cursor/implement-spec-energy-d22f (spec_energy, Vulkan CI gates) - Add r_classicMod cvar and classic_mod console command - vk_apply_classic_mod_preset for Q3/OA-safe Vulkan at init - docs/OPENARENA.md and scripts/run_openarena.sh launcher Co-authored-by: Tim Fox <timfox@outlook.com>
- classic_mod sets renderer cvars immediately (vid_restart for latch) - run_openarena.sh: inline boot cvars, CLASSIC_MOD=1, copy cfgs to OA_BASE - examples/q3_classic_mod.cfg; ship to release/examples/ on build - pr_ready_summary.sh targets evolution PR #233; compat checks expanded Co-authored-by: Tim Fox <timfox@outlook.com>
- run_openarena_server.sh for dedicated QVM hosting - test_run_openarena_script CTest (CLASSIC_MOD, OA_BASE cfg copy) - check_artifacts validates release/examples/*.cfg - Fix compat check SIGPIPE with grep process substitution - cl_flux_enable default-off gate; smoke_test release/examples check Co-authored-by: Tim Fox <timfox@outlook.com>
- Single script: compat check, launcher test, smoke, Tier B devdata - RELEASE_CHECKLIST, evidence_status, OPENARENA.md PR merge note - CHANGELOG and compat check for orchestrator Co-authored-by: Tim Fox <timfox@outlook.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Consolidates the Q3/OpenArena Vulkan compatibility work and optional spec_energy generative hooks into a single evolution branch, then adds an explicit classic mod preset so the modern renderer stays fast and predictable on QVM-based games like OpenArena without changing gameplay.
Changes
Merged branches
cursor/fix-vulkan-q3-compat-check-d22f): all-platform Vulkan→OpenGL fallback, swapchain/HDR/lightmap fixes, Tier B devdata,q3_openarena_compat_check, docs and example cfg.cursor/implement-spec-energy-d22f): optionalspec_energy_*pipeline (default off), shader determinism and Vulkan feature-gate CTests.New: classic mod preset
r_classicMod(default0, archived): at Vulkan init, disables heavy features (Forward+, volumetrics, SSAO/bloom/SMAA/SSR, RTX, VDB, veg wind).classic_modconsole command: setsr_classicMod 1and turns off FLUX/TRELLIS/spec_energy client hooks; promptsvid_restart.docs/OPENARENA.mdandscripts/run_openarena.sh(OA_BASE, optionalCLASSIC_MOD=1).Validation
./scripts/compile_engine.sh vulkan./scripts/q3_openarena_compat_check.sh release(21/21)./scripts/smoke_test.sh releasectestinbuild-vk-Release(33/33)Notes
main..pk3data is not included; use your install withOA_BASEor+set fs_game.