以下のコールスタックで Geometry->HitGroupSystemParameters[Device->GetGPUIndex()] がnullとなっておりクラッシュする事例も発生していました。
一つ上はRHIThreadですがこちらは Foreground Worker でした。
> Application-Win64-Test.exe!FD3D12RayTracingShaderBindingTableInternal::SetHitGroupGeometrySystemParameters(unsigned int WorkerIndex, ERayTracingLocalShaderBindingType BindingType, unsigned int RecordIndex, const FD3D12RayTracingGeometry * Geometry, unsigned int UserData, unsigned int GeometrySegmentIndex) Line 2156 C++
Application-Win64-Test.exe!SetRayTracingHitGroup(FD3D12Device * Device, FD3D12RayTracingShaderBindingTableInternal * ShaderTable, unsigned int RecordIndex, FD3D12RayTracingPipelineState * Pipeline, unsigned int HitGroupIndex, const FD3D12RayTracingGeometry * Geometry, unsigned int GeometrySegmentIndex, unsigned int NumUniformBuffers, FRHIUniformBuffer * const * UniformBuffers, unsigned int LooseParameterDataSize, const void * LooseParameterData, unsigned int UserData, ERayTracingLocalShaderBindingType BindingType, unsigned int WorkerIndex) Line 5822 C++
[Inline Frame] Application-Win64-Test.exe!FD3D12CommandContext::RHISetBindingsOnShaderBindingTable::__l2::<lambda>(const FD3D12CommandContext::RHISetBindingsOnShaderBindingTable::__l2::FTaskContext &) Line 6004 C++
[Inline Frame] Application-Win64-Test.exe!ParallelForImpl::CallBody(const FD3D12CommandContext::RHISetBindingsOnShaderBindingTable::__l2::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &) &) Line 74 C++
Application-Win64-Test.exe!`ParallelForImpl::ParallelForInternal<`FD3D12CommandContext::RHISetBindingsOnShaderBindingTable'::`2'::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &),`ParallelForWithExistingTaskContext<`FD3D12CommandContext::RHISetBindingsOnShaderBindingTable'::`2'::FTaskContext,`FD3D12CommandContext::RHISetBindingsOnShaderBindingTable'::`2'::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &)>'::`2'::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &),`FD3D12CommandContext::RHISetBindingsOnShaderBindingTable'::`2'::FTaskContext>'::`2'::FParallelExecutor::operator()(const bool bIsMaster) Line 360 C++
[Inline Frame] Application-Win64-Test.exe!LowLevelTasks::FTask::Init::__l5::<lambda>(const bool) Line 499 C++
[Inline Frame] Application-Win64-Test.exe!Invoke(LowLevelTasks::FTask::Init::__l5::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &) &) Line 47 C++
[Inline Frame] Application-Win64-Test.exe!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<`LowLevelTasks::FTask::Init<`ParallelForImpl::ParallelForInternal<`FD3D12CommandContext::RHISetBindingsOnShaderBindingTable'::`2'::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &),`ParallelForWithExistingTaskContext<`FD3D12CommandContext::RHISetBindingsOnShaderBindingTable'::`2'::FTaskContext,`FD3D12CommandContext::RHISetBindingsOnShaderBindingTable'::`2'::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &)>'::`2'::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &),`FD3D12CommandContext::RHISetBindingsOnShaderBindingTable'::`2'::FTaskContext>'::`2'::FParallelExecutor>'::`5'::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &),0>::Call(void *) Line 162 C++
Application-Win64-Test.exe!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<`LowLevelTasks::FTask::Init<`ParallelForImpl::ParallelForInternal<`FD3D12CommandContext::RHISetBindingsOnShaderBindingTable'::`2'::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &),`ParallelForWithExistingTaskContext<`FD3D12CommandContext::RHISetBindingsOnShaderBindingTable'::`2'::FTaskContext,`FD3D12CommandContext::RHISetBindingsOnShaderBindingTable'::`2'::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &)>'::`2'::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &),`FD3D12CommandContext::RHISetBindingsOnShaderBindingTable'::`2'::FTaskContext>'::`2'::FParallelExecutor>'::`5'::void <lambda>(const TArray<FString,TSizedDefaultAllocator<32>> &),0>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48> & Destination, void * InlineData, unsigned int DestInlineSize, bool <Params_0>) Line 171 C++
[Inline Frame] Application-Win64-Test.exe!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48> &) Line 309 C++
Application-Win64-Test.exe!LowLevelTasks::FTask::ExecuteTask() Line 627 C++
[Inline Frame] Application-Win64-Test.exe!FCpuProfilerTrace::FEventScope::{ctor}(unsigned int &) Line 197 C++
Application-Win64-Test.exe!LowLevelTasks::FScheduler::ExecuteTask(LowLevelTasks::FTask * InTask) Line 396 C++
[Inline Frame] Application-Win64-Test.exe!LowLevelTasks::FScheduler::TryExecuteTaskFrom(LowLevelTasks::Private::FWaitEvent *) Line 698 C++
Application-Win64-Test.exe!LowLevelTasks::FScheduler::WorkerLoop(LowLevelTasks::Private::FWaitEvent * WorkerEvent, LowLevelTasks::Private::TLocalQueueRegistry<1024,1024>::TLocalQueue * WorkerLocalQueue, unsigned int WaitCycles, bool bPermitBackgroundWork) Line 757 C++
[Inline Frame] Application-Win64-Test.exe!LowLevelTasks::FScheduler::WorkerMain(LowLevelTasks::Private::FWaitEvent * WorkerEvent, LowLevelTasks::Private::TLocalQueueRegistry<1024,1024>::TLocalQueue * WorkerLocalQueue, unsigned int WaitCycles, bool) Line 816 C++
Application-Win64-Test.exe!LowLevelTasks::FScheduler::CreateWorker::__l2::<lambda>() Line 220 C++
[Inline Frame] Application-Win64-Test.exe!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>,void __cdecl(void)>::operator()() Line 414 C++
Application-Win64-Test.exe!FThreadImpl::Run() Line 68 C++
Application-Win64-Test.exe!FRunnableThreadWin::Run() Line 159 C++
Application-Win64-Test.exe!FRunnableThreadWin::GuardedRun() Line 79 C++
[Frames may be missing, no binary loaded for kernel32.dll]
kernel32.dll!00007ff91adce8d7() Unknown
[Image Removed]
[Attachment Removed]