Build error
Reon90 opened this issue · 5 comments
void RenderingPipeline::run(RenderingPipeline *pipe, SampleConfig &config)
{
pipe->updatePipelineRequirementFlags();
RtSample::run(config, std::unique_ptr<Renderer>(pipe)); // HERE IS ERROR
}
Unhandled exception at 0x00007FFBB3DDEB7E (dxgi.dll) in DXR-RayTracingInOneWeekend.exe: 0xC0000005: Access violation reading location 0x0000000000000000.
Windows 10 1809 / 1803
Nvidia 2070
Windows SDK 10.0.16299.0
I need to update this code as possible, but am waiting for the new version of Falcor to come out. Right now the code's working on an old experimental version of Falcor and DXR, which is unlikely to work on anything.
Are there any solutions for this situation? I encountered the same issue.
@chris-wyman is planning an update at some point (it's mostly his code), so I'm deferring to him.
There are a couple confounding issues with these DXR tutorials.
-
When these tutorials were developed, DXR was in a very early state. Most people did not have a version of Windows 10 that (officially) supported DXR.
-
To give more people a chance to play with the code, we released a hacked up version of Falcor (and these tutorials) that ran on an older version of Windows 10 (i.e., "RS4" or version 1803). These binaries literally only worked on that version of Windows (and not any later versions), since we used experimental APIs that have since been removed. If you did not carefully follow the instructions in the tutorial README, the code would also not run on Windows 10 RS4. This hacked-up code will not compile on newer Windows versions.
-
We released an updated version that ran on RS5 (Windows 10 v.1809) and later using a release version of Falcor, I think it was Falcor v3.1. I think that's the top of tree here. However, the release version of Falcor we included did not support sphere primitives, so Eric's "Sphereflake" demo and my "Ray Tracing in One Weekend" do not run. I'm not sure why we left them in the repository -- as far as I know, there's no way they can run using this repo's top of tree.
-
Some people have reported issues with missing dependencies, suggesting the package manager we use may have removed older packages. I have not had a chance to check on this issue.
Modern Falcor now supports custom primitive intersection as first class primitives, but almost everything else about Falcor has changed. This means updating the tutorials isn't a quick fix / merge -- it's a total rewrite.
Essentially all of the functionality of this sequence of tutorials is available in the latest Falcor 4.4, e.g., a GBuffer and a recursive ray tracer. However, there's no tutorial that walks you through the "how do I use this thing?" phase.
@erich666 and @chris-wyman, I was actually planning to email you guys requesting an update to the DXR tutorials, and I'm glad I found this thread.
I'd just like to +1 the request to update these DXR tutorials with Falcor 4.4, and recent Windows and Visual Studio builds, so they actually compile and we can profilte/monitor how the programs run.
As it is, the tutorials still contain things like std::experimental::filesystem
which was implemented into the Visual C++ standard library quite some time ago.
I understand the complexity of this, but I do hope it is rewritten at some point in the near future.