FalsePattern / FalseTweaks

Multithreaded rendering plus a large collection of improvements, fixes, optimizations and additions to 1.7.10 clients.
https://falsepattern.com/mc
Other
59 stars 6 forks source link

Layered snow flickering #149

Closed FalsePattern closed 4 months ago

FalsePattern commented 10 months ago

Looks like a different bug from the other chunk flicker incidents, so i'm moving it here instead.

https://github.com/FalsePattern/FalseTweaks/assets/106000018/54e29342-ad4c-4d8d-8f03-8498984edf80

Originally posted by @Omgise in https://github.com/FalsePattern/FalseTweaks/issues/142#issuecomment-1826794029

FalsePattern commented 10 months ago

@Omgise please try setting DISABLE_BLOCKING_CHUNK_UPDATES to true in falsetweaks.cfg, threading category, and see if it still happens.

Omgise commented 10 months ago

Still happen

https://github.com/FalsePattern/FalseTweaks/assets/106000018/2d8c2d70-549c-4f98-980b-817c8bf3edc4

Omgise commented 10 months ago

Snowflakes no longer flicker after Notfine is removed

https://github.com/FalsePattern/FalseTweaks/assets/106000018/d9b4bbf2-0e98-4255-acef-8fa2fc6ad700

jss2a98aj commented 10 months ago

This appears to be related to multithreaded chunk rendering. In vanilla anything using a Block instances minX, maxX, minY, maxY, minZ, or maxZ is not thread safe. setBlockBoundsBasedOnState gets called once per block at minimum in RenderBlocks, and in the case of layered snow that changes the maxY. shouldSideBeRendered is called after, and NotFine makes it use the maxY value that was set just before when determining if face culling should occur.

I would suggest rolling back to NotFine 0.1.0 for now.

Roadhog360 commented 8 months ago

Angelica implements ASM to make those calls thread-safe which means Angelica's implementation of threaded rendering should just Work™. Be wary: Angelica is still in alpha so be careful what you do with it

FalsePattern commented 8 months ago

I've ported over the minmax threading fix from angelica to falsetweaks in a local branch, so this bug will finally be fixed in the next update.

FalsePattern commented 4 months ago

Should be fixed in 3.0.0 beta

Omgise commented 4 months ago

Yes, 3.0.0 beta fixed it