Description

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]    
Steps to Reproduce

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.

Callstack

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]    

Have Comments or More Details?

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

1
Login to Vote

Duplicate
ComponentUE - Rendering Architecture - Shaders
Affects Versions5.429.10
Target Fix5.4.3
Fix Commit34375713
CreatedMar 11, 2024
ResolvedJun 27, 2024
UpdatedJun 27, 2024
View Jira Issue