Known Issues

Unreal Engine on Mac

Unreal Engine is crashing on Mac version 10.12 (Sierra) or lower with an integrated video card, due to a driver bug. You can resolve this by upgrading to a newer version of Mac, for example, 10.13 (High Sierra).

Using a source checkout with trial packages

All plugins/games that come with Prysm are prebuilt using the latest Unreal Engine version. If you want to run them, you will need to Generate Project Files from your game’s .uproject file and build from source.

Missing Live Views on mobile devices

There is an issue with the live views that causes them to not be rendered on Android and iOS. As a workaround, you can add a black background behind the live view in the html as shown here:

<div id="liveView1" class="layoutStyle98 positionStyle185 leftMask" style="background:black;">
   <img src="TextureRenderTarget2D'/Game/MapAssets/LiveViews/RenderTargetOnPlayer.RenderTargetOnPlayer'"
       class="visualStyle357 layoutStyle99 positionStyle193">
</div>

Missing input for in-world Views on Android

Input for in-world Views requires getting the Mesh data from the GPU so the plugin can determine the position of the input event in our Prysm View. However, this functionality is not supported by UE4’s GLES implementation for Android.

To have a working input for in-world Views on Android, Support UV From Hit Results should be enabled in the Physics Settings.

Missing input for in-world Views using Vulkan rendering

Input for in-world Views requires getting the Mesh data from the GPU, but the Vulkan API does not support this yet, so instead the plugin has to access the CPU data, if it is available.

To have a working input for in-world Views using Vulkan, the Allow CPU Access option should be enabled in the Static Mesh settings of the meshes, used for the in-world Views.

No sound in videos playing on iOS

Playing a video on iOS has no sound because Unreal Engine has no implementation for Procedural sounds for this platform.

Slow loading of UI resources over HTTP(S)

The slow loading of UI resources over HTTP(S) is due to the default Unreal Engine settings for HTTP, making the download of files over HTTP(S) very slow. Large resources will be affected the most, such as 4K images and video files.

By adding this to the Engine.ini configuration of your project or engine, you can significantly optimize the download speeds:

[HTTP]
HttpThreadActiveFrameTimeInSeconds=0.00001

[HTTP.Curl]
BufferSize=524288

To find out more about this problem and the suggested Engine.ini changes, you can check this related community conversation.

Unreal Memory Insights on XboxOne(GDK) and Scarlett

Due to the intrinsic specifics of V8 (the JavaScript VM that Prysm uses) on the Xbox platforms, currently, it is not possible to utilize the Unreal Memory Insights feature for our plugin.

For this reason, if Prysm detects that memory tracing has been enabled on Xbox platforms, Prysm allocations won’t happen through GMalloc, because in such cases GMalloc is actually the allocator that the Memory Insights feature uses. Instead, we utilize the FPlatformMemory::BaseAllocator API, which returns the default platform allocator without the Memory Insights one acting as an intermediary.

Intrusive assert in XboxCommonPlatformMemory on some Unreal versions

Between Unreal Engine’s 4.27 and 5.3 versions at one point a conditional log (UE_CLOG) was added to the FXboxCommonPlatformMemory::BaseAllocator() definition in the XboxCommonPlatformMemory.cpp file:

FMalloc* FXboxCommonPlatformMemory::BaseAllocator()
{
    UE_CLOG(GMallocInstance, LogInit, Fatal, TEXT("FPlatformMemory::BaseAllocator is not expecting be called multiple times") );

    CreateMallocInstance();
    return GMallocInstance;
}

Epic’s developers later seem to have realized the unnecessary assertion that this produces, so in 5.3 the code was switched to:

FMalloc* FXboxCommonPlatformMemory::BaseAllocator()
{
    if (GMallocInstance != nullptr)
    {
        return GMallocInstance;
    }

    CreateMallocInstance();
    return GMallocInstance;
}