Skip to content

Implementing Nvidia DXR tutorial with Microsoft DXR Fallback Layer

Notifications You must be signed in to change notification settings

philcn/DXRNvTutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DXRNvTutorial

Implemented the Nvidia DXR tutorial with Microsoft DXR Fallback Layer, tested on Nvidia GTX 980Ti (AMD won't work). Extended nv_helpers_dx12 to work with both D3D12 prototype device and fallback device.

This project isn't updated for Windows 10 RS5 API so it won't continue to work.

Fallback Layer workaround

Due to the limitations of Fallback Layer, we have to use a slightly different raytracing pipeline and resource binding layout than the tutorial.

  • Bind top level acceleration structure and output UAV with global root signature rather than local root signature of a RayGen shader. That's because fallback layer uses a special SetTopLevelAccelerationStructure() routine to bind the acceleration structure.
  • Need to bind the descriptor heap when 1) building acceleration structures and 2) calling DispatchRays(). That's for the wrapped pointer to work (see Microsoft Fallback Layer documentation).
  • Do not use structured buffers in ray tracing shaders, Fallback Layer currently don't support them. Use raw buffers instead.

Reference

https://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Libraries/D3D12RaytracingFallback https://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Samples/Desktop/D3D12Raytracing https://developer.nvidia.com/rtx/raytracing/dxr/DX12-Raytracing-tutorial-Part-1 https://developer.nvidia.com/rtx/raytracing/dxr/DX12-Raytracing-tutorial-Part-2 https://github.com/NVIDIAGameWorks/DxrTutorials http://intro-to-dxr.cwyman.org/

About

Implementing Nvidia DXR tutorial with Microsoft DXR Fallback Layer

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published