不具合の詳細
DumpGPU.cpp(409)でパス情報をファイルに書き込むときにエンコーディングオプションにをAutoDetectに設定されているため複数のエンコーディングとBOMがファイル内に混在し破損したファイルが生成されてしまいます。具体的にはElementBatchのParentEventScopesに日本語のウィンドウタイトル(例:エディタの環境設定)が入ることによってファイル中にUTF-16文字列が混入してしまいます。
エンコーディングオプションにForceUTF8WithoutBOMを指定することで修正されます。事前にファイルの先頭にUTF8のBOMを書き込んでおくとより安全な出力になります。
UnrealEditor-RenderCore.dll!FRDGResourceDumpContext::DumpStringToFile(TStringView<wchar_t> OutputString, const FString & FileName, unsigned int WriteFlags) Line 409 C++ UnrealEditor-RenderCore.dll!FRDGResourceDumpContext::DumpJsonToFile(const TSharedPtr<FJsonObject,1> & JsonObject, const FString & FileName, unsigned int WriteFlags) Line 426 C++ UnrealEditor-RenderCore.dll!FRDGBuilder::DumpResourcePassOutputs(const FRDGPass * Pass) Line 2614 C++ UnrealEditor-RenderCore.dll!FRDGBuilder::SetupAuxiliaryPasses(FRDGPass * Pass) Line 2587 C++ UnrealEditor-RenderCore.dll!FRDGBuilder::SetupEmptyPass(FRDGPass * Pass) Line 2626 C++ UnrealEditor-RenderCore.dll!FRDGBuilder::Execute() Line 1754 C++ UnrealEditor-SlateRHIRenderer.dll!FSlateRHIRenderer::DrawWindows_RenderThread(FRHICommandListImmediate & RHICmdList, TArrayView<FSlateDrawWindowPassInputs const ,int> Windows, TArrayView<FRenderThreadUpdateContext const ,int> DeferredUpdates) Line 1099 C++ UnrealEditor-SlateRHIRenderer.dll!FSlateRHIRenderer::DrawWindows_Private::__l99::<lambda_3>::operator()(FRHICommandListImmediate & RHICmdList) Line 1377 C++ [Inline Frame] UnrealEditor-RenderCore.dll!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>,void __cdecl(FRHICommandListImmediate &)>::operator()(FRHICommandListImmediate &) Line 470 C++ UnrealEditor-RenderCore.dll!FRenderThreadCommandPipe::EnqueueAndLaunch::__l5::<lambda>() Line 1541 C++ [Inline Frame] UnrealEditor-RenderCore.dll!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::TFunctionStorage<1>,void __cdecl(void)>::operator()() Line 470 C++ [Inline Frame] UnrealEditor-RenderCore.dll!TFunctionGraphTaskImpl<void __cdecl(void),1>::DoTaskImpl(TUniqueFunction<void __cdecl(void)> & Function, ENamedThreads::Type) Line 1710 C++ [Inline Frame] UnrealEditor-RenderCore.dll!TFunctionGraphTaskImpl<void __cdecl(void),1>::DoTask(ENamedThreads::Type) Line 1703 C++ UnrealEditor-RenderCore.dll!TGraphTask<TFunctionGraphTaskImpl<void __cdecl(void),1>>::ExecuteTask() Line 634 C++ UnrealEditor-Core.dll!UE::Tasks::Private::FTaskBase::TryExecuteTask() Line 504 C++ [Inline Frame] UnrealEditor-Core.dll!FBaseGraphTask::Execute(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32>> &) Line 482 C++ UnrealEditor-Core.dll!FNamedTaskThread::ProcessTasksNamedThread(int QueueIndex, bool bAllowStall) Line 779 C++ UnrealEditor-Core.dll!FNamedTaskThread::ProcessTasksUntilQuit(int QueueIndex) Line 668 C++ UnrealEditor-RenderCore.dll!RenderingThreadMain(FEvent * TaskGraphBoundSyncEvent) Line 317 C++ UnrealEditor-RenderCore.dll!FRenderingThread::Run() Line 470 C++ UnrealEditor-Core.dll!FRunnableThreadWin::Run() Line 159 C++ UnrealEditor-Core.dll!FRunnableThreadWin::GuardedRun() Line 71 C++