Don't want to see articles from a certain category? When logged in, go to your User Settings and adjust your feed in the Content Preferences section where you can block tags!
We do often include affiliate links to earn us some pennies. See more here.

While the Epic Games Store may not support Linux, at least Unreal Engine does and it appears to have been given quite a lot of attention in the Unreal Engine 4.25 release that went out officially today.

Apart from the usual SDK updates which you tend to see in each release, scrolling over the release notes was actually pretty damn interesting. It's not just a list of bug fixes either, there's plenty that's brand new on the Linux side and it really seems like a lot of attention has been given. Some of it includes: support for the MDL Importer on Linux for Unreal Datasmith, support for Linux offscreen Vulkan rendering, they moved to a newer llvm clang 9.0.1 v16 tool-chain and a lot more.

It's also quite fun to see a rather large and clear Linux icon on their supported platforms image:

Want to see the big list of Linux improvements in Unreal Engine 4.25? We've included it all below in a handy clickable spoiler for you. We've removed some that weren't for the normal Linux desktop like AArch64.

Changelog, click me
  1. Bug Fix: Fixed issue that prevented editor windows from restoring when minimized.

  2. Bug Fix: Set UserTempDir for Linux to $TMPDIR or fallback to /var/tmp

  3. Bug Fix: Added missing space to SanitizerInfo string.

  4. Bug Fix: Implemented module path name for Unix to avoid hard coded default path.

  5. Bug Fix: Addref Vulkan memory allocation so it's released when not used by framebuffer and surface FrameBuffer ctor was creating a view directly onto a texture surface, but was not holding the allocated memory. If the texture was freed before the framebuffer was destroyed, we could run into use after free type issues.

  6. Bug Fix: Fixed Linux address sanitizer builds.

  7. Bug Fix: Reduced NullRHI static buffer size by using dynamic buffer Reduces allocation size & fixes potential silent buffer overrun.

  8. Bug Fix: Fixed issue with shell script not being able to handle quoted arguments.

  9. Bug Fix: Send 127.0.0.1 by default for Linux/Mac as well for UnrealInsights. Since there's no Event to close dont need to check for this.

  10. Bug Fix: Added win64 platform check for VisualStudioDTE.

  11. Bug fix: Fixed Linux build break with case sensitive headers.

  12. Bug Fix: FixedLinux build break (SEnumComboBox.h -> SEnumCombobox.h)

  13. Bug Fix: Fixed race when two threads are trying to create a folder on Linux.

  14. Bug Fix: Fixed command quoting in Linux chmod command.

  15. Bug Fix: Override GetPortableCallstack to avoid 1MB allocations in crash signal handler.

  16. Bug Fix:: Removed VulkanLinuxPlatform RenderOffScreen logging.

  17. Bug Fix: Fixed Linux build break (includes paths with backslashes)

  18. Bug Fix: Fixed UnrealBuildTool unused variable warnings.

  19. Bug Fix: Fix for ISPCTexComp dll not loading on projects on a different directory. Fixes this warning on UE4Editor startup: LogCore: Warning: dlopen failed: /epic/UE4.git/Engine/ThirdParty/IntelISPCTexComp/Linux64-Release/libispc_texcomp.so: cannot open shared object file: No such file or directory LogTextureFormatIntelISPCTexComp: Warning: Unable to load ../../../Engine/ThirdParty/IntelISPCTexComp/Linux64-Release/libispc_texcomp.so

  20. Bug Fix: Ensures start time for events is now greater than last end time for all nodes.

  21. Bug Fix: GpuProfilerEvent times now clamp to valid values, SanitizeEventTree was not clamping start times to be >= to previous root start times, so we were hitting asserts in TraverseEventTree() for: lastStartTime >= GpuProfilerEvents[Root].GetStartResultMicroseconds(). Also removed unused variables.

  22. Bug Fix: Now using secure_getenv() instead of getenv().

  23. New: Missing toolchain warning now only appears on Linux + Win64.

  24. New: Added linux sanitizer information to build details if set.

  25. New: Build nvTriStrip and ForsythTriOptimizer with UE clang toolchain (link with libstdc++) Removed stdc++ dependency for MeshBuilderCommon.

  26. New: Added VULKAN_ENABLE_DUMP_LAYER to VulkanLinuxPlatform.h.

  27. New: System compiler is no longer the default fall-back on Linux. We now only check for and use the system compiler if "ForceUseSystemCompiler" command line is passed Also, no longer default to epic compiler if ForceUseSystemCompiler is specified and the system compiler can’t be found.

  28. New: Moved Linux architectures to Linux package project submenu. Added a PlatformSubMenu ini entry to DataDrivenPlatformInfo sections, and coalesced these in FPackageProjectMenu::MakeMenu().

  29. New: Added a more descriptive error messages for Linux SDK Toolchain Not Found for three cases:

    • .$ LINUX_MULTIARCH_ROOT=/tmp/foobar make BlankProgram bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development Fixing inconsistent case in filenames. Setting up Mono Building BlankProgram... Unable to locate Linux SDK toolchain at /tmp/foobar/x86_64-unknown-linux-gnu. ERROR: GetBuildPlatform: No BuildPlatform found for Linux make: *** [Makefile:183: BlankProgram] Error 5

    • make BlankProgram ARGS="forceusesystemcompiler" bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development forceusesystemcompiler Fixing inconsistent case in filenames. Setting up Mono Building BlankProgram... Unable to locate system compiler (-ForceUseSystemCompiler specified). ERROR GetBuildPlatform: No BuildPlatform found for Linux make: *** [Makefile:183: BlankProgram] Error 5

    • LINUX_MULTIARCH_ROOT= make BlankProgram bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development Fixing inconsistent case in filenames. Setting up Mono Building BlankProgram... Unable to locate Linux SDK toolchain. Please run Setup.sh. ERROR GetBuildPlatform: No BuildPlatform found for Linux make: *** [Makefile:183: BlankProgram] Error 5

  30. New: Added support for Linux offscreen Vulkan rendering, which is enabled with -RenderOffScreen flag. This fixes several Slate issues when rendering offscreen.

  31. New: Moved to new llvm clang 9.0.1 v16 toolchain.

  32. New: Added bGdbIndexSection bool to LinuxToolChain.

  33. New: Linux now always uses lld linker with clang v9 and above.

  34. New: Can now generate .debug_pubnames and .debug_pubtypes sections in a format suitable for conversion into a GDB index. This option is only useful with a linker that can produce GDB index version 7.

  35. New: Added protected to bGdbIndexSection bool.

  36. New: New build of python2.7 for Linux now supports zlib, bz2, and ssl.

  37. New: Use msbuild in mono for Linux when using an installed copy and mono >= 5.0.

  38. New: Batch writing of ini files is now possible.

As for Vulkan API support, looks like that saw huge improvements too across the board. There's 50+ improvements just for Vulkan including new features like DXC integration (DirectX Shader Compiler) into their Vulkan shader compiler, they added support for Virtual Texture Streaming for Vulkan on Linux and there's even some Vulkan VR improvements

It's interesting since there's more and more games coming to Stadia, which uses Debian Linux and Vulkan so it's probable a lot of the interest there is due to that and thanks to it Unreal Engine on Linux as a whole will get better. See the release announcement here.

Article taken from GamingOnLinux.com.
20 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. Find me on Mastodon.
See more from me
The comments on this article are closed.
30 comments
Page: «2/3»
  Go to:

Avehicle7887 May 5, 2020
Quoting: Leopard
Quoting: Avehicle7887Have they finally fixed the Vulkan performance issues with native Linux builds? As of a few months ago it was so bad that the same Windows version of a game ran twice as fast with DXVK.

Probably not.




Good thing the devs of the game are still supporting OpenGL, 50 fps on the main menu is not looking good, Can't imagine how it performs during gameplay.
Disharmonic May 5, 2020
View PC info
  • Supporter
Quoting: mphuZ
Quotewith tons of Linux...

Official termination of Win32 support starting from 4.27 version.
So all UE4 games on WIndows will be Metro apps or am I misunderstanding that?
Avehicle7887 May 5, 2020
Quoting: Disharmonic
Quoting: mphuZ
Quotewith tons of Linux...

Official termination of Win32 support starting from 4.27 version.
So all UE4 games on WIndows will be Metro apps or am I misunderstanding that?

I think it more means "no more 32bit games" which I'd say it's about time,
mphuZ May 5, 2020
Quoting: DisharmonicSo all UE4 games on WIndows will be Metro apps or am I misunderstanding that?
Original:

QuoteWe are officially deprecating our Win32 support. It will be included in Unreal Engine 4.25 and Unreal Engine 4.26, but support for 32-bit Windows operating systems will be removed in a future release.
That sounds vague to me. They will either stop supporting 32-bit systems, or switch to UWP completely.
Liam Dawe May 5, 2020
Quoting: mphuZ
Quoting: DisharmonicSo all UE4 games on WIndows will be Metro apps or am I misunderstanding that?
Original:

QuoteWe are officially deprecating our Win32 support. It will be included in Unreal Engine 4.25 and Unreal Engine 4.26, but support for 32-bit Windows operating systems will be removed in a future release.
That sounds vague to me. They will either stop supporting 32-bit systems, or switch to UWP completely.
Win32 in UE is not the same as the Win32 platform you might be thinking of. Unreal uses win32/win64 naming simply for 32/64bit. It means they're retiring 32bit building. Not that any of that matters to us...


Last edited by Liam Dawe on 5 May 2020 at 11:32 pm UTC
salamanderrake May 6, 2020
People complaining about UE4 on Linux are just mostly mad about UT3 not being ported to Linux and can't just let it go and move on.
QuoteLinux

Bug Fix: Fixed issue that prevented editor windows from restoring when minimized.

Bug Fix: Added PLATFORM_LINUXAARCH64 to Platform.h

Bug Fix: Set UserTempDir for Linux to $TMPDIR or fallback to /var/tmp

Bug Fix: Added missing space to SanitizerInfo string.

Bug Fix: Implemented module path name for Unix to avoid hard coded default path.

Bug Fix: Disabled ispc for Linux AArch64 Currently using ispc v1.12 which has add "experimental AArch64" support.

Bug Fix: Addref Vulkan memory allocation so it's released when not used by framebuffer and surface FrameBuffer ctor was creating a view directly onto a texture surface, but was not holding the allocated memory. If the texture was freed before the framebuffer was destroyed, we could run into use after free type issues.

Bug Fix: Fixed Linux address sanitizer builds.

Bug Fix: Reduced NullRHI static buffer size by using dynamic buffer Reduces allocation size & fixes potential silent buffer overrun.

Bug Fix: Fixed issue with shell script not being able to handle quoted arguments.

Bug Fix: Default LinuxAArch64 platform in binary now builds to the same default as Linux platform.

Bug Fix: Don't add local launch device for Linux AArch64 platform Local device right now will never be an Arm64 device.

Bug Fix: Set PrecompileForTargets to None for AArch64 builds of SoundVisualizations and Kiss_FFT.

Bug Fix: Send 127.0.0.1 by default for Linux/Mac as well for UnrealInsights. Since there's no Event to close dont need to check for this.

Bug Fix: Added win64 platform check for VisualStudioDTE.

Bug fix: Fixed Linux build break with case sensitive headers.

Bug Fix: FixedLinux build break (SEnumComboBox.h -> SEnumCombobox.h)

Bug Fix: Fixed race when two threads are trying to create a folder on Linux.

Bug Fix: Fixed command quoting in Linux chmod command.

Bug Fix: Override GetPortableCallstack to avoid 1MB allocations in crash signal handler.

Bug Fix:: Removed VulkanLinuxPlatform RenderOffScreen logging.

Bug Fix: Fixed Linux build break (includes paths with backslashes)

Bug Fix: Fixed UnrealBuildTool unused variable warnings.

Bug Fix: Fix for ISPCTexComp dll not loading on projects on a different directory. Fixes this warning on UE4Editor startup: LogCore: Warning: dlopen failed: /epic/UE4.git/Engine/ThirdParty/IntelISPCTexComp/Linux64-Release/libispc_texcomp.so: cannot open shared object file: No such file or directory LogTextureFormatIntelISPCTexComp: Warning: Unable to load ../../../Engine/ThirdParty/IntelISPCTexComp/Linux64-Release/libispc_texcomp.so

Bug Fix: Ensures start time for events is now greater than last end time for all nodes.

Bug Fix: GpuProfilerEvent times now clamp to valid values, SanitizeEventTree was not clamping start times to be >= to previous root start times, so we were hitting asserts in TraverseEventTree() for: lastStartTime >= GpuProfilerEvents[Root].GetStartResultMicroseconds(). Also removed unused variables.

Bug Fix: Now using secure_getenv() instead of getenv().

New: Missing toolchain warning now only appears on Linux + Win64.

New: Added linux sanitizer information to build details if set.

New: Build nvTriStrip and ForsythTriOptimizer with UE clang toolchain (link with libstdc++) Removed stdc++ dependency for MeshBuilderCommon.

New: Added LinuxAArch64Server and LinuxAArch64Client build targets.

New: Added VULKAN_ENABLE_DUMP_LAYER to VulkanLinuxPlatform.h.

New: System compiler is no longer the default fall-back on Linux. We now only check for and use the system compiler if "ForceUseSystemCompiler" command line is passed Also, no longer default to epic compiler if ForceUseSystemCompiler is specified and the system compiler can’t be found.

New: Moved Linux architectures to Linux package project submenu. Added a PlatformSubMenu ini entry to DataDrivenPlatformInfo sections, and coalesced these in FPackageProjectMenu::MakeMenu().

New: Added a more descriptive error messages for Linux SDK Toolchain Not Found for three cases:

.$ LINUX_MULTIARCH_ROOT=/tmp/foobar make BlankProgram bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development Fixing inconsistent case in filenames. Setting up Mono Building BlankProgram... Unable to locate Linux SDK toolchain at /tmp/foobar/x86_64-unknown-linux-gnu. ERROR: GetBuildPlatform: No BuildPlatform found for Linux make: *** [Makefile:183: BlankProgram] Error 5

make BlankProgram ARGS="forceusesystemcompiler" bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development forceusesystemcompiler Fixing inconsistent case in filenames. Setting up Mono Building BlankProgram... Unable to locate system compiler (-ForceUseSystemCompiler specified). ERROR GetBuildPlatform: No BuildPlatform found for Linux make: *** [Makefile:183: BlankProgram] Error 5

LINUX_MULTIARCH_ROOT= make BlankProgram bash "/epic/UE4-23.git/Engine/Build/BatchFiles/Linux/Build.sh" BlankProgram Linux Development Fixing inconsistent case in filenames. Setting up Mono Building BlankProgram... Unable to locate Linux SDK toolchain. Please run Setup.sh. ERROR GetBuildPlatform: No BuildPlatform found for Linux make: *** [Makefile:183: BlankProgram] Error 5

New: Added Linux AArch64 FreeType2 libraries.

New: Added support for Linux offscreen Vulkan rendering, which is enabled with -RenderOffScreen flag. This fixes several Slate issues when rendering offscreen.

New: Enabled Neon instrinsics for Linux AArch64.

New: Moved to new llvm clang 9.0.1 v16 toolchain.

New: Added bGdbIndexSection bool to LinuxToolChain.

New: Added Linux AArch64 libs for FreeType2 v2.10.0, ICU 64.1, and HarfBuzz 2.4.0 Includes BuildForLinuxAArch64.sh cross compilation scripts Adds LinuxAArch64 back to installed engine builds.

New: Linux now always uses lld linker with clang v9 and above.

New: Can now generate .debug_pubnames and .debug_pubtypes sections in a format suitable for conversion into a GDB index. This option is only useful with a linker that can produce GDB index version 7.

New: Added protected to bGdbIndexSection bool.

New: New build of python2.7 for Linux now supports zlib, bz2, and ssl.

New: Use msbuild in mono for Linux when using an installed copy and mono >= 5.0.

New: Batch writing of ini files is now possible.

And this isn't even everything, this is just the Linux section, and Tim's(and Epic's for that matter) issue with Linux has to do with development of games ON Linux, as in getting a user base of developers on it using UE4, but people are just to petty to be willing to do it.
Purple Library Guy May 6, 2020
Quoting: salamanderrakePeople complaining about UE4 on Linux are just mostly mad about UT3 not being ported to Linux and can't just let it go and move on.
That seems fairly unlikely. And an unnecessarily provocative attitude.
Eike May 6, 2020
View PC info
  • Supporter Plus
Quoting: salamanderrakePeople complaining about UE4 on Linux are just mostly mad about UT3 not being ported to Linux and can't just let it go and move on.

Not at all. I heard there's several games made with Unreal.
Beamboom May 6, 2020
Quoting: Mountain Manit shows how Epic really feels about the Linux platform.

... Well, yeah: The same thing that 98% of other game developers "feel", I would suppose? That our segment is too small, so there's no ROI?
Luke_Nukem May 6, 2020
Argh. That bloody awful penguin looks out of place amongst all other logos. It needs a serious update.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.