UE4 断言在 opengles.h 失败,但我知道 ue4 可在我的设备上运行。怎么解决?

问题描述 投票:0回答:1

我可以在我的设备 sm-j700m samsung Galaxy j7 2015 上运行 PUBG MOBILE(以及 LITE 版本)。
Pubg 使用虚幻引擎 4!
这里安装的UE4编辑器版本:4.26.2

在项目设置中有一个启用的选项“支持 OpenGL ES3.1”。

此链接中的一些引擎代码,准确显示了问题发生在 check() 处:
https://forums.unrealengine.com/t/4-25-apk-runs-fine-4-26-1-apk-crash/158698/4

static FORCEINLINE void ColorMaskIndexed(GLuint Index, GLboolean Red, GLboolean Green, GLboolean Blue, GLboolean Alpha)
{
if (bSupportsDrawBuffersBlend)
            {
                // ES 3.2 or extension
                glColorMaskiEXT(Index, Red, Green, Blue, Alpha);
            }
            else
            {
                check(Index == 0);
                glColorMask(Red, Green, Blue, Alpha);
            }
        }

以下是相关的崩溃日志(位于 /Phone/UE4Game/.../Saved/Logs)行:

[2021.08.13-23.50.57:859][  0]LogAndroid:   Default profile: Android_Default
[2021.08.13-23.50.57:859][  0]LogAndroid:   GpuFamily: Mali-T720
[2021.08.13-23.50.57:859][  0]LogAndroid:   GlVersion: OpenGL ES 3.1 v1.r7p0-03rel0.b8759509ece0e6dda5325cb53763bcf0
[2021.08.13-23.50.57:859][  0]LogAndroid:   VulkanAvailable: false
[2021.08.13-23.50.57:859][  0]LogAndroid:   VulkanVersion: 0.0.0
[2021.08.13-23.50.57:859][  0]LogAndroid:   AndroidVersion: 6.0.1
[2021.08.13-23.50.57:859][  0]LogAndroid:   DeviceMake: samsung
[2021.08.13-23.50.57:859][  0]LogAndroid:   DeviceModel: SM-J700M
[2021.08.13-23.50.57:859][  0]LogAndroid:   DeviceBuildNumber: MMB29K.J700MUBU2BRA1
[2021.08.13-23.50.57:860][  0]LogAndroid:   UsingHoudini: false
[2021.08.13-23.50.57:860][  0]LogAndroid:   Hardware: SAMSUNG Exynos7580
[2021.08.13-23.50.57:860][  0]LogAndroid:   Chipset: unknown
...
[2021.08.13-23.50.58:063][  0]LogAndroid: VulkanRHI will NOT be used:
[2021.08.13-23.50.58:063][  0]LogAndroid:  ** Vulkan support is not available (Driver, RHI or shaders are missing, or disabled by cmdline, see above logging for details)
[2021.08.13-23.50.58:063][  0]LogAndroid:  ** Vulkan is disabled via console variable.
[2021.08.13-23.50.58:063][  0]LogAndroid: OpenGL ES will be used.
[2021.08.13-23.50.58:063][  0]LogAndroid: Vulkan SM5 is available but disabled for this device.
[2021.08.13-23.50.58:064][  0]LogRHI: App is packaged for OpenGL ES 3.1 and an ES 3.1-capable device was detected.
[2021.08.13-23.50.58:069][  0]LogRHI: Extension eglPresentationTimeANDROID Present
[2021.08.13-23.50.58:069][  0]LogRHI: Extension eglGetNextFrameIdANDROID NOT Available
[2021.08.13-23.50.58:069][  0]LogRHI: Extension eglGetCompositorTimingANDROID NOT Available
[2021.08.13-23.50.58:069][  0]LogRHI: Extension eglGetFrameTimestampsANDROID NOT Available
[2021.08.13-23.50.58:069][  0]LogRHI: Extension eglQueryTimestampSupportedANDROID NOT Available
[2021.08.13-23.50.58:069][  0]LogRHI: Extension eglGetCompositorTimingSupportedANDROID NOT Available
[2021.08.13-23.50.58:069][  0]LogRHI: Extension eglGetFrameTimestampsSupportedANDROID NOT Available
[2021.08.13-23.50.58:072][  0]LogRHI: Initializing OpenGL RHI
[2021.08.13-23.50.58:072][  0]LogRHI:   GL_VENDOR: ARM
[2021.08.13-23.50.58:072][  0]LogRHI:   GL_RENDERER: Mali-T720
[2021.08.13-23.50.58:072][  0]LogRHI:   GL_VERSION: OpenGL ES 3.1 v1.r7p0-03rel0.b8759509ece0e6dda5325cb53763bcf0
[2021.08.13-23.50.58:072][  0]LogRHI:   GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.10
...
[2021.08.13-23.51.00:619][  0]LogInit: First time updating LLM stats...
[2021.08.13-23.51.00:910][  0]LogAndroid: Error: === Critical error: ===
[2021.08.13-23.51.00:910][  0]LogAndroid: Error: 
[2021.08.13-23.51.00:910][  0]LogAndroid: Error: Assertion failed: Index == 0 [File:/UnrealEngine/Engine/Source/Runtime/OpenGLDrv/Public/OpenGLES.h] [Line: 439] 
[2021.08.13-23.51.00:910][  0]LogAndroid: Error: 
[2021.08.13-23.51.00:910][  0]LogAndroid: Error: [Callstack] 0x00000000E0C73608 libUE4.so(0x000000000C122608)!FOpenGLDynamicRHI::RHIClearMRT(bool, int, FLinearColor const*, bool, float, bool, unsigned int)  []
[2021.08.13-23.51.00:910][  0]LogAndroid: Error: [Callstack] 0x00000000E0C73354 libUE4.so(0x000000000C122354)!FOpenGLDynamicRHI::SetRenderTargetsAndClear(FRHISetRenderTargetsInfo const&)  []
[2021.08.13-23.51.00:910][  0]LogAndroid: Error: [Callstack] 0x00000000E0CA3214 libUE4.so(0x000000000C152214)!FOpenGLDynamicRHI::RHIBeginRenderPass(FRHIRenderPassInfo const&, char16_t const*)  []
[2021.08.13-23.51.00:910][  0]LogAndroid: Error: [Callstack] 0x00000000DCDF3A10 libUE4.so(0x00000000082A2A10)!FRHICommand<FRHICommandBeginRenderPass, FRHICommandBeginRenderPassString1127>::ExecuteAndDestruct(FRHICommandListBase&, FRHICommandListDebugContext&)  []
[2021.08.13-23.51.00:911][  0]LogAndroid: Error: [Callstack] 0x00000000DCD178BC libUE4.so(0x00000000081C68BC)!FRHICommandListExecutor::ExecuteInner_DoExecute(FRHICommandListBase&)  []
[2021.08.13-23.51.00:911][  0]LogAndroid: Error: [Callstack] 0x00000000DCD74FB8 libUE4.so(0x0000000008223FB8)!FExecuteRHIThreadTask::DoTask(ENamedThreads::Type, TRefCountPtr<FGraphEvent> const&)  []
[2021.08.13-23.51.00:911][  0]LogAndroid: Error: [Callstack] 0x00000000DCD746BC libUE4.so(0x00000000082236BC)!TGraphTask<FExecuteRHIThreadTask>::ExecuteTask(TArray<FBaseGraphTask*, TSizedDefaultAllocator<32> >&, ENamedThreads::Type)  []
[2021.08.13-23.51.00:911][  0]LogAndroid: Error: [Callstack] 0x00000000DB5AAF8C libUE4.so(0x0000000006A59F8C)!FNamedTaskThread::ProcessTasksNamedThread(int, bool)  []
[2021.08.13-23.51.00:911][  0]LogAndroid: Error: [Callstack] 0x00000000DB5A9508 libUE4.so(0x0000000006A58508)!FNamedTaskThread::ProcessTasksUntilQuit(int)  []
[2021.08.13-23.51.00:911][  0]LogAndroid: Error: [Callstack] 0x00000000DCE01FB4 libUE4.so(0x00000000082B0FB4)!FRHIThread::Run()  []
[2021.08.13-23.51.00:911][  0]LogAndroid: Error: [Callstack] 0x00000000DB6A1970 libUE4.so(0x0000000006B50970)!FRunnableThreadPThread::Run()  []
[2021.08.13-23.51.00:911][  0]LogAndroid: Error: [Callstack] 0x00000000DB5A4928 libUE4.so(0x0000000006A53928)!FRunnableThreadPThread::_ThreadProc(void*)  []
[2021.08.13-23.51.00:911][  0]LogAndroid: Error: [Callstack] 0x00000000F74A7C8C libc.so(0x000000000003FC8C)![Unknown]()  []
[2021.08.13-23.51.00:911][  0]LogAndroid: Error: [Callstack] 0x00000000F74823AC libc.so(0x000000000001A3AC)![Unknown]()  []

日志中还有其他内容可以帮助解决此问题吗?

因此“LogRHI:应用程序已针对 OpenGL ES 3.1 进行打包,并且检测到支持 ES 3.1 的设备。”意味着它应该可以正常工作吗?

按照建议(https://forums.unrealengine.com/t/4-25-apk-runs-fine-4-26-1-apk-crash/158698/7),我是否必须重新编译编辑器(在我的 4 核上花费了 +12 小时)删除该断言还是有一个创伤较小的选项?

您认为他们删除了 pubg mobile 的断言吗?
我看到有很多断言可能仅在 OpenGLES.h 上失败,所以我宁愿不修补引擎,除非这是唯一的选择,因为重新编译需要很长时间。

android opengl-es unreal-engine4
1个回答
0
投票

我在 UE4.27 上遇到了完全相同的问题。你成功解决了吗?还有希望吗???

© www.soinside.com 2019 - 2024. All rights reserved.