raytracing: Initial Vulkan support

- Vulkan implementations in `RenderingDeviceDriverVulkan`.
- Raytracing instruction list in `RenderingDeviceGraph`.
- Functions to create acceleration structures and raytracing pipelines
  in `RenderingDevice`.
- Raygen, Miss, and ClosestHit shader stages support.
- GDScript bindings.
- Update classes documentation.
- Unimplemented placeholders for Metal and D3D12.
- Build acceleration structure command.
- Expose a shader preprocessor define.
- Align build scratch address.
- Create STB after creating the pipeline.
- Separate acceleration structure barriers.
- Use transforms in TLAS instances.
- AnyHit and Intersection stages.
- Optionally set acceleration structure build input buffer usage.
- Introduce instances buffer.
- Move scratch buffers to RenderingDevice.
- Rename AccelerationStructureGeometryBits.
- Use regular buffer creation and free routines for scratch buffer.
- Store trackers in acceleration structures.
- Bump Shader SPIR-V version to 1.4
- Add Position attribute location in blas_create.
- Encapsulate MoltenVK check in preprocessor macro.
- Split SUPPORTS_RAYTRACING for pipeline and query.
This commit is contained in:
Antonio Caggiano 2024-11-11 08:40:38 +01:00
parent 66b9c7251e
commit 27e4f24800
No known key found for this signature in database
GPG key ID: C9D9BD410EBBEDFF
28 changed files with 2998 additions and 114 deletions

View file

@ -49,7 +49,12 @@ Vector<uint8_t> compile_glslang_shader(RenderingDeviceCommons::ShaderStage p_sta
EShLangFragment,
EShLangTessControl,
EShLangTessEvaluation,
EShLangCompute
EShLangCompute,
EShLangRayGen,
EShLangAnyHit,
EShLangClosestHit,
EShLangMiss,
EShLangIntersect,
};
int ClientInputSemanticsVersion = 100; // maps to, say, #define VULKAN 100