Skip to content

Changelog

embeddedt edited this page May 18, 2024 · 86 revisions

0.3.19

This release rewrites our translucency sorting implementation for greatly improved performance and reduced memory usage compared to the previous iteration. More details about the rewrite can be found here. TS is currently still disabled by default but we intend to change this soon after some more testing. We anticipate this is now fast enough for most players to enable without experiencing any severe performance loss.

Additionally, there are as usual a variety of bugfixes.

  • 1.20+ - fix excessive lag spikes introduced on some GPUs, this regression was caused by the buffer overflow/resizing fixes in 0.3.14
  • 1.20+ - rewrite translucency sorting
  • 1.20+ - fix early window workaround not being usable with Connector
  • 1.20+ - remove "Block renderer" info from F3 as it's not very useful anymore
  • 1.20+ - fix chunks not always unloading on the client
  • 1.20+ - fix theoretical issue where particle animations might not have fired for some modded blocks
  • 1.20+ - fix some mods' biome color mixins having no effect with Embeddium installed
  • 1.20+ - fix option screen scroll pane moving in a strange way when clicking options at an edge
  • Fabric 1.20+ - optimize light data retrieval when rendering FRAPI models

0.3.18

  • 1.20+ - minor changes to the option screen APIs in response to modder feedback
  • 1.20.6 - reduce allocation rate when copying chunk sections with lots of block entities
  • 1.20.6 - updated to latest NeoForge
  • 1.20+ - fix crash when viewing option screen in some locales
  • Fabric 1.20+ - adjust another method signature for Sodium 0.5.8 binary compatibility
  • All versions - only apply model z-fighting prevention to models in the models/block folder, not any model
  • 1.20+ - use value formatter unconditionally when displaying option values (e.g. brightness slider now shows "Moody" rather than 0 even when hovering)
  • 1.19 - backport Forge light pipeline improvements from 0.3.16 on 1.20
  • 1.16-1.19 - small microoptimization for multipart models with only one part being rendered

0.3.17

This release fixes a regression from 0.3.16 that may cause a crash with some mods.

0.3.16

The main changes in this release are our new config screen and improved performance when using the experimental Forge light pipeline.

Note: On 1.20+, this release replaces TexTrue's Embeddium Options (on Forge) and Reese's Sodium Options (on Fabric). The game will not launch with either of these installed, to avoid unexpected compatibility issues.

  • 1.20+ - rewrite experimental Forge light pipeline handling, should now be significantly more efficient, speeding up chunk meshing with this option enabled
  • 1.20+ - clean up and speed up retrieving blocks from world snapshot slightly
  • 1.20+ - small microoptimization for multipart models with only one part being rendered
  • 1.20+ - implement new options screen, based on Reese's Sodium Options, but with many improvements and cleanups
  • 1.20+ - add APIs to allow add-ons to display their options on the new screen without mixins
  • 1.20+ - add ability to enable Sodium's Nvidia workaround on Forge by setting earlyWindowProvider to "embeddium" in config/fml-client.toml
  • 1.20.1 - improve F3 overlay performance on Forge by fixing a Forge oversight that caused Mojang's optimizations in 1.20 to not have an effect
  • 1.20.6 - fix some legacy Intel drivers being incorrectly reported as not compatible

0.3.15

Fabric 1.20.5-only hotfix to restore binary compatibility with the official Sodium 0.5.8 release for that version. This fixes Iris support.

0.3.14

  • All versions - fix fluids not being drawn in some cases on modded waterlogged blocks
  • 1.18+ - adjust ClientLevel mixin to fix some mod compat issues
  • 1.19-1.20 - backport ModelData optimization from NeoForge 20.4
  • 1.20+ - fix shader attributes having an extra unnecessary offset (thanks thejudge156)
  • 1.20+ - don't show donation prompt with Controllable installed. This is a workaround to prevent softlocks until we rewrite the config screen. The prompt should be shown as soon as the instance is launched without Controllable.
  • 1.20+ - fix many cases of the world disappearing when the camera moves into an unloaded chunk. Note: it may still disappear at some angles, but in general the fix works and the behavior should be similar to that of Sodium 0.4.10, which has a similar problem.
  • 1.20+ - fix excessive GPU memory allocation with modded models that output a large amount of vertex data
  • 1.20+ - fix chunks not drawing at all if they contain too much vertex data
  • 1.20+ - automatically disable Embeddium's translucency sorting if the Nvidium renderer is detected to be active

0.3.13

Fabric-only hotfix for some block render layers being skipped when rendering FRAPI models.

0.3.12

  • All versions - fix block entities sometimes being invisible with Valkyrien Skies installed
  • All versions - modify JSON models at launch time to reduce likelihood of z-fighting when Compact Vertex Format is on (this fixes some resource packs like Vanilla Tweaks connected textures)
  • 1.16 - add German translation
  • 1.16 - fix biome color rendering behaving like 1.18 rather than 1.16
  • 1.18+ - fix regression from 0.3.11 that caused barrier blocks/light blocks to render incorrectly
  • 1.19+ - optimize chunk render type set merging on Forge
  • 1.20+ - small optimization to rendering of weighted models (may be backported in the future)
  • 1.20+ - optimize FRAPI render path slightly

0.3.11

  • 1.20+ - fix some modded content rendering incorrectly in Fabulous
  • 1.20+ - fix client world block ticking being allocation-heavy
  • 1.20+ - add another method of detecting textures being rendered for animation triggering
  • 1.20+ - reduce allocation rate of some render paths even further
  • 1.20.1 - add API to allow block models to force-enable ambient occlusion

0.3.10

  • 1.16 & 1.18 - adjust code structure in a mixin so FerriteCore still works

0.3.9

  • 1.18+ - apply some general optimizations to the render pipeline which should reduce allocation rate a bit
  • All versions - prevent crash with excessive biome blend radii (values above 7 are now ignored)
  • 1.20+ (Fabric) - detect bendy-lib and disable incompatible optimization like on Forge
  • 1.20+ (Fabric) - adjust fluid renderer implementation a bit so mods with Sodium mixins still work (e.g. Wilder Wild)
  • 1.20+ - silence warning about incompatible vertex consumers
  • 1.16-1.19 - backport relevant changes from 0.3.6 & 0.3.7
  • 1.18-1.19 - allow Fabulous mode to be selected again (not recommended)

0.3.8

  • 1.20.4 - hotfix for a crash on NeoForge when running with new enough beta builds of Immersive Engineering (not publicly available).

0.3.7

  • 1.20+ - fix potential issue with normal calculations when delegating to vanilla-like block renderers
  • 1.20+ - fix biome color optimization breaking some mods that try to modify grass color

0.3.6

  • 1.20+ - allow setting the biome blend radius to zero again
  • 1.20+ - fix crash with certain resource packs (fix ported from Sodium's dev branch)
  • 1.20+ - fix duplicate vertex data writes not being ignored (this caused the Cave Compendium from Alex's Caves to render incorrectly)
  • 1.20+ - optimize Forge's handling of vanilla multipart models (e.g. fences) to reduce overhead during chunk meshing
  • 1.20.1 - improve efficiency of empty Forge model data

0.3.5

  • All versions - show less info in F3 if reduced debug info is on
  • 1.16-1.19 - enable Sodium's F3 optimizations that were never ported to Forge (rendering the F3 screen is now more efficient)
  • 1.16-1.19 - improve handling of empty chunk sections, they will no longer count towards the task budget for each frame, which should speed up world loading (Sodium 0.5 backport)
  • 1.18+ - increase number of render tasks background threads can work on per frame, this should speed up world loading
  • 1.18+ - provide a bit more debug information when a block is not registered on the client (caused by mismatched mods/configs)
  • 1.18+ - Compact Vertex Format can now be enabled if Oculus is installed but a shader pack is not being used
  • 1.20+ - fix ARGB->ABGR color conversion (fixes Supplementaries bubble blocks being invisible)
  • 1.20+ - transparent pixels of textures are no longer changed on leaves or if mipmaps are off. Vanilla leaf textures now work again.

0.3.4

  • 1.20.1 - fix a crash when custom VertexConsumer implementations are used by mods
  • 1.20.1 - reduce off-heap memory usage
  • 1.20.4 - ported to Fabric (thanks Nolij)

0.3.3

Hotfix to fix some crashes caused by 0.3.2. The rest of the changes in 0.3.2 still apply.

  • 1.16-1.19 - fix crash with mods using custom wood types/signs
  • All versions - fix crash when there is a loading error caused by a missing dependency
  • All versions - fix potential instability caused by mixin loader not releasing resources

0.3.2

On 1.20 only, this release requires a small Oculus update; they have already made the change on GitHub and I anticipate a release will follow shortly.

  • 1.16 - fix an issue which could cause crashes when translucency sorting is enabled
  • 1.18 - fix Draconic Evolution reactors not rendering
  • 1.18-1.19 - fix an issue where chunks might refuse to load visually
  • 1.18-1.19 - remove unnecessary biome data copying that was forgotten in 0.3.0
  • 1.20.1 - improve immediate-mode rendering performance (non-terrain) by applying a general optimization (this is derived from the Sodium 0.5.4 approach and https://github.com/CaffeineMC/sodium-fabric/pull/2241)
  • 1.20.1 - initial release on Fabric, should have feature parity with Forge version. Indium is not required and should be removed.
  • 1.20+ - changes for improved binary compatibility with Sodium

0.3.1

Older Oculus releases will not work with this version; you must use Oculus 1.6.15 or newer.

  • 1.20.1 - port entity rendering optimization that was missed from an earlier Sodium release. This might break Entity Model Features or Entity Texture Features.
  • 1.20+ - apply patches from Sodium 0.5.8

0.3.0

  • All versions - migrate from Yarn to official mappings. This has no effect on players, but simplifies development of the mod, particularly on NeoForge 20.4+. It should also make the codebase a bit more familiar to browse for other Forge modders. It's anticipated that Sodium will follow suit in a future release.
  • 1.16-1.19 - backport biome handling from Sodium 0.5, this improves performance a bit and, on 1.16, enables 3D biome mods to work correctly (thanks @Lymia for contributing the 1.16 backport)
  • 1.16 - fix an issue where crash reports contained less context than they should have
  • 1.16-1.18 - various internal cleanups and small optimizations
  • 1.19+ - add support for fast clouds again
  • 1.20+ - update for near-parity with Sodium 0.5.7 (changelog). This breaks some addons. Please wait patiently for them to be updated and test without addons before reporting crashes to our issue tracker or on Discord.
  • 1.20.4 - update to latest NeoForge build

0.2.19

  • 1.20.4 - hotfix for crash when a mod uses NeoForge's fluid rendering API

0.2.18

  • All versions - blend colors from vertex data and color provider, rather than using one or the other (fixes Supplementaries colored blackboards)
  • All versions - add a few more hooks for tracking of animated textures
  • 1.16-1.20 - optimize model data retrieval a tiny bit more
  • 1.18-1.19 - fix GL_INVALID_OPERATION message being printed when exiting worlds, also fixes a rare issue where the game wouldn't close properly
  • 1.18-1.19 - fix Embeddium using excessive amounts of memory after chunk rebuilds complete
  • 1.20 - add #embeddium:is_vanilla_rendered_fluid tag, fluids with this tag will use vanilla's fluid renderer instead of Embeddium's. Only supported on 1.20.1, nothing newer
  • 1.20.4 - update to NeoForge 20.4.108-beta

0.2.17

  • 1.16 - fix blocks having the wrong render layer in some cases (should only happen if a mod using registry replacement is installed, such as Apotheosis)
  • 1.16-1.18 - microoptimization for fluid texture lookups

0.2.16

This is a second hotfix release to fix CodeChickenLib-powered blocks being invisible.

0.2.15

This is a hotfix release to fix Create/Flywheel blocks not rendering if the Flywheel backend is disabled (e.g. when running shaders), and to fix a launch crash on 1.20.4.

0.2.14

This release incorporates numerous performance improvements & bugfixes, particularly on older Minecraft versions. 1.16.5 users in particular should see vastly improved chunk meshing speeds, especially when the mod is configured to use many update threads. Merry Christmas!

Oculus note for 1.16/1.20: You must use Oculus 1.4.7 or later on 1.16. On 1.20, you will need to wait for a new Oculus update to be released.

  • 1.16 - correctly catch chunk building errors and crash the game, rather than continuing to run with missing chunks
  • 1.16 - fix region sorting order being calculated incorrectly (fixes translucent blocks disappearing from a few angles)
  • 1.16 - reduce work on meshing threads for chunk passes that don't render any data
  • 1.16-1.18 - cache render layers for each block state to eliminate Forge's thread bottleneck in RenderLayers.canRenderInLayer()
  • 1.16-1.19 - improve item rendering performance slightly
  • All versions - remove unneeded Forge patch to adjust texture offsets, this caused weird seams on some blocks
  • All versions - prevent crash when other mods incorrectly register color handlers on the wrong thread
  • All versions - make Forge model data retrieval slightly faster, reduce overhead if chunk contains no custom model data
  • All versions - improve efficiency of fluid texture retrieval
  • 1.18+ - fix some theoretical issues with interaction between translucency sorts & chunk rebuilds
  • 1.19 - ensure frogspawn renders properly on top of water
  • 1.20+ - fix config loading being done twice
  • 1.20+ - fix translucency sorting causing chunks to not rebuild sometimes
  • 1.20+ - improve precision of texture coordinates when the Compact Vertex Format is enabled (should help alleviate misaligned textures)

0.2.13

This release should improve allocation rate noticeably on 1.18 and newer.

  • 1.16 - fix bounds checks added in 0.2.10 causing weird water color at the edges of chunks (visual issue only)
  • 1.18 - optimize allocation rate of FluidRenderer
  • 1.18 - avoid unnecessary allocations when cloning block data
  • 1.18+ - fix the VertexConsumer provided by ChunkMeshEvent remembering vertex data from previous calls (thanks lukebemish for noticing)
  • 1.19 - use vanilla's LocalRandom instead of Xoroshiro to avoid allocation on every setSeed call
  • 1.19+ - apply Sodium's multipart/weighted model optimizations to getRenderTypes, not just getQuads
  • 1.20+ - fix core shader warning appearing for core shaders added by mods
  • 1.20+ - fix block entity shadows disappearing if they are off-screen when using Oculus

0.2.12

If you are playing on 1.19.2 or older, it is highly recommended to update to this version for improved game stability.

  • All versions - fix animated texture optimizations causing animated textures to be out of sync
  • All versions - if you are a mod developer, Embeddium is now published on Maven (more info here)
  • All versions - removed more uses of the name 'Rubidium', such as in the mixins.json file
  • 1.16 - fixed chunks not redrawing in some edge cases, like changing render distance with hotkeys or changing fog levels
  • 1.16-1.19 - fix a Sodium 0.4 and older bug that caused memory corruption when complex particles are on screen. This bug does not affect gameplay most of the time, but it can cause the game to randomly crash with an EXCEPTION_ACCESS_VIOLATION.
  • 1.16-1.19 - remove the old workaround for the aforementioned bug, which did not actually fix the issue, but instead caused lag spikes. These lag spikes were worsened by a change in 0.2.10, and should now be fixed.
  • 1.18+ - fix a Sodium bug that caused interpolated textures to be broken
  • 1.19+ - fix custom entity outlines & retrieval of ModelDataManager inside block models not working correctly (thanks XFactHD for noticing these parity issues)
  • 1.20-1.20.2 - fix "Loading terrain" screen not going away for a long time when facing certain directions in the world
  • 1.20-1.20.2 - fix another edge case where chunk regions are ordered incorrectly, causing water to disappear behind stained glass
  • 1.20.3 - updated to Sodium 0.5.4

0.2.11

  • 1.18 & 1.19 - fix every chunk looking like a plains biome visually

0.2.10

  • 1.16 - remove unsafe biome workaround Rubidium added for Cave Biome API (this may cause blocks to be colored incorrectly after updating, in which case you should remove Cave Biome API)
  • All versions - fix block entities disappearing briefly when being deleted & recreated
  • All versions - fix remaining causes of ArrayIndexOutOfBoundsException exceptions that can occur when modded block renderers access blocks that are far away
  • All versions - fix blocks that are marked as air but also have a block entity renderer being invisible
  • All versions - refactor Forge light pipeline integration to avoid licensing concerns
  • 1.18-1.19 - fix Reclaimed XXX bytes from unknown location error spam
  • 1.18+ - create ChunkMeshEvent and refactor Immersive Engineering integration to use it
  • 1.19-1.20 - fix smooth lighting breaking on models that disable ambient occlusion on some, but not all quads
  • 1.19-1.20 - work around z-fighting with models that disable AO on a quad layered on top of another
  • 1.20 - possibly fix block placements not updating the chunk visually

0.2.9

  • 1.16 - fix excessive stuttering with some block setups/after prolonged gameplay (CaffeineMC/sodium-fabric#740)
  • 1.16-1.19 - fix ghost block entities remaining in the world sometimes when mods reload the renderer
  • 1.18 - fix crash due to null BlockStates
  • 1.18-1.19 - fix "Loading terrain" screen not going away for a long time when facing certain directions in the world (backport from future Sodium 0.5.4 update)
  • 1.18-1.19 - fix another edge case where chunk regions are ordered incorrectly, causing water to disappear behind stained glass (backport from future Sodium 0.5.4 update)
  • 1.18-1.19 - work around translucency sorting crash

0.2.8

  • 1.20 - fix items not being colored correctly (fixes Tetra tools being uncolored)
  • 1.20 - fix custom color resolvers on vanilla blocks not being used
  • 1.20 - fix rare bug where placing blocks did not update the chunk visually

0.2.7

  • 1.16-1.19 - remove pooling of chunk objects, as it provided no benefit to performance while introducing opportunities for crashes with buggy mods
  • All versions - work around mods with buggy block entity renderers by refusing to render "removed" block entities
  • All versions - fix chunks being frustum culled (i.e. based on FOV) too aggressively. This fix comes from Sodium's development branch, and will most likely appear in Sodium 0.5.4 on Fabric.
  • 1.18-1.20 - fix vignette option not working on some versions
  • 1.20 - fix multipart models using incorrect model data
  • 1.20 - fix IE wires being invisible from some sides
  • 1.20 - fix rare startup crash with Oculus

0.2.6

  • 1.16 - update reported Rubidium version to fix launch crash with Rubidium Extra
  • 1.16 - fix vignette option not working

0.2.5

  • 1.16-1.19 - completely remove particle culling mixins, as Forge already does this
  • All versions - correctly handle mods requesting chunk rerenders on the wrong thread. This probably fixes many reported rare & random crashes. In particular, it will improve reliability when used alongside Lucent.
  • All versions - cull block entities to match Forge behavior. Possible performance improvement in some modded bases.
  • All versions - new mod logo! Thanks input-Here and CelestialAbyss.
  • 1.18 & 1.19 - rewrite translucency sorting patch. It is no longer dependent on more advanced GPU features, and should thus work on any system Embeddium works on. It has also been moved from Performance to Advanced in video settings, to avoid users thinking enabling it improves performance (the opposite is more likely).
  • 1.20 - added (optional) translucency sorting
  • 1.20 - fixed custom fluids on Forge rendering with a weird color

0.2.4

  • 1.16 & 1.18 - fix Forge model data not being loaded correctly for some models (fixes More Red wires not connecting)

0.2.3

  • 1.18 & 1.19 - hotfix for Better Fps - Render Distance's mixin being broken by the occlusion fix.

0.2.2

This is a fairly major update for Embeddium on 1.16-1.19. With the addition of translucency sorting these versions should now, for the most part, have the ability to maintain full visual parity with the vanilla Minecraft renderer.

1.20 versions currently do not support translucency sorting, as internal design changes in Sodium 0.5 mean that the patch cannot be applied directly. Translucency sorting on 1.20+ will be added once the ongoing work in upstream Sodium to add it is finished.

The Rubidium Occlusion Culling Fix mod is obsolete as of this version. Embeddium now fixes the issue itself.

  • 1.16 - improve performance of Flywheel instancing compatibility module
  • 1.16-1.19 - added experimental translucency sorting, disabled by default since it has a performance penalty (the extent depends on your system). When enabled, translucent blocks will render in front of each other correctly (e.g. stained glass on stained glass, or ice in water). Credit to an abandoned Sodium 0.3 PR for the core of the 1.18/1.19 implementation, and the old sodium-forge repo for inspiration on how to structure the 1.16 implementation.
  • 1.16-1.19 - fix chunks being invisible at some angles (MC-70850) by incorporating a superseded Sodium 0.4 PR. Credit to MCRcortex for the original patch.
  • 1.18-1.19 - fix errors while rendering chunks sometimes causing the chunk to be invisible rather than providing proper debug information.
  • 1.20 - fix Immersive Engineering windmills, etc. teleporting to the same location visually.
  • 1.20 - add Immersive Engineering wire rendering patch from 1.19
  • All versions - fix issue with Direction.getFacing returning different results than vanilla sometimes. On 1.16 this caused a crash with Ice & Fire until the latter updated to work around it.
  • All versions - make Sodium act like vanilla with respect to cullface on models, this fixes some issues with sides of blocks being invisible.
  • All versions - improve performance of Forge block renderer slightly.

0.2.1

  • 1.20 - tweak the new full-precision vertex format for slightly better performance on some GPUs
  • 1.20 - fix a couple more VertexBufferWriter crashes

0.2.0

  • 1.18+ - restore ability to disable Sodium's compact vertex format. This will increase VRAM usage, and will almost certainly have a negative impact on FPS, so the default has not changed. However, disabling it should fix many issues with z-fighting, and on 1.20, reduce the flickering seen with dynamic lights mods.

    Great care has been taken to avoid breaking addons, but in the case that a Forge addon did break please open an issue. Note that Iris (and thus Oculus) is hardcoded to assume the compact vertex format is being used, so for compatibility this option will only have an effect if Oculus is not installed.

    This option can be found in Video Settings -> Performance.

  • All - prevent game from crashing if config file is corrupt

  • 1.16-1.19 - fix some particles being invisible

0.1.16

  • 1.20 - fix VSync being broken by Forge on second startup
  • 1.20 - fix model data being retrieved using wrong BlockRenderView

0.1.15

  • 1.19 - handle Forge's AO flag on quads correctly (from Rubidium)
  • 1.19 - fix crash with latest Snow Real Magic version
  • 1.20 - fix NullPointerException when rendering some blocks

0.1.14

  • All versions - fix crash with Plasmo Voice, and any mod that creates unusual vertex formats

0.1.13

  • 1.20 - fix issue introduced in 0.1.12 with block shading in inventory
  • 1.20 - fix crash with mods implementing the new Sodium vertex API

0.1.12

  • All versions - fix shading being incorrect on objects in the world under certain conditions
  • All versions - significantly improve performance of vanilla's BufferBuilder (preliminary testing suggested a minimum 10-20% improvement around lots of Create blocks)

0.1.11

  • 1.18+ - tweak fog shader logic for better parity with vanilla, fixing some mod compat issues

0.1.10

  • 1.19 & 1.20 - update faked Rubidium mod version for addons that updated to the new version

0.1.9

  • 1.16 - hotfix for Magnesium/Rubidium Extras being broken by 0.1.8
  • 1.20 - support new Oculus version, restoring shader support
  • 1.20 - possible fix for some complex blocks occasionally rendering incorrectly on initial chunk load
  • 1.20 - merge Sodium 0.5.3

0.1.8

  • 1.16 & 1.19 - updated to be compatible with latest Oculus version
  • 1.19 & 1.20 - support Forge custom cloud rendering (from Rubidium)

0.1.7

  • 1.20 - made an internal change to assist CreativeMD with LittleTiles compatibility
  • All - items now support Forge emissive lighting

0.1.6

  • All - improved entity culling to handle entities with infinite bounding boxes. This fixes some Mahou Tsukai entities being invisible, and probably other things.
  • 1.20 - made mods using dynamic lights work properly again.
  • 1.20 - made mods replacing vanilla biome colorizers work properly.