FCL-Team / FoldCraftLauncher

Fold Craft Launcher, an Android Minecraft : Java Edition launcher.
GNU General Public License v3.0
1.59k stars 158 forks source link

Crash when load Embeddium asset #243

Closed oldkingOK closed 9 months ago

oldkingOK commented 9 months ago

Launcher Version

1.1.4

Device Information

Xiaomi Mix4, Android 13, arm64

Problem Description

加载embeddium后,进入世界时由于文件 embeddium.jar/assets/sodium/shaders/blocks/block_layer_opaque.vsh 读取乱码导致游戏崩溃。

[12:38:26] [Render thread/WARN]: Shader compilation log for sodium:blocks/block_layer_opaque.vsh: ERROR: 0:113: 'xffu' : Syntax error:  syntax error
INTERNAL ERROR: no main() function!
ERROR: 1 compilation errors.  No code generated.

[12:38:26] [Render thread/ERROR]: Unreported exception thrown!
...

日志来源于 .minecraft/logs/latest.log 使用的是embeddium 0.3.1+1.20.1

Java

Java 17

Renderer

Holy-GL4ES

Game Version

1.20.1

Modifications Made to the Game

Forge

Game Crash Report

[12:38:26] [Render thread/WARN]: Shader compilation log for sodium:blocks/block_layer_opaque.vsh: ERROR: 0:113: 'xffu' : Syntax error: syntax error INTERNAL ERROR: no main() function! ERROR: 1 compilation errors. No code generated.

[12:38:26] [Render thread/ERROR]: Unreported exception thrown! java.lang.RuntimeException: Shader compilation failed, see log for details at me.jellysquid.mods.sodium.client.gl.shader.GlShader.(GlShader.java:34) ~[embeddium-0.3.1+mc1.20.1.jar%23140!/:?] at me.jellysquid.mods.sodium.client.gl.shader.ShaderLoader.loadShader(ShaderLoader.java:22) ~[embeddium-0.3.1+mc1.20.1.jar%23140!/:?] at me.jellysquid.mods.sodium.client.render.chunk.ShaderChunkRenderer.createShader(ShaderChunkRenderer.java:44) ~[embeddium-0.3.1+mc1.20.1.jar%23140!/:?] at me.jellysquid.mods.sodium.client.render.chunk.ShaderChunkRenderer.compileProgram(ShaderChunkRenderer.java:35) ~[embeddium-0.3.1+mc1.20.1.jar%23140!/:?] at me.jellysquid.mods.sodium.client.render.chunk.ShaderChunkRenderer.begin(ShaderChunkRenderer.java:71) ~[embeddium-0.3.1+mc1.20.1.jar%23140!/:?] at me.jellysquid.mods.sodium.client.render.chunk.DefaultChunkRenderer.render(DefaultChunkRenderer.java:53) ~[embeddium-0.3.1+mc1.20.1.jar%23140!/:?] at me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager.renderLayer(RenderSectionManager.java:277) ~[embeddium-0.3.1+mc1.20.1.jar%23140!/:?] at me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer.drawChunkLayer(SodiumWorldRenderer.java:246) ~[embeddium-0.3.1+mc1.20.1.jar%23140!/:?] at net.minecraft.client.renderer.LevelRenderer.m172993(LevelRenderer.java:4196) ~[client-1.20.1-20230612.114412-srg.jar%23158!/:?] at net.minecraft.client.renderer.LevelRenderer.m109599(LevelRenderer.java:1166) ~[client-1.20.1-20230612.114412-srg.jar%23158!/:?] at net.minecraft.client.renderer.GameRenderer.m109089(GameRenderer.java:1126) ~[client-1.20.1-20230612.114412-srg.jar%23158!/:?] at net.minecraft.client.renderer.GameRenderer.m109093(GameRenderer.java:909) ~[client-1.20.1-20230612.114412-srg.jar%23158!/:?] at net.minecraft.client.Minecraft.m91383(Minecraft.java:1146) ~[client-1.20.1-20230612.114412-srg.jar%23158!/:?] at net.minecraft.client.Minecraft.m91374(Minecraft.java:718) ~[client-1.20.1-20230612.114412-srg.jar%23158!/:?] at net.minecraft.client.main.Main.main(Main.java:218) ~[1.20.1.jar:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?] at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.2.19.jar:?] at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.2.19.jar:?] at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$makeService$0(CommonClientLaunchHandler.java:25) ~[fmlloader-1.20.1-47.2.19.jar:?] at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?] at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?] at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?] at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?] at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?] at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?] at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?] at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?]

Launcher Crash Report

No response

Launcher Log File

[11:59:11] [Render thread/ERROR]: Unreported exception thrown! java.lang.RuntimeException: Shader compilation failed, see log for details at me.jellysquid.mods.sodium.client.gl.shader.GlShader.(GlShader.java:34) ~[embeddium-0.3.1+mc1.20.1.jar%23140!/:?] at me.jellysquid.mods.sodium.client.gl.shader.ShaderLoader.loadShader(ShaderLoader.java:22) ~[embeddium-0.3.1+mc1.20.1.jar%23140!/:?] at me.jellysquid.mods.sodium.client.render.chunk.ShaderChunkRenderer.createShader(ShaderChunkRenderer.java:44) ~[embeddium-0.3.1+mc1.20.1.jar%23140!/:?] ...

root-S7 commented 9 months ago

可是你发的崩溃文件提示是钠呀

oldkingOK commented 9 months ago

Embeddium使用了部分钠的代码 比如: https://github.com/embeddedt/embeddium/blob/20.1/forge/src/main/java/me/jellysquid/mods/sodium/client/gl/shader/ShaderLoader.java

root-S7 commented 9 months ago

Embeddium使用了部分钠的代码 比如: https://github.com/embeddedt/embeddium/blob/20.1/forge/src/main/java/me/jellysquid/mods/sodium/client/gl/shader/ShaderLoader.java

不,我的意思是钠也不能在手机上成功运行,也许你应该试试zink这类渲染器

oldkingOK commented 9 months ago

感谢快速的回复,

也许你应该试试zink这类渲染器

我之前通过删除 embeddium.jar/embeddium.mixins.json 中的 "core.render.world.WorldRendererMixin", 字段之后可以在holy-Gl4Es下运行,但是会去掉这部分的优化。

zink是可以运行Embeddium的,但是帧率提升的效果远不如Holy-GL4ES的大,相差100+帧。

我的想法是,能否在不删掉该优化的情况下,在holy-gl4es运行Embeddium以获得更优的体验

ShirosakiMio commented 9 months ago

根源问题是opengl,无解