Guide

Getting more frames from Minecraft shaders on a Mac

The fastest way to more frames from Rockstar Shaders on a Mac is Render scale. At 1706x1966 on my M4 Max, 75% took the sunset bay frame from 44.98 ms to 33.95 ms, 22 to 29.5 fps, and no other setting comes close: each quality slider one step down is worth a few tenths of a millisecond. Turning the ray tracing off makes the frame slower, not faster. This page says what each thing costs, with the numbers, so you spend your frame time where it shows.

I made Rockstar Shaders and I measured every number here on one machine, an Apple M4 Max with 48 GB of unified memory, with a GPU timer written between the passes. An M1 will be slower and I have no numbers for it. A frame time is only comparable at the resolution it was measured at, so each one below names its size. If your lag comes from Iris and a pack rather than from this mod, the last section is for you.

Download free (1.0.0) Modrinth (pending)Minecraft 26.3, Fabric, macOS on Apple silicon. Install guide. Releases and bug reports on GitHub.

Read the frame before you change anything

Two overlays tell you where the time goes. Show FPS puts a line in the corner: frames per second and frame time as a mean over the last 120 frames, then the words Rockstar Shaders, or vanilla in amber when the pack is not rendering, and the scale when the world is drawn below the window's resolution. Extended FPS adds the last second's minimum and 1% low, which describes a stutter better than a mean does.

Show pass timings is the one to read. It lists every pass of the pack in GPU milliseconds as a running mean, with a total row, and any pass over 2 ms turns amber. It needs the renderer rebuilt with the timer, so after switching it on the settings screen has to be closed with Done; until then the overlay says passes: timer off. The Metal traces run outside these timers and are not listed. Both switches are on the front page of the settings, which opens on K in a world, and on the Performance and Overlays page.

Where a frame goes

The pose I use for performance work is a bay at sunset, looking down at the water, because water is the most expensive thing the pack draws. At my window, 1706x1966, after the performance pass of 2026-09-19:

PassGPU ms at 1706x1966
Water surface8.7 to 8.9
Terrain G-buffer3.9
Metal shadow and sky trace, outside the timers3.8
Clouds1.9
Volumetric fog1.6
Ray-traced reflection resolve1.4
Caustics1.4
Lighting1.4
Screen-space reflections1.4

The whole frame at that size went from 58.1 ms before the pass to 46.0 to 46.5 ms after it, 17.2 to 21.6 fps. At 1708x960, a window with about half the pixels, the same pose went from 45.7 ms to 34.3 to 35.7 ms, 21.9 to 28.6 fps. Away from water the frame is cheaper; this is the worst case I tune against.

Render scale is the big lever

Render scale renders the world at a fraction of the window's resolution and upscales it under a sharp menu, with a nine-tap Catmull-Rom filter and a light sharpen. The steps are 50%, 58%, 67%, 75%, 83%, 92% and 100%, and a change applies at once. 75% is the default because it draws about half the pixels and, at 1706x1966, it took the frame from 44.98 ms to 33.95 ms, 22 to 29.5 fps: 11 ms from one setting, where each quality knob one step down was worth a few tenths of a millisecond at the same pose. It is the first thing to move and the last thing to give back.

Pixels are the cost because the expensive passes, the water, the lighting, the reflections and the fog, run once per pixel, and fewer pixels means less of each. The menus, the text and the overlays are drawn at the window's full size, so they stay sharp at any scale.

Target FPS moves the scale for you

Target FPS is a governor. While the median frame time over a settled window misses the rate you chose, it steps the render scale down; when there is room, it steps it back up, never above the Render scale you set. The choices are Off, 20, 30, 45, 60, 90 and 120. The default is 20, which is a floor for slower computers and never engages on a fast one.

It has rules so it cannot blur the picture for nothing. A step that bought less than 4% is undone. It waits 15 seconds after entering a world before it judges anything, and after a failed step it backs off for 30 seconds. So a slow CPU, which no render scale can fix, does not drag the scale down. To see exactly the scale you set, leave it at 20 or Off.

What each water setting is worth

Water is the biggest pass, so its knobs are the ones worth knowing. Same pose, 1706x1966, water pass baseline 8.67 to 8.84 ms:

ChangeWater passSaved
Advanced key oceanTriplets set to 07.27 ms1.4 to 1.6 ms
Screen reflections off7.81 ms0.9 to 1.0 ms
Detail rungs 08.02 ms0.7 to 0.8 ms
Wave octaves 48.20 ms0.5 to 0.6 ms
Parallax steps 08.40 ms0.3 to 0.4 ms

The ripple simulation manages itself: its passes cost 3.4 to 4.0 ms a frame while integrating a flat surface, so the field sleeps 18 seconds after its last disturbance and then costs 0.00 ms, 8.5% of the frame at that pose. What each setting does to the picture is on the Water page and in how the water engine works.

Ray tracing is not the cost

The instinct from other packs is to turn the ray tracing off first. Here that makes the frame slower. At the sunset bay pose, in one session at one window size so the four numbers compare with each other and not with the table above, everything on was 27.9 ms. Ray-traced shadows off: 29.7 ms. Ray-traced reflections off: 29.3 ms. Ray-traced fog off: 29.3 ms. All three off: 29.5 ms. Every fallback, the shadow cascades standing in for the trace, the screen-space reflection on its own, the untraced fog, costs more than the trace it replaces. The three switches are restart-only, on the Lighting and Shadows and Reflections and Materials pages. Leave them on.

The smaller levers

These are measured and real, and they are small.

  • Smart leaf culling, on by default, skips leaf faces buried three leaves deep in a canopy. At a leaf wall the G-buffer pass was 6.25 ms with it on against 6.66 to 7.14 ms with it off. Changing it re-meshes every loaded chunk at once.
  • Shadow resolution 2048 instead of 4096 is 0.39 ms against 0.50 ms on the noon scene, and a quarter of the atlas memory and fill. Restart to apply.
  • The quality sliders, Cloud march steps, Fog steps, AO steps, Contact shadow steps, Screen trace steps and DoF taps, apply when the page is closed with Done, which rebuilds the pipelines in about a second. Move one at a time with the pass timings up, and expect tenths of a millisecond, not whole ones.
  • Vanilla's Render Distance sits on the front page of the settings next to the Extended horizon settings. I have not published a cost for the horizon, so try it with the pass timings up.

What I have not measured, and what does not help

There is no Low, Medium, High, Ultra chooser on any screen. The shipped defaults are the Ultra set, and the way down is the sliders above, not a profile. The only per-profile numbers I have are from before Ultra became the shipped set, so I do not publish them; the profiles page explains what the four names still mean in the config file.

MetalFX upscaling is present, experimental and off by default. It was faster in the numbers, 9.23 ms down to 7.19 to 7.58 ms at 67% scale, but a panning shot kept 31% of the detail of native, so I do not recommend it; Render scale is the supported way to trade pixels for time. The offline bench of the pack's own passes, 2.58 ms at 1280x720, 4.14 at 1920x1080, 6.54 at 2560x1440 and 12.90 at 3840x2160, predates the water engine's growth and leaves out the water surface and the game's own geometry, so treat it as a lower bound.

If the lag is from Iris and a pack

Most searches for shader lag on a Mac are about Iris and an OptiFine-format pack, and that is a different problem. Iris's own driver support page, read on 2026-09-19, lists all drivers on Apple Silicon Macs as not supported, with known crash issues on common shaders, and Intel Macs as deprecated, and it says plainly that Iris depends on OpenGL, which Apple has deprecated. No setting fixes that. Rockstar Shaders does not use OpenGL: it runs on Minecraft 26.3's own Vulkan backend, through MoltenVK on a Mac, with a Metal side-car for the tracing, which is why it asks for the Vulkan switch at the title screen. The Iris on a Mac page has the longer version, and install has the setup.

Download free (1.0.0) Modrinth (pending)Minecraft 26.3, Fabric, macOS on Apple silicon. Install guide. Releases and bug reports on GitHub.

About the author. Ryleigh Newman wrote Rockstar Shaders and every page on this site. Facts about other packs and programs come from their own sites, with the date they were read. More about the project.

Related

Sources

Questions

Why is Minecraft with shaders slow on my Mac?

If it is Iris and a pack: Iris lists all drivers on Apple Silicon Macs as not supported and says it depends on OpenGL, which Apple has deprecated, read on 2026-09-19. If it is Rockstar Shaders: the frame is mostly pixels. Render scale 75% at 1706x1966 saved 11 ms on my M4 Max, and the water surface is the biggest single pass at 8.7 to 8.9 ms.

Should I turn ray tracing off for more FPS?

No. At the sunset bay pose, everything on was 27.9 ms; ray-traced shadows off 29.7, reflections off 29.3, fog off 29.3, all three off 29.5. Each fallback costs more than the trace it replaces.

What FPS will I get?

I cannot promise one. On the one machine measured, an M4 Max with 48 GB, the sunset bay looking down at water ran 34.3 to 35.7 ms at 1708x960 and 46.0 to 46.5 ms at 1706x1966, 21.9 to 28.6 fps and 17.2 to 21.6 fps. Away from water it is cheaper. An M1 will be slower; I have no numbers for M1, M2 or M3.

Which profile should I pick for performance?

There is no profile chooser on screen. The shipped defaults are the Ultra set. Use Render scale first, then Target FPS, then the water sliders, with Show pass timings up so you can see what each change bought.

Does MetalFX upscaling help?

It is present, experimental and off by default. It was faster in the numbers but a panning shot kept 31% of native detail, so I do not recommend it. Render scale is the supported way to trade pixels for time.

How do I see what each pass costs?

Turn on Show pass timings and close the settings with Done so the renderer rebuilds with the timer. The overlay lists every pass in GPU milliseconds with a total row; anything over 2 ms is amber. The Metal traces run outside the timers and are not listed.