Skip to content

Source Layout

TamKungZ edited this page Oct 27, 2026 · 1 revision

Source Layout

Java sources are under src/main/java/net/dx12mc, shaders under src/main/shaders, tests under src/test/java/net/dx12mc. For the design rationale see ARCHITECTURE.md.

Startup flow

client.Entrypoint (ClientModInitializer) calls DX12MC.runtime().initialize(). client.Runtime is a thin facade the mixins call; it forwards to render.Controller, which owns the renderer. Backend creation is deferred to RendererLifecycle, which ensureInitialized / ensureFrame / present drive from the frame hooks.

Packages

Package Contents
client Entrypoint, Runtime (mixin-facing facade), VideoOptions
config Config (reads dx12mc.* system properties), Mode
render Controller, RendererLifecycle (init, frame/present, fatal state, shutdown), SectionRenderContext, ScreenImages, PerformanceTelemetry, FatalRenderException
bridge Bridge, DrawContext / DrawContextFactory, Slot, Stats, UnsupportedRenderPathException
bridge.mesh Batch, Encoder, Indices, MeshStore, SectionRegionBatcher, RunPlanner, FrameBudget
bridge.texture Registry, TextureEntry, MipLevel, Image, Pixels, SamplerState, UploadQueue, TextureNotReadyException
bridge.shader ShaderSemantics, ShaderInputs
bridge.state RenderState, BgfxStateEncoder, ScissorRect
graphics Adapter, RendererInfo, FrameSize
graphics.bgfx bgfx wrappers: Backend, Mesh, Texture, Program, SwapChain, StagingMemory, ScreenCapture, ViewSequence, Probe, DebugText, backpressure exceptions
graphics.pipeline PipelineSet, ShaderPipeline, Uniforms
platform.win32 DxgiAdapters, WindowHandle
debug Scene, NativeOverlayRenderer, OverlayWriter, GarbageCollectionMonitor, ByteSizes
mixin Minecraft hooks, listed below

Mixins

Registered in dx12mc.mixins.json (all client-side, defaultRequire: 1, so a hook that no longer matches fails at load).

Mixin Target
GameRendererMixin, GameRendererInvoker GameRenderer
LevelRendererMixin LevelRenderer
BufferUploaderMixin BufferUploader
VertexBufferMixin VertexBuffer
NativeImageMixin, TextureUtilMixin NativeImage, TextureUtil
GlStateManagerMixin GlStateManager
RenderSystemMixin, RenderSystemAccessor RenderSystem
RenderTargetMixin RenderTarget
PostChainMixin PostChain
ScreenshotMixin, ScreenshotInvoker Screenshot
WindowMixin Window
OptionsMixin, OptionInstanceMixin Options, OptionInstance
GlUtilMixin GlUtil
TimerQueryMixin, FrameProfileMixin, FrameProfileInvoker TimerQuery, TimerQuery.FrameProfile

Tests

src/test/java/net/dx12mc mirrors the main packages. stability/ holds source-level checks (for example StabilitySourceTest, EndPortalOriginTest, ReleaseWorkflowTest), shader/ShaderSourceTest checks shader sources, and bridge/RenderBench / FrameBench back the renderBench task.

Clone this wiki locally