NVIDIA GameWorks Integration

Heya! I’ve been making some serious strides on my character using Hairworks, However, I have run into an that makes it completely impossible to use hairworks in my project for now.

To very simply explain it, in the material editor in UE4, there is a material function (standard included) called SplineThicken. extrudes, and screen faces a very thin polystrip for use of hair, thin wire, lasers and other thin geometry.

Assuming that is a similar, if not identical technique used to render the hairstrands in a hairworks file, it clashes, or something. causes a crash anyway if it’s on the same screen. Considering the character is part of a scene where there are alot of these more static splines rendered out, it becomes impossible to use hairworks, which was the original point.

It occurs both in Nvidia’s 4.7.5 branch and 's 4.9.2 branch (the latter beeing used due to the multi-light support)

Crash report:


Unknown exception - code 00000001 (first/second  not available)

"Assertion failed: !bSrcStencilWrite || bDstStencilWrite [File:D:\Applications\Epic\Epic Games\Nvidia 4.9.2\Engine\Source\Runtime\Windows\D3D11RHI\Private\D3D11Commands

UE4Editor_Core!FDebug::AssertFailed() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\core\private\misc\outputdevice.cpp:354]
UE4Editor_D3D11RHI!FD3D11DynamicRHI::ValidateExclusiveDepthStencilAccess() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\windows\d3d11rhi\private\d3d11commands.cpp:678]
UE4Editor_D3D11RHI!FD3D11DynamicRHI::RHISetDepthStencilState() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\windows\d3d11rhi\private\d3d11commands.cpp:688]
UE4Editor_Renderer!FTranslucencyDrawingPolicyFactory::DrawMesh() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\renderer\private	ranslucentrendering.cpp:474]
UE4Editor_Renderer!FTranslucentPrimSet::RenderPrimitive() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\renderer\private	ranslucentrendering.cpp:727]
UE4Editor_Renderer!FTranslucentPrimSet::DrawPrimitives() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\renderer\private	ranslucentrendering.cpp:705]
UE4Editor_Renderer!FDeferredShadingSceneRenderer::DrawAllTranslucencyPasses() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\renderer\private	ranslucentrendering.cpp:1107]
UE4Editor_Renderer!FDeferredShadingSceneRenderer::RenderTranslucency() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\renderer\private	ranslucentrendering.cpp:1216]
UE4Editor_Renderer!FDeferredShadingSceneRenderer::Render() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\renderer\private\deferredshadingrenderer.cpp:1402]
UE4Editor_Renderer!RenderViewFamily_RenderThread() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\renderer\private\scenerendering.cpp:1585]
UE4Editor_Renderer!TGraphTask<`FRendererModule::BeginRenderingViewFamily'::`23'::EURCMacro_FDrawSceneCommand>::ExecuteTask() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\core\public\async	askgraphinterfaces.h:779]
UE4Editor_Core!FTaskThread::ProcessTasks() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\core\private\async	askgraph.cpp:539]
UE4Editor_Core!FTaskThread::ProcessTasksUntilQuit() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\core\private\async	askgraph.cpp:340]
UE4Editor_RenderCore!RenderingThreadMain() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\rendercore\private\renderingthread.cpp:310]
UE4Editor_RenderCore!FRenderingThread::Run() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\rendercore\private\renderingthread.cpp:411]
UE4Editor_Core!FRunnableThreadWin::Run() [d:\applications\epic\epic games
vidia 4.9.2\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:74]