Description

Launching a project outside of the Editor (-game) using D3D12 (-d3d12) results in a crash if the console command VisRT is used in the project.

Steps to Reproduce

PREREQUISITES:
This requires a D3D12-capable machine, so use of the Win10 OS is required.

  1. Create a new Blueprint project.
  2. Open a command prompt where your UE4Editor executable is located (Engine\Binaries\Win64).
  3. Enter the following command at the command prompt: UE4Editor.exe "<Path to .uproject file created in step 1>" -game -d3d12
  4. Confirm that the project launches without the Editor.
  5. Press the ` key to open the console.
  6. Enter the command VisRT.

RESULT:
A Windows error message appears stating that the video driver crashed and restarted, and a Crash Reporter window is displayed with the error: Assertion failed: SUCCEEDED(hr) [Link Removed] [Line: 283]

EXPECTED:
The Engine does not crash or cause the video driver to crash.

Callstack

Assertion failed: SUCCEEDED(hr) [Link Removed] [Line: 283]

UE4Editor_Core!FDebug::AssertFailed() [d:\p4builds\dev-main\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
UE4Editor_D3D12RHI!FD3D12Adapter::CreateCommittedResource() [d:\p4builds\dev-main\engine\source\runtime\d3d12rhi\private\d3d12resources.cpp:285]
UE4Editor_D3D12RHI!FD3D12Adapter::CreateBuffer() [d:\p4builds\dev-main\engine\source\runtime\d3d12rhi\private\d3d12resources.cpp:350]
UE4Editor_D3D12RHI!FD3D12BuddyAllocator::Initialize() [d:\p4builds\dev-main\engine\source\runtime\d3d12rhi\private\d3d12allocation.cpp:132]
UE4Editor_D3D12RHI!FD3D12BuddyAllocator::Allocate() [d:\p4builds\dev-main\engine\source\runtime\d3d12rhi\private\d3d12allocation.cpp:212]
UE4Editor_D3D12RHI!FD3D12BuddyAllocator::TryAllocate() [d:\p4builds\dev-main\engine\source\runtime\d3d12rhi\private\d3d12allocation.cpp:296]
UE4Editor_D3D12RHI!FD3D12MultiBuddyAllocator::TryAllocate() [d:\p4builds\dev-main\engine\source\runtime\d3d12rhi\private\d3d12allocation.cpp:516]
UE4Editor_D3D12RHI!FD3D12DynamicHeapAllocator::AllocUploadResource() [d:\p4builds\dev-main\engine\source\runtime\d3d12rhi\private\d3d12allocation.cpp:867]
UE4Editor_D3D12RHI!FD3D12DynamicRHI::LockBuffer<FD3D12VertexBuffer>() [d:\p4builds\dev-main\engine\source\runtime\d3d12rhi\private\d3d12buffer.cpp:235]
UE4Editor_D3D12RHI!FD3D12DynamicRHI::RHILockVertexBuffer() [d:\p4builds\dev-main\engine\source\runtime\d3d12rhi\private\d3d12vertexbuffer.cpp:70]
UE4Editor_SlateRHIRenderer!FSlateUpdateVertexAndIndexBuffers::Execute() [d:\p4builds\dev-main\engine\source\runtime\slaterhirenderer\private\slaterhirenderingpolicy.cpp:109]
UE4Editor_SlateRHIRenderer!FRHICommand<FSlateUpdateVertexAndIndexBuffers>::ExecuteAndDestruct() [d:\p4builds\dev-main\engine\source\runtime\rhi\public\rhicommandlist.h:419]
UE4Editor_RHI!FRHICommandListExecutor::ExecuteInner_DoExecute() [d:\p4builds\dev-main\engine\source\runtime\rhi\private\rhicommandlist.cpp:255]
UE4Editor_RHI!FExecuteRHIThreadTask::DoTask() [d:\p4builds\dev-main\engine\source\runtime\rhi\private\rhicommandlist.cpp:296]
UE4Editor_RHI!TGraphTask<FExecuteRHIThreadTask>::ExecuteTask() [d:\p4builds\dev-main\engine\source\runtime\core\public\async\taskgraphinterfaces.h:883]
UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread() [d:\p4builds\dev-main\engine\source\runtime\core\private\async\taskgraph.cpp:954]
UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilQuit() [d:\p4builds\dev-main\engine\source\runtime\core\private\async\taskgraph.cpp:701]
UE4Editor_RenderCore!FRHIThread::Run() [d:\p4builds\dev-main\engine\source\runtime\rendercore\private\renderingthread.cpp:279]
UE4Editor_Core!FRunnableThreadWin::Run() [d:\p4builds\dev-main\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:76]

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-41631 in the post.

1
Login to Vote

Fixed
ComponentRendering
Affects Versions4.18
Target Fix4.24
Fix Commit10387632
Main Commit10420718
Release Commit10387632
CreatedFeb 6, 2017
ResolvedNov 25, 2019
UpdatedNov 25, 2019