Building Gadget Copy/Paste Tool Eats All Your RAM
r-mc2 opened this issue · 5 comments
Modpack version
v0.3.13 (but has happened in prior versions as well)
Describe the bug
Something to do with rendering out the ghost image of the build you're going to paste into the world has consistently soft-crashed my game numerous times by running it out of memory. I think it's somehow related to either how long it's on screen or the fact that I walk into/near the ghost render. Or perhaps something to do with unanchoring and reanchoring the render.
Usually how it happens is I load up the tool with a new paste, head out to where I want to build, and remember I forgot to unanchor the previous build. I unanchor the previous location, get the ghost render where I like, reanchor, then somewhere along the lines of bumping the render around and/or walking near it triggers the OOM.
I don't think it's related to the complexity of the render as it's happened with a few of the Astral multiblocks as well as some of the Mekanism ones, too. Nor do I think I am actually getting low on memory, as Java is want to do, as it can happen at different lengths of time that I've had the pack open.
I'm able to eventually reload the pack and paste it in after loading the world back up, but it does keep me hesitant to use it later on.
Logs
Click to Show/Hide Logs
[00:49:53] [Render thread/ERROR]: Exception caught during firing event: null Index: 11 Listeners: ... 11: ASM: class com.direwolf20.buildinggadgets.client.events.EventRenderWorldLast renderWorldLastEvent(Lnet/minecraftforge/client/event/RenderWorldLastEvent;)V ...java.lang.OutOfMemoryError
at sun.misc.Unsafe.allocateMemory(Native Method)
at java.nio.DirectByteBuffer.(DirectByteBuffer.java:127)
at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311)
at net.minecraft.client.renderer.GLAllocation.func_74524_c(SourceFile:18)
at com.direwolf20.buildinggadgets.client.renderer.DireBufferBuilder.(DireBufferBuilder.java:45)
at com.direwolf20.buildinggadgets.client.renders.CopyPasteRender$MultiVBORenderer.sort(CopyPasteRender.java:279)
at com.direwolf20.buildinggadgets.client.renders.CopyPasteRender.renderTargets(CopyPasteRender.java:151)
at com.direwolf20.buildinggadgets.client.renders.CopyPasteRender.lambda$null$1(CopyPasteRender.java:138)
at com.direwolf20.buildinggadgets.client.renders.CopyPasteRender$$Lambda$31626/1527279985.accept(Unknown Source)
at java.util.Optional.ifPresent(Optional.java:159)
at com.direwolf20.buildinggadgets.client.renders.CopyPasteRender.lambda$null$2(CopyPasteRender.java:122)
at com.direwolf20.buildinggadgets.client.renders.CopyPasteRender$$Lambda$31624/804571671.accept(Unknown Source)
at net.minecraftforge.common.util.LazyOptional.ifPresent(LazyOptional.java:161)
at com.direwolf20.buildinggadgets.client.renders.CopyPasteRender.lambda$renderPaste$3(CopyPasteRender.java:120)
at com.direwolf20.buildinggadgets.client.renders.CopyPasteRender$$Lambda$31623/659127197.accept(Unknown Source)
at net.minecraftforge.common.util.LazyOptional.ifPresent(LazyOptional.java:161)
at com.direwolf20.buildinggadgets.client.renders.CopyPasteRender.renderPaste(CopyPasteRender.java:120)
at com.direwolf20.buildinggadgets.client.renders.CopyPasteRender.render(CopyPasteRender.java:67)
at com.direwolf20.buildinggadgets.client.events.EventRenderWorldLast.renderWorldLastEvent(EventRenderWorldLast.java:26)
at net.minecraftforge.eventbus.ASMEventHandler_650_EventRenderWorldLast_renderWorldLastEvent_RenderWorldLastEvent.invoke(.dynamic)
at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85)
at net.minecraftforge.eventbus.EventBus$$Lambda$2563/2049858837.invoke(Unknown Source)
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302)
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283)
at net.minecraftforge.client.ForgeHooksClient.dispatchRenderLast(ForgeHooksClient.java:154)
at net.minecraft.client.renderer.GameRenderer.func_228378_a_(GameRenderer.java:609)
at net.minecraft.client.renderer.GameRenderer.func_195458_a(GameRenderer.java:425)
at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:976)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607)
at net.minecraft.client.main.Main.main(Main.java:184)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51)
at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$480/968383091.call(Unknown Source)
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37)
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54)
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72)
at cpw.mods.modlauncher.Launcher.run(Launcher.java:82)
at cpw.mods.modlauncher.Launcher.main(Launcher.java:66)
Would you mind reporting this on the Building Gadgets' Issue Tracker? I have a feeling they'll be asking follow-up questions I would have a hard time answering :P
I have been meaning to do this for a few days now haha. I'll try to get it posted over there today.