The primary shader crashing is "FVisualizeLumenSceneCS" which I've put in the callstack section, but I think this is more likely a binding problem as I'm also see the following crash with cloud shaders (which compile after the editor loads). Only occurs with r.Shaders.Optimize=0 (note: r.Shaders.ExtraData=1 is required to get the Shader Name, otherwise it is marked "unknown").
Script Stack (0 frames) :
Uniform buffer bound to slot 4 is not what the shader expected:
Bound : Uniform Buffer[FAtmosphereUniformShaderParameters] with Hash[0x00b00100]
Expected : Uniform Buffer[Scene] with Hash[0x008c1f51]
Shader Name : m_SimpleVolumetricCloud_542158f2eff5c1dc/Default/FLocalVertexFactory/FRenderVolumetricCloudRenderViewCS/0:/Engine/Private/VolumetricCloud.usf|MainCS
Layout CB Size : 176
Layout Num Resources : 0
Resource Types :
> [Inline Frame] UnrealEditor-Core.dll!UE::Logging::Private::BasicFatalLog::__l2::<lambda>() Line 1088 C++ UnrealEditor-Core.dll!UE::Logging::Private::BasicFatalLog(const FLogCategoryBase & Category, const UE::Logging::Private::FStaticBasicLogRecord * Log, ...) Line 1088 C++ UnrealEditor-D3D12RHI.dll!UE::RHICore::SetResourcesFromTables<FD3D12ResourceBinder &,FD3D12UniformBuffer * [16],unsigned short>(FD3D12ResourceBinder & Binder, const FRHIShader & Shader, unsigned short & DirtyUniformBuffers, FD3D12UniformBuffer * const[16] & BoundUniformBuffers, RHIValidation::FTracker * Tracker) Line 182 C++ [Inline Frame] UnrealEditor-D3D12RHI.dll!FD3D12CommandContext::SetResourcesFromTables(const FD3D12ComputeShader * Shader) Line 1410 C++ [Inline Frame] UnrealEditor-D3D12RHI.dll!FD3D12CommandContext::CommitComputeResourceTables() Line 1463 C++ UnrealEditor-D3D12RHI.dll!FD3D12CommandContext::SetupDispatch(unsigned int ThreadGroupCountX, unsigned int ThreadGroupCountY, unsigned int ThreadGroupCountZ) Line 98 C++ UnrealEditor-D3D12RHI.dll!FD3D12CommandContext::RHIDispatchComputeShader(unsigned int ThreadGroupCountX, unsigned int ThreadGroupCountY, unsigned int ThreadGroupCountZ) Line 128 C++ [Inline Frame] UnrealEditor-Renderer.dll!FRHIComputeCommandList::DispatchComputeShader(unsigned int ThreadGroupCountX, unsigned int ThreadGroupCountY, unsigned int ThreadGroupCountZ) Line 2438 C++ [Inline Frame] UnrealEditor-Renderer.dll!UE::MeshPassUtils::Dispatch(FRHIComputeCommandList & PassParameters, const TShaderRefBase<FRenderVolumetricCloudRenderViewCS,FShaderMapPointerTable> &) Line 48 C++ UnrealEditor-Renderer.dll!FSceneRenderer::RenderVolumetricCloudsInternal::__l33::<lambda_4>::operator()(FRHIComputeCommandList & RHICmdList) Line 2479 C++ [Inline Frame] UnrealEditor-Renderer.dll!TRDGLambdaPass<FRenderVolumetricCloudRenderViewCS::FParameters,`FSceneRenderer::RenderVolumetricCloudsInternal'::`33'::<lambda_4>>::ExecuteLambdaFunc(FRHIComputeCommandList &) Line 594 C++ UnrealEditor-Renderer.dll!TRDGLambdaPass<FRenderVolumetricCloudRenderViewCS::FParameters,`FSceneRenderer::RenderVolumetricCloudsInternal'::`33'::<lambda_4>>::Execute(FRHIComputeCommandList & RHICmdList) Line 603 C++ UnrealEditor-RenderCore.dll!FRDGBuilder::ExecutePass(FRDGPass * Pass, FRHIComputeCommandList & RHICmdListPass) Line 3178 C++ UnrealEditor-RenderCore.dll!FRDGBuilder::Execute() Line 2016 C++ UnrealEditor-Renderer.dll!RenderViewFamilies_RenderThread(FRHICommandListImmediate & RHICmdList, const TArray<FSceneRenderer *,TSizedDefaultAllocator<32>> & SceneRenderers) Line 4805 C++ UnrealEditor-Renderer.dll!FRendererModule::BeginRenderingViewFamilies::__l89::<lambda_3>::operator()(FRHICommandListImmediate & RHICmdList) Line 5087 C++ [Inline Frame] UnrealEditor-Renderer.dll!EnqueueUniqueRenderCommand(FRendererModule::BeginRenderingViewFamilies::__l89::<lambda_3> &&) Line 363 C++ [Inline Frame] UnrealEditor-Renderer.dll!FRenderCommandPipe::Enqueue(FRendererModule::BeginRenderingViewFamilies::__l89::<lambda_3> &&) Line 482 C++ UnrealEditor-Renderer.dll!FRendererModule::BeginRenderingViewFamilies(FCanvas * Canvas, TArrayView<FSceneViewFamily *,int> ViewFamilies) Line 5079 C++ UnrealEditor-Renderer.dll!FRendererModule::BeginRenderingViewFamily(FCanvas * Canvas, FSceneViewFamily * ViewFamily) Line 4934 C++ UnrealEditor-UnrealEd.dll!FEditorViewportClient::Draw(FViewport * InViewport, FCanvas * Canvas) Line 4284 C++ UnrealEditor-Engine.dll!FViewport::Draw(bool bShouldPresent) Line 1751 C++ UnrealEditor-UnrealEd.dll!UEditorEngine::UpdateSingleViewportClient(FEditorViewportClient * InViewportClient, const bool bInAllowNonRealtimeViewportToDraw, bool bLinkedOrthoMovement) Line 2547 C++ UnrealEditor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 2205 C++ UnrealEditor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 550 C++ UnrealEditor.exe!FEngineLoop::Tick() Line 5789 C++ [Inline Frame] UnrealEditor.exe!EngineTick() Line 61 C++ UnrealEditor.exe!GuardedMain(const wchar_t * CmdLine) Line 180 C++ UnrealEditor.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 247 C++ UnrealEditor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 298 C++ [External Code]
Go to ConsoleVariables.ini and uncomment:
r.Shaders.Optimize=0
so that optimization is disabled.
Start Development Editor -> TP_ThirdPerson project.
Crash should occur during Compiling Shaders step of editor loading. If skipped, another crash will occur once the editor has opened.
Note: This callstack only seems to appear the first attempt to compile shaders. Shader version or another change needs to occur to cause it to appear again.
Ensure condition failed: false [Link Removed] [Line: 315]
Shader FVisualizeLumenSceneCS, permutation 3 has unbound parameters not represented in the parameter struct:
Primitive
[2024.03.11-14.34.44:735][ 0]LogOutputDevice: Error: Ensure condition failed: false [Link Removed] [Line: 315]
Shader FVisualizeLumenSceneCS, permutation 3 has unbound parameters not represented in the parameter struct:
Primitive
[2024.03.11-14.34.44:735][ 0]LogStats: FDebug::EnsureFailed - 0.000 s
A breakpoint instruction (__debugbreak() statement or a similar call) was executed in UnrealEditor.exe.
> [Inline Frame] UnrealEditor-RenderCore.dll!FShaderParameterBindings::BindForLegacyShaderParameters::__l57::<lambda_1>::operator()() Line 315 C++ UnrealEditor-RenderCore.dll!FShaderParameterBindings::BindForLegacyShaderParameters(const FShader * Shader, int PermutationId, const FShaderParameterMap & ParametersMap, const FShaderParametersMetadata & StructMetaData, bool bShouldBindEverything) Line 315 C++ [Inline Frame] UnrealEditor-Renderer.dll!BindForLegacyShaderParameters(FShader * PermutationId, int ParameterMap, const FShaderParameterMap &) Line 31 C++ [Inline Frame] UnrealEditor-Renderer.dll!FVisualizeLumenSceneCS::{ctor}(const FShaderCompiledShaderInitializerType &) Line 291 C++ UnrealEditor-Renderer.dll!FVisualizeLumenSceneCS::ConstructCompiledInstance(const FShaderCompiledShaderInitializerType & Initializer) Line 290 C++ UnrealEditor-Engine.dll!FGlobalShaderTypeCompiler::FinishCompileShader(const FGlobalShaderType * ShaderType, const FShaderCompileJob & CurrentJob, const FShaderPipelineType * ShaderPipelineType) Line 9278 C++ [Inline Frame] UnrealEditor-Engine.dll!ProcessCompiledJob(FShaderCompileJob *) Line 10524 C++ UnrealEditor-Engine.dll!ProcessCompiledGlobalShaders(const TArray<TRefCountPtr<FShaderCommonCompileJob>,TSizedDefaultAllocator<32>> & CompilationResults) Line 10608 C++ UnrealEditor-Engine.dll!FShaderCompilingManager::ProcessCompiledShaderMaps(TMap<int,FShaderMapCompileResults,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<int,FShaderMapCompileResults,0>> & CompiledShaderMaps, float TimeBudget) Line 6912 C++ UnrealEditor-Engine.dll!FShaderCompilingManager::FinishAllCompilation() Line 7400 C++ UnrealEditor-Engine.dll!UMaterialInterface::PostLoadDefaultMaterials() Line 685 C++ UnrealEditor-Engine.dll!UMaterialInterface::PostLoad() Line 251 C++ UnrealEditor-Engine.dll!UMaterial::PostLoad() Line 3745 C++ UnrealEditor-CoreUObject.dll!UObject::ConditionalPostLoad() Line 1306 C++ UnrealEditor-CoreUObject.dll!EndLoad(FUObjectSerializeContext * LoadContext, TArray<UPackage *,TSizedDefaultAllocator<32>> * OutLoadedPackages) Line 2304 C++ UnrealEditor-CoreUObject.dll!LoadPackageInternal::__l110::<lambda_2>::operator()() Line 1852 C++ UnrealEditor-CoreUObject.dll!LoadPackageInternal(UPackage * InOuter, const FPackagePath & PackagePath, unsigned int LoadFlags, FLinkerLoad * ImportLinker, FArchive * InReaderOverride, const FLinkerInstancingContext * InstancingContext, const FPackagePath * DiffPackagePath) Line 1954 C++ UnrealEditor-CoreUObject.dll!LoadPackage(UPackage * InOuter, const FPackagePath & PackagePath, unsigned int LoadFlags, FArchive * InReaderOverride, const FLinkerInstancingContext * InstancingContext, const FPackagePath * DiffPackagePath) Line 2110 C++ UnrealEditor-CoreUObject.dll!LoadPackage(UPackage * InOuter, const wchar_t * InLongPackageNameOrFilename, unsigned int LoadFlags, FArchive * InReaderOverride, const FLinkerInstancingContext * InstancingContext) Line 2086 C++ UnrealEditor-CoreUObject.dll!ResolveName(UObject * & InPackage, FString & InOutName, bool Create, bool Throw, unsigned int LoadFlags, const FLinkerInstancingContext * InstancingContext) Line 1246 C++ UnrealEditor-CoreUObject.dll!StaticLoadObjectInternal(UClass * ObjectClass, UObject * InOuter, const wchar_t * InName, const wchar_t * Filename, unsigned int LoadFlags, UPackageMap * Sandbox, bool bAllowObjectReconciliation, const FLinkerInstancingContext * InstancingContext) Line 1356 C++ UnrealEditor-CoreUObject.dll!StaticLoadObject(UClass * ObjectClass, UObject * InOuter, const wchar_t * InName, const wchar_t * Filename, unsigned int LoadFlags, UPackageMap * Sandbox, bool bAllowObjectReconciliation, const FLinkerInstancingContext * InstancingContext) Line 1430 C++ [Inline Frame] UnrealEditor-Engine.dll!LoadObject(UObject *) Line 2001 C++ UnrealEditor-Engine.dll!ConstructorHelpersInternal::FindOrLoadObject<UStaticMesh>(FString & PathName, unsigned int LoadFlags) Line 39 C++ UnrealEditor-Engine.dll!ConstructorHelpers::FObjectFinder<UStaticMesh>::FObjectFinder<UStaticMesh>(const wchar_t * ObjectToFind, unsigned int InLoadFlags) Line 90 C++ UnrealEditor-Engine.dll!UPlanarReflectionComponent::UPlanarReflectionComponent(const FObjectInitializer & ObjectInitializer) Line 1047 C++ UnrealEditor-CoreUObject.dll!UClass::CreateDefaultObject() Line 4588 C++ UnrealEditor-CoreUObject.dll!UClass::InternalCreateDefaultObjectWrapper() Line 5192 C++ UnrealEditor-CoreUObject.dll!UClass::GetDefaultObject(bool bCreateIfNeeded) Line 3254 C++ UnrealEditor-CoreUObject.dll!FObjectInitializer::CreateDefaultSubobject(UObject * Outer, FName SubobjectFName, const UClass * ReturnType, const UClass * ClassToCreateByDefault, bool bIsRequired, bool bIsTransient) Line 5469 C++ UnrealEditor-CoreUObject.dll!UObject::CreateDefaultSubobject(FName SubobjectFName, UClass * ReturnType, UClass * ClassToCreateByDefault, bool bIsRequired, bool bIsTransient) Line 165 C++ [Inline Frame] UnrealEditor-Engine.dll!UObject::CreateDefaultSubobject(FName) Line 147 C++ UnrealEditor-Engine.dll!APlanarReflection::APlanarReflection(const FObjectInitializer & ObjectInitializer) Line 935 C++ UnrealEditor-CoreUObject.dll!UClass::CreateDefaultObject() Line 4588 C++ UnrealEditor-CoreUObject.dll!UClass::InternalCreateDefaultObjectWrapper() Line 5192 C++ [Inline Frame] UnrealEditor-CoreUObject.dll!UClass::GetDefaultObject(bool) Line 3251 C++ UnrealEditor-CoreUObject.dll!UObjectLoadAllCompiledInDefaultProperties(TArray<UClass *,TSizedDefaultAllocator<32>> & OutAllNewClasses) Line 800 C++ UnrealEditor-CoreUObject.dll!ProcessNewlyLoadedUObjects(FName Package, bool bCanProcessNewlyLoadedObjects) Line 904 C++ UnrealEditor.exe!FEngineLoop::PreInitPostStartupScreen(const wchar_t * CmdLine) Line 3722 C++ [Inline Frame] UnrealEditor.exe!FEngineLoop::PreInit(const wchar_t *) Line 4386 C++ [Inline Frame] UnrealEditor.exe!EnginePreInit(const wchar_t *) Line 41 C++ UnrealEditor.exe!GuardedMain(const wchar_t * CmdLine) Line 136 C++ UnrealEditor.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 247 C++ UnrealEditor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 298 C++ [External Code]
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-209389 in the post.
1 |
Component | UE - Rendering Architecture - Shaders |
---|---|
Affects Versions | 5.4, 29.10 |
Target Fix | 5.4.3 |
Fix Commit | 34375713 |
---|
Created | Mar 11, 2024 |
---|---|
Resolved | Jun 27, 2024 |
Updated | Jun 27, 2024 |