Files
onion-mc/analysis/client-perf/data/jarscan-report.md
T
logan 611a1a5952 docs: client-perf analysis, bench harness and work journal
Everything the next agent needs to run the Phase 2 optimisation loop on a
machine that can launch the client:

- analysis/client-perf/: LEVERS (ranked levers + corrections), BENCH-MATRIX
  (world, scenes, config IDs, blocks B0-B14 with decision rules),
  PLAYER-TUNING, SPAWN-TUNING, research briefs, the jar scanner and its
  output, observed default configs, and proposed-configs/ (build.py
  generates tiers and bench variants and fails on unknown keys;
  apply_variant.py applies a variant and merges options.txt).
- analysis/client-perf/bench/onion-bench/: bench-world datapack (scene
  teleports, Create grid, mob pen, sound storm, 120 s teleport tour).
- analysis/audit/: the static recipe/dependency audit, including gen_fixes.py,
  which generates the shipped Paxi datapack and was never tracked.
- phase0/: per-machine measurement harness (Steam Deck, 7700K/1060,
  6700K/1080 Ti).
- .pi/journal.md: running work log; read it first.

All of it is packwizignored, so nothing here ships to players.
2026-10-14 18:15:32 -04:00

21 KiB
Raw Blame History

Static client-perf surface scan

Generated by scripts/jarscan.py + scripts/report.py from the exact jars pinned in mods/*.pw.toml. All numbers are static (what the jar contains), not runtime cost. They tell us where cost can come from.

  • frame mixins = mixin classes whose @Mixin target is on a per-frame path (LevelRenderer, GameRenderer, entity/item/block-entity renderers, Gui, ParticleEngine, blaze3d, Sodium, Iris, Camera).
  • risky = @Overwrite/@Redirect injectors inside those frame mixins (replace vanilla logic; most likely to conflict with Sodium/Iris/ModernFix).
  • frame events = NeoForge/Architectury/Fabric per-frame event types referenced by the mod’s classes.
  • atlas sprites = block+item textures in 16×16-sprite equivalents (what lands in blocks.png-atlas, mipmapped, in VRAM).

Pack totals (client-loaded mods)

metric value
client-loaded mods 209 (server-only: 3)
mixin classes (client-loaded) 3883
frame-path mixin classes 951
frame-path @Overwrite/@Redirect 121
mods hooking ≥1 per-frame event 58
mods hooking client/player/entity tick events 79
block+item textures 25277 files, 15.4 Mpx ≈ 60138 16×16 sprites
implied blocks atlas (lower bound, + vanilla) ≥ 4096×4096 ; ×4 B ×1.33 mip ≈ 85 MiB VRAM at the square size
animated block/item textures 312
entity textures 37.7 Mpx
models / blockstates 69442 / 16361
entity types (lang proxy) 603
blocks / items (lang proxy) 15422 / 5178
geckolib geo+animation files 264
vanilla core-shader overrides sable, sodium, xaeros-minimap, xaeros-world-map
post-effect files alexs-caves-(unofficial-port)(7), charta(1), citadel-(1.21.1-port)(1), exposure(19), lodestonelib(2), playerrevive(1), shatterbyte-lib(1)

Per-frame mixin surface

mod side frame mixins risky all mixins hottest targets
sable both 127 29 496 LevelRenderer×23, GameRenderer×12, Camera×5, RenderTarget×4, EntityRenderDispatcher×3, EntityRenderer×3
iris client 114 28 171 LevelRenderer×11, GlStateManager×7, GameRenderer×4, RenderType×4, BufferBuilder×3, DebugScreenOverlay×3
controlify client 84 0 143 AbstractSelectionList×4, AbstractContainerScreen×3, AbstractWidget×3, CreativeModeInventoryScreen×3, Gui×3, Screen×3
sodium client 48 28 111 LevelRenderer×5, ItemRenderer×3, BufferBuilder×2, DebugScreenOverlay×2, RenderChunkRegion×2, RenderSystem×2
entity-model-features client 42 0 64 CustomHeadLayer×2, EntityModelSet×2, GameRenderer×2, ModelPart$Cube×2, ParrotOnShoulderLayer×2, ArrowRenderer×1
create both 30 0 101 LevelRenderer×6, GameRenderer×2, HumanoidArmorLayer×2, PoseStack×2, RenderSystem×2, Screen×2
entitytexturefeatures client 27 0 60 BlockEntityRenderDispatcher×1, BufferBuilder×1, ElytraLayer×1, EndCrystalRenderer×1, EnderDragonRenderer×1, EntityRenderDispatcher×1
subtle-effects both 26 0 118 ParticleEngine×3, GameRenderer×2, BubbleColumnUpParticle×1, BubbleColumnUpParticle$Provider×1, BubbleParticle×1, BubbleParticle$Provider×1
immediatelyfast client 25 11 39 GameRenderer×3, DebugScreenOverlay×2, GuiGraphics×2, AbstractContainerScreen×1, BufferUploader×1, ChatScreen×1
modernfix both 21 4 156 CreateWorldScreen×2, ItemRenderer×2, LivingEntityRenderer×2, ConnectScreen×1, CubeDefinition×1, EnderDragonRenderer×1
create-aeronautics both 20 0 134 LevelRenderer×5, CreativeModeInventoryScreen×2, AbstractContainerScreen×1, CompassItemPropertyFunction×1, CreateWorldScreen×1, CreateWorldScreen$WorldTab×1
emotecraft both 18 2 29 LivingEntityRenderer×2, ModelPart×2, PlayerModel×2, Camera×1, CapeLayer×1, ElytraLayer×1
playeranimator both 16 2 17 LivingEntityRenderer×2, PlayerModel×2, Camera×1, CapeLayer×1, ElytraLayer×1, EntityRenderDispatcher×1
adorable-hamster-pets both 12 0 38 Gui×2, LivingEntityRenderer×2, AbstractContainerScreen×1, BlockEntityRenderDispatcher×1, EntityRenderDispatcher×1, ItemInHandLayer×1
exposure both 12 1 41 DebugScreenOverlay×2, AnvilScreen×1, Camera×1, GameRenderer×1, Gui×1, HumanoidModel×1
icys-better-horses both 12 0 56 AbstractContainerScreen×2, HorseModel×2, LivingEntityRenderer×2, AbstractHorseRenderer×1, Camera×1, GameRenderer×1
moonlight both 12 0 82 AgeableListModel×1, CartographyTableScreen×1, GameRenderer×1, HumanoidModel×1, ItemInHandRenderer×1, Lighting×1
3dskinlayers client 11 0 23 CustomHeadLayer×1, Deadmau5EarsLayer×1, GuiGraphics×1, ModelPart×1, NativeImage×1, PlayerModel×1
alexs-caves-(unofficial-port) both 11 0 61 HumanoidModel×3, Camera×1, GameRenderer×1, HumanoidArmorLayer×1, ItemFrameRenderer×1, LevelRenderer×1
doggy-talents-next both 11 0 17 Camera×2, CubeDefinition×1, CubeDeformation×1, Gui×1, LayerDefinition×1, LivingEntityRenderer×1
lambdynamiclights client 11 0 42 LevelRenderer×3, DebugScreenOverlay×1, EntityRenderer×1, GameRenderer×1, Particle×1, ParticleEngine×1
lodestonelib both 10 3 15 AbstractContainerScreen×1, CreativeModeInventoryScreen×1, EffectProgram×1, GameRenderer×1, Gui×1, GuiGraphics×1
iceberg both 9 0 22 GuiGraphics×2, HumanoidArmorLayer×2, TooltipRenderUtil×2, ClientTextTooltip×1, Gui×1, Screen×1
shatterbyte-lib both 9 1 11 GameRenderer×3, AbstractWidget×2, AbstractContainerScreen×1, Gui×1, ParticleEngine×1, Screen×1
ssrd both 9 1 24 BlockEntityRenderer×1, EntityRenderDispatcher×1, Frustum×1, GameRenderer×1, LevelRenderer×1, RenderSectionManager×1
what-are-they-up-to both 9 1 11 Screen×2, GameRenderer×1, Gui×1, NativeImage×1, ParticleEngine×1, PlayerModel×1
xaeros-minimap both 9 0 30 AbstractButton×1, AgeableListModel×1, EnderDragonRenderer$DragonModel×1, HierarchicalModel×1, ListModel×1, LlamaModel×1
entityculling client 8 0 19 BlockEntityRenderDispatcher×1, BlockEntityRenderer×1, DebugScreenOverlay×1, EntityRenderer×1, GuiGraphics×1, LevelRenderer×1
fusion-connected-textures client 8 0 33 EntityModelSet×1, EntityRenderDispatcher×1, EntityRenderer×1, EntityRenderers×1, ItemRenderer×1, RenderChunkRegion×1
sound client 8 0 33 AbstractContainerScreen×1, ChatComponent×1, ChatScreen×1, CreativeModeInventoryScreen×1, CreativeModeInventoryScreen$ItemPickerMenu×1, EditBox×1
ars-nouveau both 7 1 46 LevelRenderer×2, AbstractSliderButton×1, ChatComponent×1, EntityRenderer×1, GameRenderer×1, Screen×1
chalk-mod both 7 0 16 ClientTooltipComponent×2, DebugScreenOverlay×2, AbstractContainerScreen×1, EntityRenderer×1, LevelRenderer×1
distanthorizons both 7 2 43 GlFramebuffer×2, DebugScreenOverlay×1, FogRenderer×1, LevelRenderer×1, LightTexture×1, OptionsScreen×1
fwa client 7 1 12 BlockRenderer×2, BlockEntityRenderDispatcher×1, LevelRenderer×1, RenderChunkRegion×1, ShadowRenderer×1, ShulkerBoxRenderer×1
slice-and-dice both 7 0 20 BufferBuilder×1, GameRenderer×1, ItemRenderer×1, ParticleEngine×1, RenderSystem×1, RenderType×1
artifacts both 6 0 56 PlayerRenderer×3, GameRenderer×1, HumanoidModel×1, LivingEntityRenderer×1
blueprint both 6 0 36 Camera×1, ModelPart×1, PlayerRenderer×1, RabbitRenderer×1, SkinCustomizationScreen×1, WorldOpenFlows×1
clientsort both 6 0 15 AbstractContainerScreen×2, Screen×2, CreativeModeInventoryScreen×1, CreativeModeInventoryScreen$SlotWrapper×1
dungeons_delight both 6 1 29 Gui×2, AbstractContainerScreen×1, EffectRenderingInventoryScreen×1, HumanoidModel×1, LevelRenderer×1
dynamic-fps client 6 0 10 DebugScreenOverlay×1, GameRenderer×1, Gui×1, LoadingOverlay×1, ToastComponent×1, Window×1

Per-frame event subscribers

mod side frame events tick events
puzzles-lib both ComputeFovModifierEvent, CustomizeGuiOverlayEvent, RenderBlockScreenEffectEvent, RenderFrameEvent, RenderGuiEvent, RenderGuiLayerEvent, RenderHandEvent, RenderHighlightEvent, RenderLevelStageEvent, RenderLivingEvent, RenderNameTagEvent, RenderPlayerEvent, RenderTooltipEvent, ViewportEvent ClientTickEvent, EntityTickEvent, LevelTickEvent, PlayerTickEvent
create both CustomizeGuiOverlayEvent, RenderArmEvent, RenderFrameEvent, RenderGuiLayerEvent, RenderHandEvent, RenderHighlightEvent, RenderLevelStageEvent, RenderPlayerEvent, RenderTooltipEvent, ViewportEvent ClientTickEvent, EntityTickEvent, LevelTickEvent, PlayerTickEvent
alexs-caves-(unofficial-port) both ComputeFovModifierEvent, CustomizeGuiOverlayEvent, RenderBlockScreenEffectEvent, RenderGuiLayerEvent, RenderHandEvent, RenderLevelStageEvent, RenderLivingEvent, RenderNameTagEvent, ViewportEvent ClientTickEvent, EntityTickEvent, PlayerTickEvent
mowzies-mobs both ComputeFovModifierEvent, CustomizeGuiOverlayEvent, RenderFrameEvent, RenderGuiLayerEvent, RenderHandEvent, RenderLevelStageEvent, RenderLivingEvent, RenderNameTagEvent, ViewportEvent EntityTickEvent, LevelTickEvent, PlayerTickEvent
the-twilight-forest both ComputeFovModifierEvent, CustomizeGuiOverlayEvent, RenderArmEvent, RenderFrameEvent, RenderGuiLayerEvent, RenderHighlightEvent, RenderLevelStageEvent, RenderLivingEvent, ViewportEvent ClientTickEvent, EntityTickEvent, PlayerTickEvent
ars-nouveau both RenderFrameEvent, RenderGuiLayerEvent, RenderHandEvent, RenderHighlightEvent, RenderLevelStageEvent, RenderTooltipEvent ClientTickEvent, LevelTickEvent, PlayerTickEvent
balm both ComputeFovModifierEvent, GuiDrawEvent, RenderGuiEvent, RenderGuiLayerEvent, RenderHandEvent, RenderHighlightEvent ClientTickEvent, ClientTickHandler, EntityTickEvent, LevelTickEvent, PlayerTickEvent
alexs-mobs(1.21.1) both RenderGuiLayerEvent, RenderHandEvent, RenderLevelStageEvent, RenderLivingEvent, ViewportEvent ClientTickEvent, EntityTickEvent
xaeros-minimap both CustomizeGuiOverlayEvent, RenderFrameEvent, RenderGuiEvent, RenderGuiLayerEvent, RenderLevelStageEvent ClientTickEvent, PlayerTickEvent
architectury-api both ClientGuiEvent, CustomizeGuiOverlayEvent, RenderGuiEvent, RenderTooltipEvent ClientTickEvent, LevelTickEvent, PlayerTickEvent
doggy-talents-next both RenderArmEvent, RenderLevelStageEvent, RenderPlayerEvent, ViewportEvent ClientTickEvent
modernfix both CustomizeGuiOverlayEvent, RenderFrameEvent, RenderLivingEvent, RenderPlayerEvent ClientTickEvent
adorable-hamster-pets both ClientGuiEvent, RenderLevelStageEvent, WorldRenderEvents ClientTickEvent
apotheosis both RenderHighlightEvent, RenderLevelStageEvent, RenderTooltipEvent ClientTickEvent, EntityTickEvent
citadel-(1.21.1-port) both RenderLevelStageEvent, RenderPlayerEvent, RenderTooltipEvent ClientTickEvent, EntityTickEvent
lodestonelib both RenderFrameEvent, RenderLevelStageEvent, ViewportEvent ClientTickEvent, LevelTickEvent
slice-and-dice both RenderGuiLayerEvent, RenderLevelStageEvent, RenderTooltipEvent ClientTickEvent, LevelTickEvent
alltheleaks both CustomizeGuiOverlayEvent, RenderLivingEvent ClientTickEvent, EntityTickEvent, LevelTickEvent
appleskin both CustomizeGuiOverlayEvent, RenderTooltipEvent ClientTickEvent, EntityTickEvent
arsdelight both RenderLevelStageEvent, RenderLivingEvent ClientTickEvent, PlayerTickEvent
artifacts both RenderArmEvent, RenderLivingEvent ClientTickEvent, EntityTickEvent
barbeques-delight-forge both RenderLevelStageEvent, RenderLivingEvent ClientTickEvent, PlayerTickEvent
create-aeronautics both RenderGuiEvent, RenderLevelStageEvent ClientTickEvent, LevelTickEvent
creativecore both RenderFrameEvent, RenderGuiEvent ClientTickEvent, LevelTickEvent
distanthorizons both RenderLevelStageEvent, WorldRenderEvents
exposure both RenderGuiEvent, RenderLevelStageEvent
extradelight both ComputeFovModifierEvent, ViewportEvent
fruits-delight both RenderLevelStageEvent, RenderLivingEvent ClientTickEvent, PlayerTickEvent
jade both CustomizeGuiOverlayEvent, RenderGuiEvent ClientTickEvent
modonomicon both RenderFrameEvent, RenderLevelStageEvent ClientTickEvent
patchouli both RenderFrameEvent, RenderTooltipEvent ClientTickEvent
playerrevive both RenderFrameEvent, RenderGuiLayerEvent ClientTickEvent, PlayerTickEvent
sable both RenderLevelStageEvent, ViewportEvent ClientTickEvent
sophisticated-core both RenderLevelStageEvent, RenderTooltipEvent ClientTickEvent, LevelTickEvent
twilight-delight both RenderLevelStageEvent, RenderLivingEvent ClientTickEvent, PlayerTickEvent
akashic-tome both RenderGuiLayerEvent
comforts both RenderPlayerEvent ClientTickEvent
dynamic-fps client RenderGuiEvent ClientTickEvent
ferrite-core both RenderLevelStageEvent
ftb-library-forge both ClientGuiEvent ClientTickEvent
fwa client RenderLevelStageEvent
iceberg both RenderTooltipEvent
iris client RenderLevelStageEvent
jei both RenderTooltipEvent ClientTickEvent
keybind-atlas client RenderGuiEvent
legendary-tooltips client RenderTooltipEvent
minopp both ComputeFovModifierEvent ClientTickEvent
mru both HudRenderCallback
music-disc-maker both RenderLevelStageEvent ClientTickEvent
quick-skin both ClientGuiEvent ClientTickEvent
rechiseled both RenderLevelStageEvent
resourceful-lib both RenderHighlightEvent
shatterbyte-lib both RenderLevelStageEvent ClientTickEvent
sophisticated-backpacks both RenderLevelStageEvent ClientTickEvent, EntityTickEvent, LevelTickEvent
sophisticated-storage both RenderHighlightEvent ClientTickEvent, LevelTickEvent
subtle-effects both RenderLevelStageEvent ClientTickEvent
xaeros-world-map both RenderFrameEvent ClientTickEvent, PlayerTickEvent
zume client ViewportEvent

Block/item atlas pressure

mod side sprites (16² eq.) files animated % of pack models blockstates
handcrafted both 16,359 976 0 27.2 12394 267
chipped both 12,754 12299 30 21.2 16832 6981
rechiseled both 5,680 657 0 9.4 13855 3627
create both 4,012 1083 4 6.7 2684 643
ars-nouveau both 3,778 547 29 6.3 870 200
too-many-bows both 3,322 166 0 5.5 150 0
extradelight both 1,847 1847 0 3.1 3759 822
adorable-hamster-pets both 1,051 121 0 1.7 82 10
doggy-talents-next both 981 192 0 1.6 164 6
the-twilight-forest both 889 827 44 1.5 3107 523
create-aeronautics both 740 261 1 1.2 605 141
alexs-caves-(unofficial-port) both 717 711 27 1.2 1284 354
macaws-doors both 702 702 0 1.2 1394 246
dungeons_delight both 450 327 17 0.7 416 65
wings-of-fire both 417 57 2 0.7 53 7
alexs-mobs(1.21.1) both 410 254 13 0.7 438 37
tiny-dragons both 378 9 1 0.6 25 3
rustic-delight both 363 348 0 0.6 423 55
sophisticated-storage both 349 271 0 0.6 299 59
farmers-delight both 348 348 2 0.6 369 132
immersive-paintings both 341 89 0 0.6 4 0
fruits-delight both 254 254 0 0.4 649 200
items-displayed-forge both 243 129 0 0.4 315 109
twilight-delight both 233 221 11 0.4 356 95
frights-delight both 217 172 69 0.4 271 43
mowzies-mobs both 174 70 1 0.3 96 9
veggies-delight both 170 170 0 0.3 178 29
exposure both 166 52 1 0.3 54 8
macaws-windows both 164 164 0 0.3 1887 328
arsdelight both 159 142 0 0.3 165 26

Animated atlas textures (uploaded every tick unless culled by Sodium)

mod side animated
frights-delight both 69
the-twilight-forest both 44
chipped both 30
ars-nouveau both 29
alexs-caves-(unofficial-port) both 27
macaws-lights-and-lamps both 18
dungeons_delight both 17
alexs-mobs(1.21.1) both 13
apotheosis both 12
twilight-delight both 11
moonlight both 10
create-enchantment-industry both 7
create both 4
apothic-enchanting both 3
ends-delight both 2
farmers-delight both 2
macaws-roofs both 2
slice-and-dice both 2
sophisticated-core both 2
wings-of-fire both 2

Entity content (renderer + animation load)

mod side entity types entity tex Mpx geckolib files
alexs-mobs(1.21.1) both 140 7.17 0
alexs-caves-(unofficial-port) both 92 11.45 0
the-twilight-forest both 80 0.95 0
ars-nouveau both 51 0.37 132
aquaculture both 40 0.05 0
mowzies-mobs both 30 0.38 38
critters-and-companions both 17 0.47 60
items-displayed-forge both 17 0.07 0
icys-better-horses both 16 5.37 14
fowlplay both 14 0.09 0
friends-and-foes-forge both 14 0.16 0
fishermans-haven both 11 0.00 0
tiny-dragons both 10 0.00 9
create both 9 0.02 0
adorable-hamster-pets both 7 0.26 4
dungeons_delight both 7 0.05 0
create-aeronautics both 6 0.01 0
pet-cemetery both 6 0.01 0
wings-of-fire both 6 0.00 2
exposure both 5 0.00 0
immersive-paintings both 4 0.00 0
blueprint both 3 0.00 0
doggy-talents-next both 3 10.09 0
charta both 2 0.03 0
handcrafted both 2 0.00 0
jade both 2 0.00 0
lootr both 2 0.00 0
too-many-bows both 2 0.02 0
artifacts both 1 0.10 0
farmers-delight both 1 0.07 0

Shader assets

mod side shader files post effects core overrides
lodestonelib both 59 2 0
alexs-caves-(unofficial-port) both 38 7 0
charta both 31 1 0
xaeros-minimap both 31 0 31
xaeros-world-map both 31 0 31
distanthorizons both 23 0 0
exposure both 21 19 0
what-are-they-up-to both 16 0 0
ars-nouveau both 9 0 0
sodium client 9 0 3
blueprint both 6 0 0
moonlight both 4 0 0
playerrevive both 4 1 0
the-twilight-forest both 4 0 0
apotheosis both 3 0 0
citadel-(1.21.1-port) both 3 1 0
create both 3 0 0
sable both 3 0 3
shatterbyte-lib both 3 1 0
ssrd both 1 0 0

Sound payload

mod side ogg MB
ambientsounds client 85.5
alexs-caves-(unofficial-port) both 68.8
mowzies-mobs both 33.2
create-aeronautics both 26.2
alexs-mobs(1.21.1) both 20.3
the-twilight-forest both 17.3
adorable-hamster-pets both 15.2
sound client 7.9
playerrevive both 5.1
dungeons_delight both 5.1
apothic-enchanting both 4.8
doggy-talents-next both 4.3
ars-nouveau both 4.3
friends-and-foes-forge both 3.9
apotheosis both 3.9

Jar size

mod side MB
ambientsounds client 84.8
alexs-caves-(unofficial-port) both 74.9
mowzies-mobs both 36.0
music-disc-maker both 35.0
create-aeronautics both 33.1
distanthorizons both 28.2
the-twilight-forest both 27.2
alexs-mobs(1.21.1) both 26.6
adorable-hamster-pets both 20.3
ars-nouveau both 20.1
create both 19.1
chipped both 15.0
sable both 13.0
when-dungeons-arise both 11.8
rechiseled both 11.5
doggy-talents-next both 11.3
extradelight both 11.0
sound client 8.7
controlify client 8.0
fragmentum both 7.8

Resource packs / shader packs

  • better-leaves (both): atlas sprites 2,469, entity tex 0.00 Mpx, models 3223, blockstates 871, CEM/EMF files 0, shader files 0
  • complementary-reimagined (both): atlas sprites 0, entity tex 0.00 Mpx, models 0, blockstates 0, CEM/EMF files 0, shader files 0
  • fresh-animations (both): atlas sprites 0, entity tex 0.65 Mpx, models 0, blockstates 0, CEM/EMF files 240, shader files 0
  • fresh-animations-extensions (both): atlas sprites 0, entity tex 0.48 Mpx, models 0, blockstates 0, CEM/EMF files 218, shader files 0
  • makeup-ultra-fast-shaders (both): atlas sprites 0, entity tex 0.00 Mpx, models 0, blockstates 0, CEM/EMF files 0, shader files 0