Oculus Community Port

An unofficial Forge continuation of Oculus with secure shader-pack loading and experimental full-screen shader rendering.

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 mods folder.
  • 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 shaders folder
  • 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 AddFramePassEvent frame-graph integration
  • Compiles shaders through Minecraft's active GPU device
  • Executes compatible full-screen stages in deterministic order:
    • deferred
    • deferred1 through deferred15
    • composite
    • composite1 through composite15
    • final
  • Supports a matching legacy .vsh for each full-screen stage
  • Supplies a modern full-screen vertex shader when a .vsh is absent
  • Adapts common legacy GLSL constructs such as:
    • varying
    • texture2D
    • texture2DLod
    • gl_FragColor
    • gl_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 colortex and depthtex attachments
  • 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

  1. Install Minecraft 26.2.
  2. Install Minecraft Forge 65.1.0.
  3. Configure the launcher to use Java 25.
  4. Place oculus-forge-26.2-0.2.0-alpha.1.jar in the client's mods folder.
  5. Do not place the -sources.jar file in mods.
  6. Start Minecraft once.
  7. Place shader-pack ZIPs or directories in the instance's shaderpacks directory.
  8. Open Mods → Oculus Community Port → Config.
  9. 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).

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.

The Oculus Community Port Team

profile avatar
Owner
  • 3
    Projects
  • 1.3K
    Downloads

More from kazo67