4.21 Crash when mouse moved over Level Editor (Vulkan)

I’m using Kubuntu 18.04, i7-4790, AMD Radeon 460.

UE4Editor crashes when mouse moved over the Level Editor when running in Vulkan mode:

LoginId:0002fd3408d68561d3dc5c46c9371929
EpicAccountId:

SIGSEGV: invalid attempt to read memory at address 0x0000000000000038

libvulkan_radeon.so!UnknownFunction(0x2ae12)
libvulkan_radeon.so!UnknownFunction(0x2bdba)
libvulkan_radeon.so!UnknownFunction(0x2d5ce)
libUE4Editor-VulkanRHI.so!FVulkanCommandListContext::RHIDrawPrimitive(unsigned int, unsigned int, unsigned int, unsigned int) [/opt/UnrealEngine/Engine/Source/Runtime/VulkanRHI/Private/VulkanCommands.cpp:779]
libUE4Editor-RHI.so!FRHICommandListExecutor::ExecuteInner_DoExecute(FRHICommandListBase&) [/opt/UnrealEngine/Engine/Source/Runtime/RHI/Private/RHICommandList.cpp:330]
libUE4Editor-RHI.so!FExecuteRHIThreadTask::DoTask(ENamedThreads::Type, TRefCountPtr<FGraphEvent> const&) [/opt/UnrealEngine/Engine/Source/Runtime/RHI/Private/RHICommandList.cpp:383]
libUE4Editor-RHI.so!TGraphTask<FExecuteRHIThreadTask>::ExecuteTask(TArray<FBaseGraphTask*, FDefaultAllocator>&, ENamedThreads::Type) [/opt/UnrealEngine/Engine/Source/Runtime/Core/Public/Async/TaskGraphInterfaces.h:829]
libUE4Editor-Core.so!FNamedTaskThread::ProcessTasksNamedThread(int, bool) [/opt/UnrealEngine/Engine/Source/Runtime/Core/Private/Async/TaskGraph.cpp:678]
libUE4Editor-Core.so!FNamedTaskThread::ProcessTasksUntilQuit(int) [/opt/UnrealEngine/Engine/Source/Runtime/Core/Private/Async/TaskGraph.cpp:574]
libUE4Editor-RenderCore.so!FRHIThread::Run() [/opt/UnrealEngine/Engine/Source/Runtime/RenderCore/Private/RenderingThread.cpp:281]
libUE4Editor-Core.so!FRunnableThreadPThread::Run() [/opt/UnrealEngine/Engine/Source/Runtime/Core/Private/HAL/PThreadRunnableThread.cpp:25]
libUE4Editor-Core.so!FRunnableThreadPThread::_ThreadProc(void*) [/opt/UnrealEngine/Engine/Source/Runtime/Core/Private/HAL/PThreadRunnableThread.h:177]
libpthread.so.0!UnknownFunction(0x76da)
libc.so.6!clone(+0x3e)

If I run UE4Editor in OpenGL mode, the crash does not occur:

$ ./Engine/Binaries/Linux/UE4Editor -opengl4

EDIT:

I’m running kernel version 4.15, and the AMDGPU driver that comes with that:

/lib/modules/4.15.0-45-generic/kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko

EDIT 2:

I re-ran with -vulkanvalidation=5, here’s the output when the crash occurs:

Signal 11 caught.
Malloc Size=65538 LargeMemoryPoolOffset=65554 
Malloc Size=65535 LargeMemoryPoolOffset=131119 
Malloc Size=68112 LargeMemoryPoolOffset=199248 
Malloc Size=705456 LargeMemoryPoolOffset=904720 
Malloc Size=88321 LargeMemoryPoolOffset=993057 
LogPakFile: Registered encryption key '00000000000000000000000000000000': 0 pak files mounted, 0 remain pending
LogPlatformFile: Not using cached read wrapper
LogTaskGraph: Started task graph with 4 named threads and 7 total threads with 1 sets of task threads.
LogICUInternationalization: ICU TimeZone Detection - Raw Offset: +0:00, Platform Override: ''
LogInit: Build: ++UE4+Release-4.21-CL-0
LogInit: Engine Version: 4.21.2-0+++UE4+Release-4.21
LogInit: Compatible Engine Version: 4.21.0-0+++UE4+Release-4.21
LogInit: Net CL: 0
LogInit: OS: GenericOSVersionLabel (GenericOSSubVersionLabel), CPU: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz, GPU: GenericGPUBrand
LogInit: Compiled (64-bit): Jan 28 2019 20:53:03
LogInit: Compiled with Clang: 6.0.1 (tags/RELEASE_601/final)
LogInit: Build Configuration: Shipping
LogInit: Branch Name: ++UE4+Release-4.21
LogInit: Command Line:  -Abslog="/home/syd/Documents/Unreal Projects/MyProject/Saved/Logs/MyProject-CRC.log" "/home/syd/Documents/Unreal Projects/MyProject/Saved/Crashes/crashinfo-MyProject-pid-26280-144EAD8908D690DE94BF8BA4C448AE74/"
LogInit: Base Directory: /opt/UnrealEngine/Engine/Binaries/Linux/
LogInit: Installed Engine Build: 1
LogInit: Presizing for max 100000 objects, including 0 objects not considered by GC, pre-allocating 0 bytes for permanent pool.
LogInit: Object subsystem initialized
LogConfig: Applying CVar settings from Section [ConsoleVariables] File [/home/syd/.config/Epic/CrashReportClient/Saved/Config/Linux/Engine.ini]
[2019.02.12-11.38.17:307][  0]LogInit: Unix hardware info:
[2019.02.12-11.38.17:307][  0]LogInit:  - we are the first instance of this executable
[2019.02.12-11.38.17:307][  0]LogInit:  - this process' id (pid) is 26662, parent process' id (ppid) is 26280
[2019.02.12-11.38.17:307][  0]LogInit:  - we are not running under debugger
[2019.02.12-11.38.17:308][  0]LogInit:  - machine network name is 'z97'
[2019.02.12-11.38.17:308][  0]LogInit:  - user name is 'syd' (syd)
[2019.02.12-11.38.17:308][  0]LogInit:  - we're logged in locally
[2019.02.12-11.38.17:308][  0]LogInit:  - we're running with rendering
[2019.02.12-11.38.17:308][  0]LogInit:  - CPU: GenuineIntel 'Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz' (signature: 0x306C3)
[2019.02.12-11.38.17:308][  0]LogInit:  - Number of physical cores available for the process: 4
[2019.02.12-11.38.17:308][  0]LogInit:  - Number of logical cores available for the process: 8
[2019.02.12-11.38.17:308][  0]LogInit:  - Cache line size: 64
[2019.02.12-11.38.17:308][  0]LogInit:  - Memory allocator used: binned2
[2019.02.12-11.38.17:308][  0]LogCore: Skipped benchmarking clocks because the engine is running in a standalone program mode - CLOCK_REALTIME will be used.
[2019.02.12-11.38.17:308][  0]LogInit: Unix-specific commandline switches:
[2019.02.12-11.38.17:308][  0]LogInit:  -ansimalloc - use malloc()/free() from libc (useful for tools like valgrind and electric fence)
[2019.02.12-11.38.17:308][  0]LogInit:  -jemalloc - use jemalloc for all memory allocation
[2019.02.12-11.38.17:308][  0]LogInit:  -binnedmalloc - use binned malloc  for all memory allocation
[2019.02.12-11.38.17:308][  0]LogInit:  -filemapcachesize=NUMBER - set the size for case-sensitive file mapping cache
[2019.02.12-11.38.17:308][  0]LogInit:  -useksm - uses kernel same-page mapping (KSM) for mapped memory (OFF)
[2019.02.12-11.38.17:308][  0]LogInit:  -ksmmergeall - marks all mmap'd memory pages suitable for KSM (OFF)
[2019.02.12-11.38.17:308][  0]LogInit:  -httpproxy=ADDRESS:PORT - redirects HTTP requests to a proxy (only supported if compiled with libcurl)
[2019.02.12-11.38.17:308][  0]LogInit:  -reuseconn - allow libcurl to reuse HTTP connections (only matters if compiled with libcurl)
[2019.02.12-11.38.17:308][  0]LogInit:  -virtmemkb=NUMBER - sets process virtual memory (address space) limit (overrides VirtualMemoryLimitInKB value from .ini)
[2019.02.12-11.38.17:308][  0]LogInit:  - Physical RAM available (not considering process quota): 27 GB (27547 MB, 28208332 KB, 28885331968 bytes)
[2019.02.12-11.38.17:308][  0]LogInit:  - VirtualMemoryAllocator pools will grow at scale 1.4
[2019.02.12-11.38.17:308][  0]LogInit:  - MemoryRangeDecommit() will be a no-op (re-run with -vmapoolevict to change)
[2019.02.12-11.38.17:330][  0]LogAssetRegistry: FAssetRegistry took 0.0107 seconds to start up
[2019.02.12-11.38.17:330][  0]LogUObjectArray: 1040 objects as part of root set at end of initial load.
[2019.02.12-11.38.17:330][  0]LogUObjectAllocator: 153328 out of 0 bytes used by permanent object pool.
[2019.02.12-11.38.17:330][  0]LogUObjectArray: CloseDisregardForGC: 0/0 objects in disregard for GC pool
[2019.02.12-11.38.17:330][  0]LogInit: Using OS detected language (en-GB).
[2019.02.12-11.38.17:330][  0]LogInit: Using OS detected locale (en-GB).
[2019.02.12-11.38.17:330][  0]LogTextLocalizationManager: No localization for 'en-GB' exists, so 'en' will be used for the language.
[2019.02.12-11.38.17:330][  0]LogTextLocalizationManager: No localization for 'en-GB' exists, so 'en' will be used for the locale.
[2019.02.12-11.38.17:347][  0]LogInit: Using OS detected language (en-GB).
[2019.02.12-11.38.17:347][  0]LogInit: Using OS detected locale (en-GB).
[2019.02.12-11.38.17:348][  0]LogTextLocalizationManager: No localization for 'en-GB' exists, so 'en' will be used for the language.
[2019.02.12-11.38.17:348][  0]LogTextLocalizationManager: No localization for 'en-GB' exists, so 'en' will be used for the locale.
[2019.02.12-11.38.17:348][  0]LogPackageLocalizationCache: Processed 2 localized package path(s) for 1 prioritized culture(s) in 0.000010 seconds
[2019.02.12-11.38.17:348][  0]CrashReportClientLog: CrashReportClientVersion=1.0
[2019.02.12-11.38.17:348][  0]CrashReportClientLog: CrashReportReceiver disabled
[2019.02.12-11.38.17:348][  0]CrashReportClientLog: DataRouterUrl: https://datarouter.ol.epicgames.com/datarouter/api/v1/public/data
[2019.02.12-11.38.17:349][  0]LogInit: Initializing SDL.
[2019.02.12-11.38.17:441][  0]LogInit: Initialized SDL 2.0.8 revision: 11184 (hg-12121:4358e537000a with EpicExtensions) (compiled against 2.0.8)
[2019.02.12-11.38.17:441][  0]LogInit: Using SDL video driver 'x11'
[2019.02.12-11.38.17:445][  0]LogSlate: New Slate User Created.  User Index 0, Is Virtual User: 0
[2019.02.12-11.38.17:445][  0]LogSlate: Slate User Registered.  User Index 0, Is Virtual User: 0
[2019.02.12-11.38.17:445][  0]LogSlate: Using FreeType 2.6.0
[2019.02.12-11.38.17:446][  0]LogSlate: SlateFontServices - WITH_FREETYPE: 1, WITH_HARFBUZZ: 0
[2019.02.12-11.38.17:446][  0]LogInit: Using SDL_WINDOW_OPENGL
[2019.02.12-11.38.17:448][  0]LogInit: FSlateOpenGLContext::Initialize - creating OpenGL 2.1 context
[2019.02.12-11.38.17:514][  0]CrashReportClientLog: Initial state = Unknown UploadState value
[2019.02.12-11.38.17:514][  0]CrashReportClientLog: Initial state = Unknown UploadState value
[2019.02.12-11.38.17:519][  0]LogLinux: Scale at X=0.000000, Y=0.000000: 0.500000 (monitor=#1, HDPI=30.480000 (horz scale: 0.317500), VDPI=30.480000 (vert scale: 0.317500))
[2019.02.12-11.38.17:519][  0]LogLinux: Scale at X=3012.500000, Y=553.500000: 1.000000 (monitor=#0, HDPI=108.917923 (horz scale: 1.134562), VDPI=108.857140 (vert scale: 1.133929))
[2019.02.12-11.38.17:520][  0]LogLinux: Scale at X=3387.500000, Y=850.500000: 1.000000 (monitor=#0, HDPI=108.917923 (horz scale: 1.134562), VDPI=108.857140 (vert scale: 1.133929))
[2019.02.12-11.38.17:525][  0]LogInit: FSlateOpenGLContext::Initialize - creating OpenGL 2.1 context
[2019.02.12-11.38.17:529][  0]LogSlate: Took 0.000075 seconds to synchronously load lazily loaded font '../../../Engine/Content/Slate/Fonts/Roboto-Regular.ttf' (155K)
[2019.02.12-11.38.17:530][  0]LogSlate: Took 0.000059 seconds to synchronously load lazily loaded font '../../../Engine/Content/Slate/Fonts/Roboto-Bold.ttf' (160K)
[2019.02.12-11.38.17:535][  0]LogSlate: Took 0.000061 seconds to synchronously load lazily loaded font '../../../Engine/Content/Slate/Fonts/Roboto-Italic.ttf' (157K)
[2019.02.12-11.39.01:472][  0]LogSlate: Request Window 'Unreal Engine 4 Crash Reporter' being destroyed
[2019.02.12-11.39.01:472][  0]LogSlate: Window 'Unreal Engine 4 Crash Reporter' being destroyed
[2019.02.12-11.39.01:505][  0]LogSlate: Slate User Destroyed.  User Index 0, Is Virtual User: 0
[2019.02.12-11.39.01:505][  0]LogExit: Preparing to exit.
[2019.02.12-11.39.01:506][  0]LogExit: Object subsystem successfully closed.
[2019.02.12-11.39.01:506][  0]LogModuleManager: Shutting down and abandoning module ImageWrapper (10)
[2019.02.12-11.39.01:506][  0]LogModuleManager: Shutting down and abandoning module InputCore (8)
[2019.02.12-11.39.01:506][  0]LogModuleManager: Shutting down and abandoning module CoreUObject (6)
[2019.02.12-11.39.01:506][  0]LogModuleManager: Shutting down and abandoning module SandboxFile (4)
[2019.02.12-11.39.01:506][  0]LogModuleManager: Shutting down and abandoning module PakFile (2)
[2019.02.12-11.39.01:507][  0]LogExit: Exiting.
[2019.02.12-11.39.01:507][  0]LogInit: Tearing down SDL.
0 classes and 0 folders.
[2019.02.12-11.37.46:018][  0]LogLoad: (Engine Initialization) Total time: 29.94 seconds
[2019.02.12-11.37.46:018][  0]LogLoad: (Engine Initialization) Total Blueprint compile time: 0.00 seconds
[2019.02.12-11.37.46:029][  0]LogSlate: Took 0.000143 seconds to synchronously load lazily loaded font '../../../Engine/Content/Slate/Fonts/Roboto-Regular.ttf' (155K)
[2019.02.12-11.37.46:032][  0]LogSlate: Took 0.000089 seconds to synchronously load lazily loaded font '../../../Engine/Content/Slate/Fonts/Roboto-Bold.ttf' (160K)
[2019.02.12-11.37.46:039][  0]LogSlate: Took 0.000082 seconds to synchronously load lazily loaded font '../../../Engine/Content/Editor/Slate/Fonts/FontAwesome.ttf' (139K)
[2019.02.12-11.37.46:116][  0]LogInit: Adding external input plugin.
[2019.02.12-11.37.46:160][  0]LogRenderer: Reallocating scene render targets to support 1040x588 Format 10 NumSamples 1 (Frame:1).
[2019.02.12-11.37.46:160][  0]LogContentStreaming: Texture pool size now 1000 MB
[2019.02.12-11.37.46:377][  1]LogAssetRegistry: Asset discovery search completed in 23.5592 seconds
[2019.02.12-11.37.46:379][  1]LogCollectionManager: Rebuilt the object cache for 0 collections in 0.000000 seconds (found 0 objects)
[2019.02.12-11.37.46:379][  1]LogCollectionManager: Fixed up redirectors for 0 collections in 0.000057 seconds (updated 0 objects)
[2019.02.12-11.38.10:319][427]LogLinux: Scale at X=3200.000000, Y=720.000000: 1.000000 (monitor=#0, HDPI=108.917923 (horz scale: 1.134562), VDPI=108.857140 (vert scale: 1.133929))
[2019.02.12-11.38.11:132][429]LogSlate: FSceneViewport::OnFocusLost() reason 0
CommonUnixCrashHandler: Signal=11
Engine crash handling finished; re-raising signal 11 for the default handler. Good bye.

So what kernel do you have? What graphics card? I hate to say that everything works on nvidia, so this comes down to Vulkan feature completeness of the graphics driver implementation in the driver.

Same for hd 7970 on Arch.

Would you re-run with -vulkanvalidation=5 on the commandline and see if you get any warnings before?

As often is the case with driver bugs, the situation is unclear. The problem can be in the engine code using the API, in the driver or both. Vulkan spec is less open to interpretation than notoriously problematic OpenGL, but even there things happen that work on one driver and not another, which is why I suggest starting with the validation layer to see if anything is caught there. (Validation doesn’t catch all issues either alas).

I’ve updated my post with the output of -vulkanvalidation=5 when the crash occurs.