BrickGame icon indicating copy to clipboard operation
BrickGame copied to clipboard

Crash on UE_4.15 OSX

Open DavidOldAccount opened this issue 7 years ago • 7 comments

It crashes when I launch the game, and here's the log: LoginId:2cb65646f14b423c73521780803f17ea EpicAccountId:9450efd4cdac4f64987a484e169cb58a

#0 at 0x7fff98f40f06

__pthread_kill Address = 0x7fff98f40f06 (filename not found) [in libsystem_kernel.dylib] abort Address = 0x7fff9fd966df (filename not found) [in libsystem_c.dylib] basename Address = 0x7fff9fd5ddd8 (filename not found) [in libsystem_c.dylib] MTLReportFailure Address = 0x7fff9767d7ad (filename not found) [in Metal] validateVertexAttribute(MTLVertexBufferLayoutDescriptorInternal const&, int, MTLVertexAttributeDescriptorInternal const&) Address = 0x7fff97684754 (filename not found) [in Metal] -[MTLVertexDescriptorInternal validateWithVertexFunction:error:] Address = 0x7fff97684bb1 (filename not found) [in Metal] -[MTLRenderPipelineDescriptorInternal newSerializedVertexDataWithFlags:error:] Address = 0x7fff9767cfe7 (filename not found) [in Metal] -[MTLCompiler newRenderPipelineStateWithDescriptor:options:reflection:error:completionHandler:] Address = 0x7fff97670d5e (filename not found) [in Metal] -[_MTLDevice newRenderPipelineStateWithDescriptor:error:] Address = 0x7fff9765e9fd (filename not found) [in Metal] FMetalRenderPipelineDesc::CreatePipelineStateForBoundShaderState(FMetalBoundShaderState*, FMetalHashedVertexDescriptor const&) const Address = 0x144bae2c3 (filename not found) [in UE4Editor-MetalRHI.dylib] FMetalBoundShaderState::PrepareToDraw(FMetalHashedVertexDescriptor const&, FMetalRenderPipelineDesc const&) Address = 0x144b93890 (filename not found) [in UE4Editor-MetalRHI.dylib] FMetalContext::PrepareToDraw(unsigned int, EMetalIndexType) Address = 0x144b8dbf1 (filename not found) [in UE4Editor-MetalRHI.dylib] FMetalRHICommandContext::RHIDrawIndexedPrimitive(FRHIIndexBuffer*, unsigned int, int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) Address = 0x144b74a36 (filename not found) [in UE4Editor-MetalRHI.dylib] FMeshDrawingPolicy::DrawMesh(FRHICommandList&, FMeshBatch const&, int, bool) const Address = 0x11d3bb7b3 (filename not found) [in UE4Editor-Renderer.dylib] int TStaticMeshDrawList<TBasePassDrawingPolicy<FUniformLightMapPolicy> >::DrawElement<(InstancedStereoPolicy)2>(FRHICommandList&, FViewInfo const&, FMeshDrawingPolicy::ContextDataType, FDrawingPolicyRenderState&, TStaticMeshDrawList<TBasePassDrawingPolicy<FUniformLightMapPolicy> >::FElement const&, unsigned long long, TStaticMeshDrawList<TBasePassDrawingPolicy<FUniformLightMapPolicy> >::FDrawingPolicyLink*, bool&) Address = 0x11d293d88 (filename not found) [in UE4Editor-Renderer.dylib] bool TStaticMeshDrawList<TBasePassDrawingPolicy<FUniformLightMapPolicy> >::DrawVisibleInner<(InstancedStereoPolicy)2>(FRHICommandList&, FViewInfo const&, FMeshDrawingPolicy::ContextDataType, FDrawingPolicyRenderState&, TBitArray<SceneRenderingBitArrayAllocator> const*, TArray<unsigned long long, SceneRenderingAllocator> const*, StereoPair const*, int, int, bool) Address = 0x11d293113 (filename not found) [in UE4Editor-Renderer.dylib] FDeferredShadingSceneRenderer::RenderBasePassStaticDataType(FRHICommandList&, FViewInfo&, FDrawingPolicyRenderState const&, EBasePassDrawListType) Address = 0x11d1fca77 (filename not found) [in UE4Editor-Renderer.dylib] FDeferredShadingSceneRenderer::RenderBasePassStaticData(FRHICommandList&, FViewInfo&, FDrawingPolicyRenderState const&) Address = 0x11d1ffbc5 (filename not found) [in UE4Editor-Renderer.dylib] FDeferredShadingSceneRenderer::RenderBasePassView(FRHICommandListImmediate&, FViewInfo&) Address = 0x11d1fc7a3 (filename not found) [in UE4Editor-Renderer.dylib] FDeferredShadingSceneRenderer::RenderBasePass(FRHICommandListImmediate&) Address = 0x11d1fbd2e (filename not found) [in UE4Editor-Renderer.dylib] FDeferredShadingSceneRenderer::Render(FRHICommandListImmediate&) Address = 0x11d2e353c (filename not found) [in UE4Editor-Renderer.dylib] FRendererModule::BeginRenderingViewFamily(FCanvas*, FSceneViewFamily*)::EURCMacro_FDrawSceneCommand::DoTask(ENamedThreads::Type, TRefCountPtr<FGraphEvent> const&) Address = 0x11d88cd10 (filename not found) [in UE4Editor-Renderer.dylib] TGraphTask<FRendererModule::BeginRenderingViewFamily(FCanvas*, FSceneViewFamily*)::EURCMacro_FDrawSceneCommand>::ExecuteTask(TArray<FBaseGraphTask*, FDefaultAllocator>&, ENamedThreads::Type) Address = 0x11d8ff3eb (filename not found) [in UE4Editor-Renderer.dylib] FNamedTaskThread::ProcessTasksNamedThread(int, bool) Address = 0x10d4c2571 (filename not found) [in UE4Editor-Core.dylib] FNamedTaskThread::ProcessTasksUntilQuit(int) Address = 0x10d4be015 (filename not found) [in UE4Editor-Core.dylib] FTaskGraphImplementation::ProcessThreadUntilRequestReturn(ENamedThreads::Type) Address = 0x10d4ba891 (filename not found) [in UE4Editor-Core.dylib] RenderingThreadMain(FEvent*) Address = 0x1133d83d4 (filename not found) [in UE4Editor-RenderCore.dylib] FRenderingThread::Run() Address = 0x1133ebb97 (filename not found) [in UE4Editor-RenderCore.dylib] FRunnableThreadPThread::Run() Address = 0x10d51acb3 (filename not found) [in UE4Editor-Core.dylib] FRunnableThreadPThread::_ThreadProc(void*) Address = 0x10d4dcee1 (filename not found) [in UE4Editor-Core.dylib] _pthread_body Address = 0x7fff92eff99d (filename not found) [in libsystem_pthread.dylib] _pthread_body Address = 0x7fff92eff91a (filename not found) [in libsystem_pthread.dylib] thread_start Address = 0x7fff92efd351 (filename not found) [in libsystem_pthread.dylib]

DavidOldAccount avatar May 21 '17 05:05 DavidOldAccount

I can't test on OSX easily, but this is most likely due to the MetalRHI not supporting vertex streams with a stride of zero: https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/Apple/MetalRHI/Private/MetalRenderPipelineDesc.cpp#L289

It's possible that this can be fixed by changing UE4's MetalRHI to pass the zero-stride vertex stream to the Metal API. It's not clear from that code why it doesn't initialize the layout descriptor if the stride is zero.

AndrewScheidecker avatar May 25 '17 23:05 AndrewScheidecker

Well, this is kind of unachievable for a noob like me..... Can you please tell me more details of how the source code should be modified? If not, I'll try to run this project in a virtual machine instead.

DavidOldAccount avatar May 27 '17 08:05 DavidOldAccount

I implemented a voxel terrain generation system, which encompasses infinite terrain, mining, block rotation & stretch and primitive ai on my own: https://cplusplusgametricks.wordpress.com/ BUT It would be cool if you can solve this osx issue

DavidOldAccount avatar Jun 20 '17 08:06 DavidOldAccount

That's really cool! The AI especially, that's something I dreamed of doing. Cool stuff right there.

:)

miguelemosreverte avatar Jun 24 '17 22:06 miguelemosreverte

Thank you for your compliment :D I actually plan to release my project on github: https://github.com/NewDavidg0/Voxel-survival-primitive-UE4

DavidOldAccount avatar Jun 25 '17 11:06 DavidOldAccount

Did you use Scheidecker's voxel implementation or did you roll out your own solution?

Again, congrats for your hard work. Check WesterosCraft if you want to join a big team!

miguelemosreverte avatar Jun 25 '17 15:06 miguelemosreverte

Honestly, I tried to "steal" some ideas from brickgame in my very early stage of development, but I gave up because of brickgame's complexity and eventually implemented a blueprint-pure voxel project :D Surprise! I'm already in the westeroscraft team, but I haven't joined the development yet because of my end-term test

DavidOldAccount avatar Jun 26 '17 00:06 DavidOldAccount