# Compatibility

ModernPSX is an Iris shader pack and contains no Fabric, Forge, or NeoForge
code. The same shader ZIP can therefore be used with Iris on any loader and
Minecraft version whose Iris build supports the shader-pack features used.

## Targeted interfaces

- Iris 1.8.12 on Minecraft 1.21.1 / NeoForge (runtime exercised).
- Iris 1.11.2 on Minecraft 26.2 / Fabric (source and build interface audited;
  runtime visual validation still required).

## Mod-specific rendering

- Voxy's explicit shader interface (patch version 1) is supported through the
  pack's `voxy.json` pipeline. Opaque and translucent LoD geometry receive
  ModernPSX distant lighting and geometry fog while the sky remains outside
  the LoD depth path. Runtime visual validation is still required for the
  installed Voxy/Iris version combination.

- Grassier Grass 1.4.5 on Minecraft 26.2 / NeoForge is recognized through its
  custom `TERRAIN_CUTOUT` vertex layout. ModernPSX preserves the mod's original
  blade coverage and directional appearance, excludes the sparse cards from
  GTAO, and uses a stable upward receiver only for stronger world-shadow and
  night response. The mod's optional shader-pack shadow casting remains
  controlled by Grassier Grass itself.

The compatibility mod supplies two Iris dynamic uniforms,
`modernpsxSnapAnchor` and `modernpsxSnapGroup`. If the mod is absent, GLSL
uniform defaults preserve the pack's ordinary per-vertex snapping.

## Feature requirements

The default and cinematic profiles enable the colored-light compute path. That
path explicitly requires `CUSTOM_IMAGES`, `COMPUTE_SHADERS`,
`BLOCK_EMISSION_ATTRIBUTE`, `REVERSED_CULLING`, and `ENTITY_TRANSLUCENT`.

The performance profile disables colored lighting and requests only the two
optional Iris attributes used by ordinary geometry. This is the intended
fallback for hardware or Iris builds that cannot provide the compute path.

Oculus and other non-Iris shader loaders are not currently claimed as
compatible. They need separate validation because accepting OptiFine-style
program names does not imply support for Iris feature flags, custom images,
compute programs, or injected dynamic uniforms.
