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 RT: gate extensions on GPU features and enable device feature chain
- Load vkGetPhysicalDeviceFeatures2; require bufferDeviceAddress,
accelerationStructure, and rayTracingPipeline before enabling RT extensions.
- Chain VkPhysicalDeviceFeatures2 + KHR BDA/AS/ray-tracing feature structs into
VkDeviceCreateInfo when RT is on (valid device creation with these extensions).
- Avoid duplicate buffer-device-address feature struct in _DEBUG when RT active.
- Log RT status from vk.rtxExtensionsEnabled; update RENDERERS_FUTURE, TODO_TRIAGE,
CLAUDE.md; remove stale README ray-tracing disclaimer.
Co-authored-by: Tim Fox <timfox@outlook.com>
- 🔶 **In progress**: With `USE_VULKAN_RTX=ON`, the Vulkan device enables **KHR buffer device address**, **acceleration structure**, and **ray tracing pipeline** when the GPU reports the required features (not extension names alone).
32
32
- ⏳ **Hardware Support**: NVIDIA RTX / AMD RDNA2+ via Vulkan RT or DXR
|**Vulkan RTX**| 🔶 Device path|With `USE_VULKAN_RTX=ON`, extensions plus **buffer device address**, **acceleration structure**, and **ray tracing pipeline** features are enabled when the GPU supports them (`vkGetPhysicalDeviceFeatures2` gate). BLAS/TLAS, SBT, and hybrid frame integration remain to be wired.|
12
12
|**Metal**| ❌ Not started | Native Apple Silicon / macOS |
13
13
|**DXR**| ❌ Not started | DirectX 12 + DirectX Raytracing (Windows) |
14
14
@@ -26,10 +26,10 @@ This document outlines the architecture and implementation plan for three render
- Add ray tracing extensions to `device_extension_list` when available**and**`vkGetPhysicalDeviceFeatures2` reports `bufferDeviceAddress`, `accelerationStructure`, and `rayTracingPipeline`
31
+
-Chain `VkPhysicalDeviceFeatures2` + `VkPhysicalDeviceBufferDeviceAddressFeaturesKHR` + `VkPhysicalDeviceAccelerationStructureFeaturesKHR` + `VkPhysicalDeviceRayTracingPipelineFeaturesKHR` into `VkDeviceCreateInfo` (required for valid device creation with these extensions)
32
+
-Next: query `VkPhysicalDeviceRayTracingPipelinePropertiesKHR`, load`vkCreateRayTracingPipelinesKHR`, `vkCmdTraceRaysKHR`, etc.
33
33
34
34
2.**Acceleration structures**
35
35
-**BLAS**: Build from BSP world geometry + entity models (vertex/index buffers)
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`, renderer init | Extensions can be requested when `USE_VULKAN_RTX=ON` and GPU supports them. Pipeline (BLAS/TLAS, shaders) not yet implemented. See `docs/RENDERERS_FUTURE.md`. |
65
+
| Vulkan RTX | CMake `USE_VULKAN_RTX`, `vk_instance.c`| Device creation enables KHR RT extensions when present **and**`vkGetPhysicalDeviceFeatures2` reports buffer-device-address + acceleration-structure + ray-tracing-pipeline features; `VkDeviceCreateInfo` chains the required feature structs. BLAS/TLAS, SBT, and frame integration still TODO. See `docs/RENDERERS_FUTURE.md`. |
0 commit comments