
Lomka
Applies various, compatible optimizations to improve perfomance and stability. Ready for client, server or both uses!
- Загрузки
- 23K
- Подписчики
- 37
- Обновлён
- 17 августа 2026 г.
- Лицензия
- MIT
Опубликован 11 февраля 2026 г.
Summary
- Reduces micro-stutters
- Improves FPS
- Decreases RAM usage sometimes
- Decreases resources load (feels diffrent on some systems)
What actually does the mod do?
- Speeds up some calculations (colors engine, maths, AABB intersection, textures loads)
- Fixes bugs in game code
- Prevents unnecessary allocations (sounds, calcs, lightmap state and other methods)
- Improves game caching (Input types, VertexFormats, font width glyphs cache)
- Slightly improves client threading system
FAQ
Q: I'm having performance issues, and removing Lomka fixes them! A: Make sure you are using the latest version. Lomka targets hot-paths across multiple Minecraft versions — if you encounter a compatibility issue, please report it. At the moment the most perfomance friendly mod versions are 0.2.0 and 0.3.x.
Q: Can I run Lomka on the server-side?
A: Yes.
Q: Forge support?
A: No, except 1.20.1 Forge.
Q: Any backports? (<1.20.1)
A: No. The mod's current functionality largely follows Minecraft version 1.21.11 and its structure.
Q: Does Lomka require Fabric API or any other dependencies?
A: No. Lomka depends only on Fabric Loader or (Neo)Forge Loader, without any dependencies.
Q: Mobile devices support?
A: Is it actually starts with Lomka? Cool. That's all.
Q: Can I use Lomka in a modpack?
A: Yes. Lomka is absolutely free and open-source. :sunglasses:
Q: Does Lomka have a config file? (Lomka v0.3.0>=)
A: Soon as possible. Againly the maintained version is 1.21.11. Maybe with time will be added but currently mixins can be disabled by editing lomka.mixins.json inside the mod's archive.
Compability
Mod should be compatible with almost all mods perfectly but not surely!
Check list of incompatibility with Lomka mod.
Bug Reporting
When reporting a bug that only appears with Lomka installed:
- Report it on the project's issue tracker (not to other mod authors — Lomka's mixins are surgical and unlikely to cause crashes in unrelated systems).
- Try to reproduce the issue without mod Lomka first.
Ченджлог
mc1.20.1-0.4.0-fabricРелиз1.20.1 · 17 августа 2026 г.
Performance
- Font glyph widths cached per codepoint/bold pair — text rendering does fewer glyph source lookups. (1.21.11+) NEW
- Resource pack loading overhaul:
- FallbackResourceManager listResources fast-path for
.mcmeta— eliminates thousands of useless Identifier allocations and map lookups. NEW - MultiPackResourceManager bypasses redundant secondary TreeMap allocation when only one namespace manager is present. NEW
- VanillaPackResources fast-path namespace check, zero-allocation path resolution, and cached parsed
pack.mcmeta. (<26.1) NEW
- FallbackResourceManager listResources fast-path for
- Block collision shapes now served from the cached shape instead of virtual
getCollisionShapedispatch. (non-dynamic blocks) NEW - Light queues swapped from
LongLinkedOpenHashSetto bit-packedSpatialLongSet— less heap churn during chunk loading. NEW - Shader uniform lookup via fastutil open-addressing map instead of HashMap. (1.21.6+) NEW
- ChunkedSampleByteBuf no longer allocates a fresh native buffer per chunk. (1.21+) NEW
- Lighting precomputes a buffer slice per entry and skips redundant GPU UBO writes when the cardinal light type is unchanged. (1.21.6+)
- NativeImage fillRect/copyRect rewritten with bulk MemoryUtil.memCopy — whole-image and whole-row transfers in a single call.
- Std140 builder and size calculator put* methods rewritten with bitwise alignment and absolute indexed writes. (1.21.6+)
- ModelPart rotateBy composes rotations through a single quaternion instead of a full 3x3 matrix multiply.
- ArrayListDeque removes from the front half by advancing head instead of shifting the tail.
- ARGB reciprocal lookup table computed in O(1) per entry instead of an inner loop.
Bug Fixes
- NativeImage fillRect/copyRect now validate format and bounds explicitly instead of silently corrupting memory.
- Fixed Lightmap and LightmapRenderStateExtractor 26.2 API calls (
mapBuffer,getMainCamera,getBossOverlay,getNightVisionScale). - MixinMth clampedLerp is now version-conditional so the correct argument order is used on 1.21.11+ and older.
- Camera 26.1+ near-plane path kept on the lightweight custom structure.
New
- New duck interfaces:
IBitSetDiscreteVoxelShape,IGlyphSource. - New accessors:
AccessorCache,InvokerBlockBehaviour.
Compatibility
- Per-version mixin configs, access wideners and access transformers are now generated from Stonecutter templates (
src/stonecutter/) instead of committed per-version files. - Mixin source exclusions are auto-derived from the processed mixin config — no more hand-maintained exclude tables in build scripts.
Removed
- Removed low-impact mixins: MixinSamplerCache, MixinSortState, MixinQuadrant, MixinItemTransform, MixinMipmapGenerator.
- Removed DiscreteVoxelShapeHelper — replaced with the IBitSetDiscreteVoxelShape duck interface.
- Removed per-version committed
lomka.mixins.json,*.accesswidenerandaccesstransformer.cfgfiles.
Changed
- Build system refactored:
build-logiccomposite build →buildSrcwith auto-derived mixin exclusions. - 16 build variants now (added
1.20.1-fabricand1.20.1-forge).
mc1.20.1-0.3.3-fabricРелиз1.20.1 · 5 августа 2026 г.
1.20.1 init
mc1.21-0.3.3-fabricРелиз1.21, 1.21.1 · 3 августа 2026 г.
Performance
- Sampler cache lookup rewritten — no per-call enum comparisons.
- Cursor3D advance rewritten — no divisions/modulos per voxel.
- Tiny holder sets use linear scan instead of Set allocation.
- Lighting coordinate calculations now applied. (26.1+)
- BlockableEventLoop submit runs inline with no future allocations.
- GameRenderer extractCamera removed null-conditional.
- Key inputs hashCode caching simplified.
- Removed Thread.yield() from runTick for lower frame latency. (before it was just commented I dunno why, bruh)
Bug Fixes
- Fixed NativeImage region fill writing wrong color byte order.
- Fixed SoundEngine skipping camera updates before sound engine loads.
- Reverted Mth power-of-two calculation to vanilla.
- Raised ItemInHandRenderer and LightTexture(Lightmaps) mixins priority to avoid conflicts. #18
Compatibility
- Light texture and light state extraction now use cancellable injects instead of overwrites.
Removed
- Removed strict mixins: FaceBakery, SpriteContents, PalettedPermutations.
- Removed commented AccessorQuadCollection.
mc1.21-0.3.2-fabricРелиз1.21, 1.21.1 · 26 июля 2026 г.
Performance
- Lightmap pipeline rewritten — less GPU/CPU allocations per frame.
- PoseStack uses pure
mulPoserotation with cached axis transforms. - Sound buffer library optimized.
- VertexFormat
hashCode()cached. - Lighting coordinate calculations optimized.
- TextureAtlas ported to new rendering API.
- ARGB and Mth math minor optimizations.
Bug Fixes
- Fixed item in hand rendering desync. (#15)
- Fixed mipmap generation issues.
- Fixed Mth math edge cases.
Removed
- Removed RAM-heavy optimizations (Material and Resource caching).
- Removed incompatible mixins: TextureUtil, MeshData, KeyframeAnimation.
mc1.21-0.3.1-fabricРелиз1.21, 1.21.1 · 17 июля 2026 г.
Performance
- Chunks load smoother — faster lighting and biome data access.
- FaceSturdy block state caching.
- Bitset shapes create slightly less garbage.
- Refactored more perfomously game calculations.
- Network packets create less garbage.
- No more per-frame allocation for items held by entity.
- Resource packs now free unused mip levels after loading. Saves 10-50 MB RAM.
- Improved faces building (1.21.11+).
Bug Fixes
- Fixed a rare crash (
NegativeArraySizeException) in world loading. - Fixed lava fog appearing wrong in some camera positions.
- Fixed sound updates being skipped.
- Fixed game crash with Create Fly (#10)
New
- Added 1.21.4 and 1.21.6-1.21.8 support.
Removed
- Old low-impact and uncareful optimizations to keep the mod cleaner.
mc1.21-0.3.0-fabricРелиз1.21, 1.21.1 · 28 июня 2026 г.
Main version: 1.21.11.
All optimizations below apply to it. On other versions (1.21, 1.21.9, 26.1, 26.2) some changes are absent due to Minecraft code differences.
Removed
- Entity culling — the mod no longer checks which entities are off-screen and skips their rendering/ticks. Removed entirely (EntityCulling, BlockEntityCulling, EntityTickCull, Frustum, Octree, SmartLeaves + utilities). Too many bugs, and the FPS gain was inconsistent.
- Config — config file, in-game config screen, ModMenu integration. The mod now works out of the box with no settings.
- OpenGL command cache — three mixins that cached viewport/scissor/polygonMode calls. Negligible gain.
- NBT throttling — thread limiting for NBT read/write + file cache. Complexity wasn't worth it.
- Platform abstraction layer — ServiceLoader and PlatformHelper removed. Simpler now.
- Chunk log spam suppression, crash report guard, translucency resort throttle — minor stuff.
Added
The mod was rewritten from scratch. Focus shifted from entity culling to hot-path acceleration and garbage elimination (less GC pressure = fewer stutters):
- Block/model rendering — faster face geometry calculations, model rotations, quaternion/matrix work. Some less allocations and less GC.
- Buffers & vertices — direct memory writes via MemoryUtil, compact color packing (2 instructions instead of 7), no more Math.addExact, cached vertex format hashes. All of these run every frame.
- Camera — fully reworked: reusable objects, unrolled loops, pre-computed near-plane vectors, cached fluid-in-camera check. Smoother movement.
- Math — bitwise operations instead of division, FMA (fused multiply-add) for distance/slerp, pre-computed rotation tables, fast rounding. Small gains that add up every frame.
- ARGB (colors) — all color operations (blending, greyscale, alpha) rewritten: no division, pre-computed lookup tables, bit shifts. Helps particles, banners, maps, etc.
- Audio — optimized buffer creation, source positioning, OGG decoding. Fewer micro-stutters when sounds load.
- Textures — unused mipmap levels get closed (frees VRAM), pre-computed filter weights for MipmapGenerator, palette caching for atlases.
- Fonts — first 8192 characters cached in a flat array instead of HashMap. Every time the game renders text — faster.
- Collections — ArrayListDeque rewritten from scratch (power-of-two capacity, bitwise masking, fixes a vanilla NegativeArraySizeException bug), ByIdMap uses Int2ObjectOpenHashMap. Faster, fewer allocations.
- Hashing — cached toString/hashCode on Identifier/ResourceLocation, Material, Transformation, BakedQuad, InputConstants, VertexFormat, TextureSetup.
- Modifier keys — Shift/Ctrl/Alt checked once per tick instead of every hasShiftDown() call.
- RenderSystem — forces GL debug flags off (debug mode hurts FPS significantly).
- EventLoop — CompletableFuture + LockSupport instead of Thread.yield().
- Shader uniforms — cached GPU buffer slices, static constants for white/zero uniforms, skip redundant writes.
Changed
- Build system — old multi-module Gradle (common/fabric/neoforge) → Stonecutter. Shared codebase with version-specific overrides.
- Package —
set.starl→lomka.starl. - Entry points — separate LomkaFabric and LomkaNeoForge.
- Versions — 1.21.11/Fabric+NeoForge (primary), plus additional variants for 1.21-1.21.1, 1.21.9-1.21.10, 26.1-26.1.2, 26.2.
(AI generated changelog)
mc1.21.10-0.2.1-fabricРелиз1.21.10 · 27 марта 2026 г.
Removed:
- Texture decode off-thread (LazyLoadedImageOffThreadMixin, virtual threads)
- Network compression buffer reuse (CompressionDecoderDirectInputReuseMixin)
- Shader program binary cache (config)
- LomkaConfigScreen (in-game config UI, 272 lines)
- CullingContext record
- AOT cache / compact headers logging
- UploadSizedRunnable (dead code)
Updated:
- EntityCullingMixin: removed 3 unused fields (~24 bytes saved per entity)
- LevelRendererAccess: removed dead method isSectionCompiledAndVisible
- EntityRendererCullingMixin: camera hash now uses hash3 (better distribution)
- FrustumMixin: infinite loop replaced with 256 iteration cap (fixes freezes)
- GL caches: call GL11 directly instead of GlStateManager (faster)
- GlRenderPassReuseMixin: collection clearing at HEAD instead of TAIL
- clientTickCullIncludeDisplay: false → true by default
mc26.1-0.2.0-fabricРелиз26.1 · 25 марта 2026 г.
26.1 release
Комментарии
Загружаем…