RayTracingInVulkan Versions Save

Implementation of Peter Shirley's Ray Tracing In One Weekend book using Vulkan and NVIDIA's RTX extension.

r7

2 years ago

Fixed a rendering issue on AMD RDNA2, e.g. RX 6900 XT (Issue #36, PR #37) due to missing non-uniform hint.

  • Upgrade to latest Vulkan SDK (1.2.176).
  • Upgrade to vcpkg 2021.04.30.
  • Use ImGuiFreeType for better font rendering.
  • Pick a device that supports ray tracing in case there are multiple devices, e.g. integrated GPU (PR #49).
  • Recreate swapchain on VK_SUBOPTIMAL_KHR (PR #35).
  • Fix more validation errors.

r6

3 years ago

Fixed several issues encountered when trying to run the ray tracer on AMD RX 6900 XT (thanks to @VoidPtr74 for assisting with both his time and hardware).

  • Upgraded ImGui Vulkan and GLFW backends with source from ImGui 1.80.
  • Fixed acceleration structure scratch memory offsets not always being properly aligned.
  • Fixed min swap chain images being 1, we expected at least 2.
  • Fixed incorrect LoadOp and initial layout for ImGui render pass (solved the graphic corruption on the 6900 XT, Issue #24).

r5

3 years ago
  • Ported the ray tracing pipeline to the cross platform extensions VK_KHR_acceleration_structure and VK_KHR_ray_tracing_pipeline specifications, thus replacing the NVIDIA specific VK_NV_ray_tracing extension (PR #7 and TODO).
  • Upgraded to latest Vulkan SDK (1.2.162).
  • Upgraded to vcpkg 2020.11-1.
  • Added better camera controls (PR #10).
  • Added profiling heatmap as per Profiling DXR Shaders with Timer Instrumentation (PR #12).
  • Added smooth normals fallback if the OBJ model does not contain any normals.
  • Added DebugUtils.SetObjectName() and make good use of it.
  • Replaced --vsync command line argument with --present-mode.
  • Fixed ShaderBindingTable alignment issues.
  • Fixed shader directory creation (PR #14 and #15).
  • Fixed visually incorrect ray paths that do not have any light contributions (PR #16).

Make sure your drivers are recent enough to support the new extensions (successfully tested with NVIDIA driver 460.89 on Windows 10).

Update 2021-01-10 Added prebuilt Windows binaries with debug symbols. If you encounter an error, this should give you a much more detailed stack trace.

r4

4 years ago
  • Upgraded to latest Vulkan SDK (1.1.121).
  • Upgraded to vcpkg 2019.09.
  • Added texture support (the renderer is a bit slower now, as I do not specialise the shaders based on the scene).
  • Added new scene to show texture support.
  • Added support for benchmarking all scenes in one command line.
  • Added framebuffer size to statistic UI (it does not always match what you requested).
  • Fixed light scattering through opaque back faces.

r3

4 years ago
  • Upgraded to GLFW 3.3.
  • Upgraded to ImgGUI 1.70.
  • Upgraded to latest Vulkan SDK (1.1.108)
  • Fixed High DPI support (would cause incorrect resolution scaling under certain conditions).
  • Fixed NVIDIA driver version reporting.

(Note: using NVIDIA drivers 430.86 seems to substantially improve performance compared to older versions)

r2

5 years ago
  • Added support for light emitting materials.
  • Added more scenes from Ray Tracing: The Next Week.
  • Added command line arguments for deeper controls.
  • Added benchmark mode.
  • Better error checking.

r1

5 years ago

First release. Includes Windows x64 binaries and assets.