amadornes / MCMultiPart

A universal multipart API for Modern Minecraft
Other
67 stars 23 forks source link

Crash - Tesselating block model - Super Circuit Maker #103

Closed tofof closed 6 years ago

tofof commented 6 years ago

Unclear if this is an MCMP or SCM issue, so crossposting here along with SCM Issue #346.

Easily repeatable crash using super circuit maker: 1) Local multiplayer game 2) Place an SCM circuit in the world 3) With appropriate ingredients (stack of tiny redstone, stack of redstone torches), rightclick the 'AND' blueprint from SCM onto the circuit. 4) Shift-rightclick the circuit with the SCM screwdriver to 'flip it over' (hide it). 5) Immediately observe a crash in any connected clients (that are nearby), but not usually the host.
(Assuming the host didn't crash...) 6) Clients now also crash on login when trying to connect near an area where there's a flipped circuit.

Doesn't matter if it's the client or the host that places or flips the circuit.

Observed in: Minecraft 1.10.2 MCMultiPart-1.4.0-universal SuperCircuitMaker-1.0.4 forge-1.10.2-12.18.3.2316 Skyfactory 3 modpack

Observed in: Minecraft 1.10.2 MCMultiPart-experimental-2.0.0_88-universal SuperCircuitMaker-1.0.4 forge-1.10.2-12.18.3.2511 Age of Engineering modpack

crash-2017-11-30_18.39.02-client.txt

Seems to involve optifine, can't repro without it but trivially with it. :/ No mods loaded other than optifine, mcmp, scm for the crashes below.

crash-2017-11-30_19.38.53-client.txt crash-2017-11-30_19.31.21-client.txt crash-2017-11-30_19.38.22-client.txt

2xsaiko commented 6 years ago

Optifine is known to break rendering a lot, maybe this is unintentionally fixed with the SCM rewrite (which will be coming eventually :P).

EDIT: This may be worked around by screwing around with Optifine's render settings (try toggling Fast Render and the others)

tofof commented 6 years ago

Yeah, I did try toggling fast render (in particular), and connected textures and a couple other likely culprits. Didn't find an option that prevented the crash.

Note that the weird thing is that the crash is specific to 'named' circuits - the ones that display names when flipped, that they've inherited from blueprints.

2xsaiko commented 6 years ago

Yeah, the way I imagine they work is by rendering the text to a texture/framebuffer or something (which requires OpenGL) and then putting that on the model, but Optifine makes the model builder run on a seperate thread which does not have OpenGL access.

2xsaiko commented 6 years ago

I'll just close this now since it isn't related to MCMultipart, it's related to how SCM builds its models. If you can live without Optifine I'd just remove that