You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Vulkan RTX: world BSP BLAS, frame UBO + depth, r_rtxWorldPrimCap
- Pack SF_FACE and SF_TRIANGLES geometry from world bmodel[0] into BLAS (vk_rtx_world).
- Rebuild BLAS/TLAS when map name changes; cap triangles via latched r_rtxWorldPrimCap.
- Descriptor set: TLAS, storage image, RtxFrame UBO, combined depth sampler; raygen uses invViewProj and depth.
- vk_rtx_record_demo_pass: UBO fill, depth layout transitions on main pass, fix RT image barrier after first frame.
- vk_render_pass: gate RT demo on r_rtxDemo; scratch buffer uses VK_BUFFER_USAGE_STORAGE_BUFFER_BIT for RT builds.
- Docs: RENDERERS_FUTURE and TODO_TRIAGE reflect world BLAS path.
Co-authored-by: Tim Fox <timfox@outlook.com>
Copy file name to clipboardExpand all lines: docs/RENDERERS_FUTURE.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ This document outlines the architecture and implementation plan for three render
8
8
|---------|--------|-------|
9
9
|**Vulkan**| ✅ Complete | Primary renderer, ~18k LOC |
10
10
|**OpenGL**| ✅ Complete | Fallback renderer |
11
-
|**Vulkan RTX**| 🔶 Demo path | With `USE_VULKAN_RTX=ON` and `r_rtx`>0 (latched): device enables KHR AS + ray-tracing pipeline + BDA. `r_rtxDemo` 1 (default): triangle BLAS/TLAS, minimal RTPSO, `vkCmdTraceRaysKHR`after main/post-bloom pass, blit into resolved color (layout barriers match FBO `SHADER_READ_ONLY` after `vkCmdEndRenderPass`). `r_rtxDemo` 0: extensions only. |
11
+
|**Vulkan RTX**| 🔶 Demo path | With `USE_VULKAN_RTX=ON` and `r_rtx`>0 (latched): device enables KHR AS + ray-tracing pipeline + BDA. `r_rtxDemo` 1 (default): world BSP BLAS (SF_FACE + SF_TRIANGLES, capped by latched `r_rtxWorldPrimCap`) when a map is loaded, else a fallback triangle; raygen uses depth + `invViewProj` UBO; trace after main/post-bloom, blit into resolved color (depth briefly transitioned to read-only on main pass). `r_rtxDemo` 0: extensions only. |
12
12
|**Metal**| ❌ Not started | Native Apple Silicon / macOS |
13
13
|**DXR**| ❌ Not started | DirectX 12 + DirectX Raytracing (Windows) |
Copy file name to clipboardExpand all lines: docs/TODO_TRIAGE.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,7 +62,7 @@ TODOs/FIXMEs in `src/external/` are from third-party code (duktape, zstd, cjson,
62
62
| r_renderMode 1/2 | tr_init.c | Deferred / alternate-pipeline placeholders (`r_renderMode`); not wired to Vulkan **optional** Forward+ (`r_forwardPlus`). Real deferred still needs G-buffers, etc. Documented in cvar description. |
63
63
| r_hdr 3 64-bit output |`vk_post_process_pipeline.c`, HDR format helpers | Infrastructure in place (vk_hdr64_active, _hdr64 modules, pipeline selection). glslangValidator rejects dvec4/f64vec4 fragment shader outputs. Falls back to RGBA32F. When glslang adds support, compile HDR64 variants and return RGBA64F from get_hdr_format. |
64
64
| Vegetation wind draw |`vk_vegetation_wind.c` + draw path | Compute **dispatch** now runs **after** each `SURF_VEGETATION` tess batch (staging was previously uploaded *after* the misplaced `vk_begin_frame` dispatch, so GPU saw 0 verts). **Vertex shader still does not read**`vegwind_vertex_buffer` - deformed positions are not yet applied on draw. |
65
-
| Vulkan RTX | CMake `USE_VULKAN_RTX`, `vk_rtx.c`, `r_rtx` / `r_rtxDemo`| Demo: triangle BLAS/TLAS + trace + blit when `r_rtxDemo` 1. World BSP / entity TLAS and real lighting still TODO. See `docs/RENDERERS_FUTURE.md`. |
65
+
| Vulkan RTX | CMake `USE_VULKAN_RTX`, `vk_rtx.c` / `vk_rtx_world.c`, `r_rtx` / `r_rtxDemo`/ `r_rtxWorldPrimCap`| Demo: world BSP BLAS (capped) + trace + blit when `r_rtxDemo` 1; entity TLAS and real lighting still TODO. See `docs/RENDERERS_FUTURE.md`. |
ri.Cvar_SetDescription( r_rtx, "Ray tracing (0=off, 1=shadows, 2=reflections, 3=full). When built with USE_VULKAN_RTX and set >0 before vid_restart, enables KHR ray tracing device extensions. See r_rtxDemo and docs/RENDERERS_FUTURE.md." );
ri.Cvar_SetDescription( r_rtxDemo, "When USE_VULKAN_RTX and r_rtx>0: 1=build demo triangle TLAS and composite trace into scene color each frame; 0=extensions only (no demo GPU work)." );
3475
+
ri.Cvar_SetDescription( r_rtxDemo, "When USE_VULKAN_RTX and r_rtx>0: 1=world BSP ray trace + composite each frame; 0=extensions only (no demo GPU work)." );
ri.Cvar_SetDescription( r_forwardPlus, "Forward+ scaffolding: GPU light SSBO + per-tile cull compute (16px tiles; max per tile from \\r_forwardPlusMaxPerTile, default 8). Packs at most MAX_DLIGHTS (32) so indices match tess.dlightBits. PBR: \\r_forwardPlusDebug (overlay), \\r_forwardPlusShade (experimental additive lights); see docs/RENDERER_2026_ARCHITECTURE_PASS.md." );
0 commit comments