找回密码
 立即注册
查看: 332|回复: 0

Unreal编译GLES提示:Platform Android GLES X needs an offline shader compiler to extract instruction count

[复制链接]
发表于 2023-7-6 19:29 | 显示全部楼层 |阅读模式
问题


  • 在 Unreal( UE4 和 UE5 均可) 材质编纂器界面,打开 Platform Stats 面板,选中 Android - Android GLES 3.1 后,提示: Platform Android GLES 3.1 needs an offline shader compiler to extract instruction count. Please check 'Editor Preferences' -> 'Content Editors' -> 'Material Editor' for additional settings. 同时,对应平台下材质编译成果也异常(数字显示为 n )



1pqdi4ltiva255a9d6c5havcjf.png

分析


  • 在 Unreal 引擎源码里,搜索日志的关键词:“needs an offline shader compiler to extract instruction count”,可以找到日志出处:MaterialStats.cpp 的 FMaterialStats::ComputeGridWarnings 函数。



1bf314cacu5stb1m4kamth2edf.png


  • 断点分析,发现 SP_OPENGL_ES3_1_ANDROID 在 Windows 上需要离线编译器(FMaterialStatsUtils::PlatformNeedsOfflineCompiler)。



2d8ol5k55qs252mqbco44i2dpn.png


  • 而我们的编纂器中没有可用的离线编译器(FMaterialStatsUtils::IsPlatformOfflineCompilerAvailable,UMaterialEditorSettings 的 MaliOfflineCompilerPath 为空)。
解决


  • 按照 MaliOfflineCompilerPath 的注释提示,前往方针网址(https://developer.arm.com/products/software-development-tools/graphics-development-tools/mali-offline-compiler/downloads )下载离线编译器 。



5l05ith7kc4608uj0sct6qnjmc.png


  • 我们下载到的是 Mali_Offline_Compiler_v6.4.0.504d49_Windows_x64.exe ,虽然网站提示过期,保举下载其它软件,但因为其它软件注册登录斗劲麻烦,所以没下载,还是下载了首选的 Mali_Offline_Compiler 。



16er3bgc21viiomrp8n6shmvll.png


  • 下载后安装到当地磁盘(安装简单,没什么可说的)。



15gf8pe006be3hdu9dkihid519.png


  • 在 Unreal 编纂器中,打开 'Editor Preferences' -> 'Content Editors' -> 'Material Editor'



4sguf4ls4ha00p131ha1dh0aaf.png


  • 在 Mali Offline Compiler 项中,点击右侧的文件浏览器,选中 malisc.exe (注意这里直接填绝对路径可能不行,看源码是需要相对路径的)。



36p8i8jb1m6krmckecho8om9ec.png


  • 再次进入材质编纂器的 Platform Stats 界面,可以看到提示已经消掉。



2t5c3tvh0atufvk24be95180c5.png


  • 随意挪动一下材质的某个节点,点击 Apply 按钮,触发 Shader 编译。



51ootmq4dp324su04humhpihiu.png


  • 编译完毕后,再看 Platform Stats 面板,可以看到编译完成,呈现了对应的编译错误。



16upnoghnh14rfkb1crn5c1s1l.png

备注


  • 安装 Mali_Offline_Compiler_v6.4.0.504d49_Windows_x64.exe 时,被拦截无法安装

    • 如果安装 Mali_Offline_Compiler_v6.4.0.504d49_Windows_x64.exe 时提示被系统打点员拦截无法安装,参考图示进行设置即可。




1g9ju2q46cr8h772eobnghfnjv.png


  • 这个方式同样适用于 UE5



2a64fkm7u8qamjkhfc7dr57a70.png



4k3fqg368figksb1q4er0l17ud.png

下载


  • Mali_Offline_Compiler 下载
声明:本文来自公众号:Unity 与Unreal 游戏开发(GameDevLearning),转载请附上原文链接及本声明。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-2 14:01 , Processed in 0.123783 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表