Description

The GPU crashes after the ray tracing geometry builder attempts to create a shader resource view with an invalid offset.

Steps to Reproduce
  1. Open the sample project referenced from the Additional Info URL
  2. Drag the BP_DiverSuit_InnerSuit Blueprint into the editor viewport
  3. Drag a second BP_DiverSuit_InnerSuit Blueprint into the editor viewport

Expected
The Editor does not crash

Actual
The Editor issues a D3D validation error

D3D12 ERROR: ID3D12Device::CreateShaderResourceView: The Dimensions of the View are invalid due to at least one of the following conditions. Assuming this Format (0x27, R32_TYPELESS), FirstElement (value = 1844216) must be between 0 and the maximum offset of the Buffer, 1844215, inclusively. With the current FirstElement, NumElements (value = 1844214) must be between 1 and 0, inclusively, in order that the View fit on the Buffer. [ STATE_CREATION ERROR #31: CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS]D3D12: **BREAK** enabled for the previous message, which was: [ ERROR STATE_CREATION #31: CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS ]

Followed by a GPU crash
[673]LogD3D12RHI: Error: hr failed at \Engine\Source\Runtime\D3D12RHI\Private\D3D12Resources.cpp:1048 with error DXGI_ERROR_DEVICE_REMOVED with Reason: DXGI_ERROR_INVALID_CALL

Callstack

[Inline Frame] UnrealEditor-D3D12RHI.dll!D3DVectoredExceptionHandler::_l11::<lambda_1>::operator()() Line 246 C++ UnrealEditor-D3D12RHI.dll!D3DVectoredExceptionHandler(_EXCEPTION_POINTERS * InInfo) Line 246 C++ [External Code] UnrealEditor-D3D12RHI.dll!FD3D12ShaderResourceView::UpdateDescriptor() Line 130 C++ UnrealEditor-D3D12RHI.dll!FD3D12View::CreateView(const FD3D12View::FResourceInfo & InResource, FD3D12OfflineDescriptor * NullDescriptor) Line 317 C++ UnrealEditor-D3D12RHI.dll!FD3D12RayTracingGeometry::AllocateBufferSRVs(unsigned int InGPUIndex) Line 3096 C++ UnrealEditor-D3D12RHI.dll!FD3D12RayTracingGeometry::SetupHitGroupSystemParameters(unsigned int InGPUIndex) Line 3267 C++ UnrealEditor-D3D12RHI.dll!FD3D12CommandContext::RHIBuildAccelerationStructures(TArrayView<FRayTracingGeometryBuildParams const ,int> Params, const FRHIBufferRange & ScratchBufferRange) Line 3988 C++ [Inline Frame] UnrealEditor-Renderer.dll!FRHIComputeCommandList::BuildAccelerationStructures(TArrayView<FRayTracingGeometryBuildParams const ,int>) Line 3371 C++ UnrealEditor-Renderer.dll!FRayTracingDynamicGeometryCollection::DispatchUpdates(FRHICommandList & RHICmdList, FRHIBuffer * ScratchBuffer) Line 698 C++ [Inline Frame] UnrealEditor-Renderer.dll!FRayTracingDynamicGeometryCollection::AddDynamicGeometryUpdatePass::l2::<lambda_1>::operator()(FRDGAsyncTask) Line 572 C++ [Inline Frame] UnrealEditor-Renderer.dll!TRDGLambdaPass<FRayTracingDynamicGeometryUpdatePassParams,`FRayTracingDynamicGeometryCollection::AddDynamicGeometryUpdatePass'::`2'::<lambda_1>>::ExecuteLambdaFunc(FRHIComputeCommandList &) Line 682 C++ UnrealEditor-Renderer.dll!TRDGLambdaPass<FRayTracingDynamicGeometryUpdatePassParams,`FRayTracingDynamicGeometryCollection::AddDynamicGeometryUpdatePass'::`2'::<lambda_1>>::Execute(FRHIComputeCommandList & RHICmdList) Line 703 C++ UnrealEditor-RenderCore.dll!FRDGBuilder::ExecutePass(FRHIComputeCommandList & RHICmdListPass, FRDGPass * Pass) Line 3360 C++ UnrealEditor-RenderCore.dll!FRDGBuilder::ExecuteSerialPass(FRHIComputeCommandList & RHICmdListPass, FRDGPass * Pass) Line 3379 C++ UnrealEditor-RenderCore.dll!FRDGBuilder::SetupAuxiliaryPasses(FRDGPass * Pass) Line 2579 C++ UnrealEditor-RenderCore.dll!FRDGBuilder::SetupParameterPass(FRDGPass * Pass) Line 2615 C++ [Inline Frame] UnrealEditor-Renderer.dll!FRDGBuilder::AddPassInternal(FRDGEventName &&) Line 265 C++ UnrealEditor-Renderer.dll!FRDGBuilder::AddPass<FRayTracingDynamicGeometryUpdatePassParams,`FRayTracingDynamicGeometryCollection::AddDynamicGeometryUpdatePass'::`2'::<lambda_1>>(FRDGEventName && Name, const FRayTracingDynamicGeometryUpdatePassParams * ParameterStruct, ERDGPassFlags Flags, FRayTracingDynamicGeometryCollection::AddDynamicGeometryUpdatePass::l2::<lambda_1> && ExecuteLambda) Line 314 C++ UnrealEditor-Renderer.dll!FRayTracingDynamicGeometryCollection::AddDynamicGeometryUpdatePass(const FViewInfo & View, FRDGBuilder & GraphBuilder, ERDGPassFlags ComputePassFlags, FRDGBuffer * & OutDynamicGeometryScratchBuffer) Line 566 C++ UnrealEditor-Renderer.dll!FDeferredShadingSceneRenderer::DispatchRayTracingWorldUpdates(FRDGBuilder & GraphBuilder, FRDGBuffer * & OutDynamicGeometryScratchBuffer) Line 851 C++ UnrealEditor-Renderer.dll!FDeferredShadingSceneRenderer::Render(FRDGBuilder & GraphBuilder) Line 2463 C++ UnrealEditor-Renderer.dll!RenderViewFamilies_RenderThread(FRHICommandListImmediate & RHICmdList, const TArray<FSceneRenderer *,TSizedDefaultAllocator<32>> & SceneRenderers) Line 5431 C++ UnrealEditor-Renderer.dll!FRendererModule::BeginRenderingViewFamilies::l96::<lambda_3>::operator()(FRHICommandListImmediate & RHICmdList) Line 5734 C++ [Inline Frame] UnrealEditor-Renderer.dll!EnqueueUniqueRenderCommand(FRendererModule::BeginRenderingViewFamilies::l96::<lambda_3> &&) Line 363 C++ [Inline Frame] UnrealEditor-Renderer.dll!FRenderCommandPipe::Enqueue(FRendererModule::BeginRenderingViewFamilies::l96::<lambda_3> &&) Line 482 C++ UnrealEditor-Renderer.dll!FRendererModule::BeginRenderingViewFamilies(FCanvas * Canvas, TArrayView<FSceneViewFamily *,int> ViewFamilies) Line 5726 C++ UnrealEditor-Renderer.dll!FRendererModule::BeginRenderingViewFamily(FCanvas * Canvas, FSceneViewFamily * ViewFamily) Line 5566 C++ UnrealEditor-UnrealEd.dll!FEditorViewportClient::Draw(FViewport * InViewport, FCanvas * Canvas) Line 4350 C++ UnrealEditor-Engine.dll!FViewport::Draw(bool bShouldPresent) Line 1806 C++ UnrealEditor-UnrealEd.dll!UEditorEngine::UpdateSingleViewportClient(FEditorViewportClient * InViewportClient, const bool bInAllowNonRealtimeViewportToDraw, bool bLinkedOrthoMovement, bool * bOutViewportDrawn) Line 2662 C++ UnrealEditor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 2315 C++ UnrealEditor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 550 C++ UnrealEditor.exe!FEngineLoop::Tick() Line 5877 C++ [Inline Frame] UnrealEditor.exe!EngineTick() Line 69 C++ UnrealEditor.exe!GuardedMain(const wchar_t * CmdLine) Line 188 C++ UnrealEditor.exe!LaunchWindowsStartup(HINSTANCE_ * hInInstance, HINSTANCE__ * hPrevInstance, char * _formal, int nCmdShow, const wchar_t * CmdLine) Line 266 C++ UnrealEditor.exe!WinMain(HINSTANCE_ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 317 C++

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-238753 in the post.

0
Login to Vote

Fixed
ComponentUE - Graphics Features - Ray Tracing
Affects Versions5.5.15.5
Target Fix5.6
Fix Commit37490386
Main Commit37490410
CreatedJan 13, 2025
ResolvedJan 13, 2025
UpdatedJan 13, 2025
View Jira Issue