Oculus Community Port
Unofficial client-side Forge port — experimental alpha
This project is not an official release of Oculus, Iris, Forge, Mojang, Microsoft, Sodium, Embeddium, or OptiFine.
Oculus Community Port is an independently maintained port of the Oculus/Iris shader-pack architecture for Minecraft Java Edition 26.2 and Minecraft Forge 65.1.0.
The project brings shader-pack discovery, secure pack loading, configuration, legacy shader adaptation, GPU compilation, and modern Forge frame-graph post-processing to Minecraft 26.2. Its purpose is to rebuild Oculus properly against the current rendering engine instead of hiding removed APIs behind compatibility stubs.
Client-side only
This mod is client-side only.
- Install it in the player's client
modsfolder. - Do not install it on a dedicated server.
- The server does not need Oculus Community Port.
- It does not add blocks, items, entities, recipes, dimensions, commands, or server gameplay mechanics.
- Its configuration, shader packs, rendering pipeline, and GPU resources remain entirely on the client.
Requirements
| Requirement | Version |
|---|---|
| Minecraft Java Edition | 26.2 |
| Minecraft Forge | 65.1.0 |
| Java | 25 |
| Graphics backend | OpenGL |
| Side | Client only |
No external Rubidium, Embeddium, or Sodium mod is required by this alpha.
Current features
Shader-pack management
- Discovers shader-pack directories and ZIP files
- Reads ZIP packs without extracting them
- Supports a single wrapper directory around a pack's
shadersfolder - Stores the selected pack and enabled state
- Provides a Forge Mod List configuration screen
- Reloads selected shader resources without requiring a complete game restart
- Reports pack preparation and shader compiler failures in
latest.log
Working shader pipeline
- Uses Forge's modern
AddFramePassEventframe-graph integration - Compiles shaders through Minecraft's active GPU device
- Executes compatible full-screen stages in deterministic order:
deferreddeferred1throughdeferred15compositecomposite1throughcomposite15final
- Supports a matching legacy
.vshfor each full-screen stage - Supplies a modern full-screen vertex shader when a
.vshis absent - Adapts common legacy GLSL constructs such as:
varyingtexture2Dtexture2DLodgl_FragColorgl_FragData[0]ftransform()gl_MultiTexCoord0
- Supports recognized main-color and main-depth sampler aliases
- Executes multiple compatible post-processing stages in sequence
Uniform support
The current compatibility layer can update common legacy values including:
- view width, view height, and aspect ratio
- frame time, frame counter, and frame-time counter
- world time and world day
- rain strength and wetness
- camera and previous-camera position
- eye altitude and eye medium
- near and far distance
- sun angle
- screen brightness
- fog color and sky color
Minecraft 26.2 rendering safety
- Detects the active graphics backend
- Allows shader-pack rendering only on the supported OpenGL path
- Automatically disables shader rendering on Vulkan
- Never attempts to run OpenGL-style shader-pack code unchanged on Vulkan
- Converts recognized post-processing depth samples from Minecraft 26.2's reversed-depth representation to the forward-depth values expected by legacy packs
- Closes mod-owned mapped GPU buffers during replacement and shutdown
- Restores vanilla rendering after source adaptation, compilation, or runtime shader failure
Shader-pack input security
Shader packs are treated as untrusted local input. The loader includes protections against:
- ZIP path traversal and absolute paths
- directory symlink escape
- malformed ZIP files
- duplicate ZIP entries
- oversized files and archives
- excessive compression ratios
- invalid UTF-8 shader source
- recursive includes and include cycles
- excessive include depth or count
- excessive expanded shader source
Performance design
The alpha is designed to avoid unnecessary work in hot rendering paths:
- Pack discovery, file reads, and source preparation do not run every frame.
- Shader programs are not recompiled every frame.
- Stable render-target descriptors are cached by size.
- Common uniforms use mapped ring buffers.
- GPU object creation and use remain on the render thread.
- Shader source and archive reads are kept away from per-frame rendering.
- With shaders disabled, no shader-pack programs are compiled or executed and Forge/vanilla world rendering remains active.
Compatibility with future Forge 26.2 optimization mods will be handled through verified public APIs where possible. This build does not pretend that an unavailable Rubidium or Embeddium 26.2 release exists, and it does not bundle Sodium implementation classes.
Important alpha limitations
This is the first functional rendering alpha, not yet a complete production replacement for Oculus or Iris.
The following major features are not implemented yet:
- terrain and chunk gbuffer shader routing
- entity and block-entity gbuffer routing
- particles, first-person hand, held-item, and overlay shader routing
- pack-controlled sky, sun, moon, stars, clouds, weather, water, and translucent geometry stages
- shadow-map world rendering
- additional
colortexanddepthtexattachments - normal and specular texture support
- custom pack textures and noise textures
- previous-frame/history render targets
- the complete OptiFine/Iris properties, profiles, directives, expressions, and preprocessor model
- Vulkan shader-pack rendering
As a result, complex shader packs may fail to activate or may not produce their intended appearance. Unsupported samplers, uniforms, outputs, and shader features produce a diagnostic instead of silently receiving fake default data. Vanilla rendering is restored whenever recovery is possible.
Do not advertise this alpha as supporting every OptiFine shader pack.
Shader-pack compatibility goal
The long-term goal is compatibility with existing ShadersMod and OptiFine-style shader packs without requiring pack authors to rewrite them. Compatibility is being implemented subsystem by subsystem against Minecraft 26.2's modern rendering APIs.
Currently, lightweight packs and compatible full-screen
deferred/composite/final programs are the supported test surface.
Installation
- Install Minecraft 26.2.
- Install Minecraft Forge 65.1.0.
- Configure the launcher to use Java 25.
- Place
oculus-forge-26.2-0.2.0-alpha.1.jarin the client'smodsfolder. - Do not place the
-sources.jarfile inmods. - Start Minecraft once.
- Place shader-pack ZIPs or directories in the instance's
shaderpacksdirectory. - Open Mods → Oculus Community Port → Config.
- Select a pack, enable shaders, and save.
Compatibility notes
- OptiFine: incompatible. Remove OptiFine before using this mod.
- OpenGL: supported shader backend.
- Vulkan: shaders are automatically disabled; Vulkan shader rendering is not implemented.
- Dedicated servers: do not install the mod server-side.
- Other Forge mods: best-effort compatibility; report reproducible conflicts to this port's issue tracker.
- Resource packs: expected to coexist, but the complete resource-pack test matrix is unfinished.
- Optimization mods: no Forge 26.2 renderer integration has been formally verified.
Reporting problems
Report problems to , not to the original Oculus or Iris maintainers.
Please include:
logs/latest.log- Minecraft, Forge, Java, and mod versions
- GPU model and driver
- active graphics backend
- shader-pack name and version
- installed mod list
- exact reproduction steps
Source code, license, and attribution
Oculus Community Port is distributed under
GNU LGPL version 3 only (LGPL-3.0-only).
- Community port source: https://github.com/Khaliiid0/Oculus-Community-Port
- Original Oculus repository: https://github.com/Asek3/Oculus
- Iris repository: https://github.com/IrisShaders/Iris
The project preserves the required license, copyright, attribution, and notice files. Corresponding source for every published binary must remain available from the community port's public source repository.
This is a substantially modified, unofficial community fork. It is not affiliated with or endorsed by the original Oculus or Iris contributors, Minecraft Forge, Mojang, Microsoft, Sodium, Embeddium, OptiFine, or any shader-pack developer.
The project icon is an original AI-assisted branding asset created specifically for this community port. It does not reproduce the original Oculus, Iris, Minecraft, Meta, Forge, or Modrinth logo and does not depict in-game content.