Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LavaFlow

Caution

100% AI-GENERATED PROJECT

LavaFlow, including its source code and documentation, is 100% generated by AI under human direction. Treat the implementation as experimental: audit the code and test it on your own hardware before relying on it.

LavaFlow is an experimental Vulkan 1.1 graphics backend for Minecraft's Blaze3D API. It replaces the exercised Blaze3D rendering path with LavaFlow-owned LWJGL Vulkan implementations and never calls OpenGL.

Compatibility

Component Target
Minecraft 26.2
Mod loader NeoForge 26.2.0.32-beta or newer 26.2 build
Minecraft runtime Java 25
Graphics API Vulkan 1.1
Desktop smoke renderer Java 21 bytecode

The backend includes compatibility paths for Vulkan 1.1 devices without dynamic rendering, synchronization2, push descriptors, multi-draw indirect, non-solid fill mode, or vertex attribute divisors. Both desktop and ARM64 Android devices are in scope. Actual driver behavior and performance vary by GPU.

Current Features

  • LavaFlow-owned Vulkan instance, presentation device, queues, and swapchain
  • Blaze3D textures, buffers, samplers, pipelines, render passes, and command encoding
  • Dynamic-rendering and legacy-render-pass paths
  • Push-descriptor and descriptor-set paths
  • Explicit resource lifetime and queue synchronization
  • Vulkan-native texture transfers, blits, clears, and presentation
  • Resize and swapchain recreation handling
  • Final presentation blit with the target Y coordinate reversed
  • Sodium 0.9.1 compatibility: Sodium's Vulkan terrain path runs on LavaFlow instead of falling back to OpenGL

LavaFlow uses clockwise front faces and does not enable shaderc's invert-Y option. These conventions are required to match Minecraft's official Vulkan backend behavior.

Architecture

Minecraft Blaze3D API
        |
LavaFlow NeoForge adapter
        |
LavaFlow Vulkan backend
        |
Vulkan 1.1

The Minecraft-facing adapter lives under dev.lavaflow.minecraft. The standalone Vulkan renderer under dev.lavaflow.vulkan contains no Minecraft classes, keeping Vulkan resource ownership and batching policy independent of Minecraft.

Building

Prerequisites:

  • JDK 25
  • Vulkan 1.1 loader and driver
  • refs/Minecraft26.2Client.jar (the GitHub workflow downloads and verifies it automatically)
  • Gradle 9.1 or a compatible Gradle release

Build and test the project:

gradle --no-daemon clean test jar

The NeoForge mod is written to:

build/libs/lavaflow-0.1.0-SNAPSHOT.jar

GitHub Actions runs the same build for pushes, pull requests, and manual dispatches, then publishes the JAR as a workflow artifact.

Smoke Renderer

Run the standalone Vulkan smoke renderer with:

gradle run

For a finite automated run:

gradle run --args='--frames=120'

The window should clear continuously through Vulkan and report the selected GPU and frame count in its title. Closing it exercises orderly resource teardown.

Installing on NeoForge

  1. Copy build/libs/lavaflow-0.1.0-SNAPSHOT.jar to the Minecraft 26.2 instance's mods directory.
  2. Open the instance's config/fml.toml and set:
earlyWindowControl = false
  1. Select Vulkan as the instance graphics backend.
  2. Start Minecraft with Java 25.

The NeoForge early loading window must remain disabled because it creates an OpenGL GLFW window before Blaze3D selects LavaFlow. LavaFlow itself never creates or uses an OpenGL context.

For FCL on Android, the typical mod path is:

/storage/emulated/0/FCL/.minecraft/versions/26.2-NeoForge/mods/

The exact instance directory can differ between launcher configurations.

Status

LavaFlow is experimental software. Rendering correctness and performance have been tested on a limited set of desktop and ARM64 devices, but Vulkan driver differences can expose device-specific issues. Keep a known-good JAR when testing new builds.

License

LavaFlow is distributed under the MIT License. Copyright (c) 2026 BZLZHH.

About

An experimental Vulkan 1.1 graphics backend for Minecraft's Blaze3D API.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages