BrickGame
BrickGame copied to clipboard
Crash on UE_4.15 OSX
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]
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.
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.
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
That's really cool! The AI especially, that's something I dreamed of doing. Cool stuff right there.
:)
Thank you for your compliment :D I actually plan to release my project on github: https://github.com/NewDavidg0/Voxel-survival-primitive-UE4
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!
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