
1.4 is incompatible with VulkanMod because of custom loading screen
VisualEhrmanntraut opened this issue ยท 13 comments
Bug Description
the new loading screen in the asset generation does not work with VulkanMod because there is no OpenGL context
Reproduction Steps
add vulkanmod
add paladin's furniture
boot game with no caches
observe crash
Log File
[18:28:21] [Render thread/INFO]: Starting PFM Asset Generation
FATAL ERROR in native method: Thread[#1,Render thread,10,main]: No context is current or a function that is not available in the current context was called. The JVM will abort execution.
at org.lwjgl.opengl.GL20C.glCreateShader(Native Method)
at org.lwjgl.opengl.GL20.glCreateShader(GL20.java:230)
at com.unlikepaladin.pfm.client.screens.overlay.GLText._gltCreateText2DShader(GLText.java:1108)
at com.unlikepaladin.pfm.client.screens.overlay.GLText.gltInit(GLText.java:1001)
at com.unlikepaladin.pfm.client.screens.overlay.GLText.<init>(GLText.java:998)
at com.unlikepaladin.pfm.client.screens.overlay.PFMGeneratingOverlay.<init>(PFMGeneratingOverlay.java:62)
at com.unlikepaladin.pfm.runtime.ClientOverlaySetter.setOverlayToPFMOverlay(ClientOverlaySetter.java:12)
at com.unlikepaladin.pfm.runtime.PFMAssetGenerator.run(PFMAssetGenerator.java:80)
at com.unlikepaladin.pfm.runtime.PFMRuntimeResources.prepareAndRunAssetGen(PFMRuntimeResources.java:116)
at com.unlikepaladin.pfm.client.screens.widget.PFMOptionListWidget.lambda$new$0(PFMOptionListWidget.java:72)
at com.unlikepaladin.pfm.client.screens.widget.PFMOptionListWidget$$Lambda/0x00007ff0032772a0.onPress(Unknown Source)
at net.minecraft.class_4185.method_25306(class_4185.java:96)
at net.minecraft.class_4264.method_25348(class_4264.java:43)
at net.minecraft.class_339.method_25402(class_339.java:141)
at com.unlikepaladin.pfm.client.screens.widget.PFMOptionListWidget$ButtonEntry.method_25402(PFMOptionListWidget.java:260)
at net.minecraft.class_4069.method_25402(class_4069.java:43)
at net.minecraft.class_9017.method_25402(class_9017.java:57)
at net.minecraft.class_4069.method_25402(class_4069.java:43)
at net.minecraft.class_312.mixinextras$bridge$method_25402$80(class_312.java)
at net.minecraft.class_312$$Lambda/0x00007ff00323ec10.call(Unknown Source)
at net.minecraft.class_312.wrapOperation$zdn000$architectury$onGuiMouseClicked(class_312.java:2085)
at net.minecraft.class_312.mixinextras$bridge$wrapOperation$zdn000$architectury$onGuiMouseClicked$84(class_312.java)
at net.minecraft.class_312$$Lambda/0x00007ff00323ee30.call(Unknown Source)
at net.minecraft.class_312.wrapOperation$dhb000$fabric-screen-api-v1$invokeMouseClickedEvents(class_312.java:5545)
at net.minecraft.class_312.method_1601(class_312.java:114)
at net.minecraft.class_312.method_22686(class_312.java:215)
at net.minecraft.class_312$$Lambda/0x00007ff003237890.run(Unknown Source)
at net.minecraft.class_1255.execute(class_1255.java:110)
at net.minecraft.class_312.method_22684(class_312.java:215)
at net.minecraft.class_312$$Lambda/0x00007ff002d61dc0.invoke(Unknown Source)
at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:43)
at org.lwjgl.system.JNI.invokeV(Native Method)
at org.lwjgl.glfw.GLFW.glfwWaitEventsTimeout(GLFW.java:3509)
at com.mojang.blaze3d.systems.RenderSystem.limitDisplayFPS(RenderSystem.java:186)
at net.minecraft.class_310.method_1523(class_310.java:1364)
at net.minecraft.class_310.method_1514(class_310.java:922)
at net.minecraft.client.main.Main.main(Main.java:267)
at java.lang.invoke.LambdaForm$DMH/0x00007ff001004800.invokeStaticInit([email protected]/LambdaForm$DMH)
at java.lang.invoke.LambdaForm$MH/0x00007ff001005000.invokeExact_MT([email protected]/LambdaForm$MH)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
at java.lang.invoke.LambdaForm$DMH/0x00007ff001004800.invokeStaticInit([email protected]/LambdaForm$DMH)
at java.lang.invoke.LambdaForm$MH/0x00007ff001005000.invokeExact_MT([email protected]/LambdaForm$MH)
at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:105)
at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)
Process crashed with exitcode 6.
well this is annoying, guess I can disable the screen if vulkanmod is present
@UnlikePaladin it is not fixed, I also specifically set disableGeneratingScreen.
java.lang.NullPointerException: Cannot invoke "org.lwjgl.vulkan.VkCommandBuffer.getCapabilities()" because "commandBuffer" is null
at knot//org.lwjgl.vulkan.VK10.nvkCmdPipelineBarrier(VK10.java:15546)
at knot//org.lwjgl.vulkan.VK10.vkCmdPipelineBarrier(VK10.java:15689)
at knot//net.vulkanmod.vulkan.texture.VulkanImage.transitionLayout(VulkanImage.java:371)
at knot//net.vulkanmod.vulkan.texture.VulkanImage.transitionLayout(VulkanImage.java:346)
at knot//net.vulkanmod.vulkan.texture.VulkanImage.transitionImageLayout(VulkanImage.java:340)
at knot//net.vulkanmod.vulkan.texture.VulkanImage.transitionImageLayout(VulkanImage.java:274)
at knot//net.vulkanmod.vulkan.framebuffer.RenderPass.beginRenderPass(RenderPass.java:141)
at knot//net.vulkanmod.vulkan.framebuffer.Framebuffer.beginRenderPass(Framebuffer.java:121)
at knot//net.vulkanmod.vulkan.pass.DefaultMainPass.rebindMainTarget(DefaultMainPass.java:105)
at knot//net.minecraft.class_6364.method_1235(class_6364.java:534)
at knot//com.unlikepaladin.pfm.runtime.ClientOverlaySetter.updateScreen(ClientOverlaySetter.java:27)
at knot//com.unlikepaladin.pfm.runtime.PFMAssetGenerator.run(PFMAssetGenerator.java:96)
at knot//com.unlikepaladin.pfm.runtime.PFMRuntimeResources.prepareAndRunAssetGen(PFMRuntimeResources.java:116)
at knot//net.fabricmc.fabric.impl.resource.loader.ModResourcePackCreator$Anonymous$666feae2472f4521909f40972b85f2a2.lambda$open$0(PFMModResourcePackCreatorMixin.java:44)
at knot//com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:200)
at knot//com.unlikepaladin.pfm.client.PathPackRPWrapper.method_14406(PathPackRPWrapper.java:56)
at knot//net.minecraft.class_6861.method_41275(class_6861.java:31)
at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:289)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:636)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:291)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:656)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:662)
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:667)
at knot//net.minecraft.class_6861.<init>(class_6861.java:31)
at knot//net.minecraft.class_3304.method_18232(class_3304.java:46)
at knot//net.minecraft.class_310.<init>(class_310.java:704)
at knot//net.minecraft.client.main.Main.main(Main.java:250)
at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480)
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23)
at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:105)
at org.prismlauncher.EntryPoint.listen(EntryPoint.java:129)
at org.prismlauncher.EntryPoint.main(EntryPoint.java:70)
That stacktrace looks like a vulkan mod thing, it crashed while updating the screen in vulkan mod code. Go open a report on their repo, there is not much I can do there.
but it only happens with version 1.4+ of this mod, it was fine in 1.3 which did not have this specific feature
I mean as a workaround you can just let it generate things without VulkanMod and then add it back in, I know it's not ideal :/
Yes but it's crashing when it tries to update the screen, data and asset gen were reworked to not lock up the whole game and instead process in the background while it updates the screen, disabling the config tells it to not show my screen which it is correctly avoiding. However it is crashing but now in Vulkan Mod code when Vanilla tries to redraw the screen. This is out of my hands.
Looking at it closer, I think the reason the crash happens is because the overlay is updated earlier than expected
Which is something that has to be fixed on VulkanMod's side... There quite literally is no overlay being set, it avoids the entire block if VKMod is present