github suprepupre/wow-optimize v3.7.0
3.7.0

7 hours ago

Changelog

[3.7.0]

Added

  • Rosetta 2 support for macOS (WoWSilicon)

    • Full compatibility via ROSETTA_X87_DISABLE_CACHE=1
    • Safe Lua fast paths avoiding Rosetta crashes
    • Wine/CrossOver JIT cache disable
    • Inline-patched SetThreadIdealProcessor
  • Multithreaded systems for major performance bottlenecks

    • Combat log parser with 4-worker thread pool (auto-disables in raids)
    • Addon dispatcher with 4-worker thread pool
    • Spell prefetching with async loading
    • MPQ prefetching with zone transition prediction
    • Sound prefetching based on spell casts and zone transitions
    • Async quest/achievement data loading
    • Multithreaded nameplate renderer (reduces CPU load in 25-man raids)
  • 27 Lua fast paths with direct C calls

    • string.format: high fast path hit rate
    • All common math and string operations optimized
    • Phase 2 hooks: math.random, math.sqrt, string.rep, string.find (plain mode)
  • Advanced memory management with mimalloc

    • Faster Lua operations
    • Low Fragmentation Heap for all allocations
    • Lua string table pre-sizing to reduce hash resize spikes
  • High-precision timing system

    • QPC-based microsecond precision
    • High cache hit rate
    • Adaptive timer resolution
    • Hardcoded FPS cap raised from 200 to 999

Changed

  • Network stack optimizations

    • TCP_NODELAY for reduced latency
    • TCP_QUICKACK for faster acknowledgments
    • Optimized buffer sizes
    • Low-delay TOS
    • Fast keepalive settings
  • File I/O improvements

    • MPQ memory mapping for instant reads
    • Adaptive 64KB/256KB caching
    • Sequential-scan hints for MPQ access
    • Skip FlushFileBuffers for tracked MPQ handles
  • System call optimizations

    • 512-slot GetModuleHandle cache
    • Fast ASCII string operations
    • 38 kernel-call caches across 8 batches
    • IsBadReadPtr/WritePtr fast path
    • Thread affinity for optimal core pinning
    • Swap present hook for glFinish skip
  • CRT SSE2 fast paths

    • strlen/strcmp/memcmp/memcpy/memset with page-boundary guards
    • memchr/strchr with SEH protection
    • pow() integer fast-path (x^2=x*x, sqrt, etc.)
    • strstr Boyer-Moore-Horspool algorithm

Fixed

  • Alt-tab crash in fullscreen mode (SEH guard implementation)
  • UI scaling issues after alt-tab
  • Window resize handling
  • Keyboard layout switching
  • Hardware cursor stability - identified and disabled problematic caches (GetSystemMetrics, Asset path resolver)

Performance

  • Frame time: Smoother frametimes in addon-heavy gameplay
  • CPU usage: Noticeable reduction in raids
  • Lua operations: Faster with mimalloc allocator
  • Timing cache: High QPC cache hit rate
  • String formatting: High fast path hit rate
  • Zone transitions: Reduced loading stutters
  • Spell cast lag: Reduced via predictive prefetching

Disabled (Stability Issues)

  • GetSystemMetrics cache - breaks hardware cursor with RTSSHooks.dll (found via bisection)
  • Asset path cache - stale mimalloc pointers crash teardown/logout (found via bisection)
  • Unit API fast paths - returns 0 HP
  • GetSpellInfo cache - icon corruption + relog crash
  • Phase 2 writes (rawset/insert/remove/next) - direct RawTValue* hangs
  • Phase 2 reads (rawget/concat/unpack) - direct RawTValue* hangs
  • ipairs factory hook - closure creation crashes (architectural mismatch)
  • Deferred field updates - UI/texture flickering (immediate-mode rendering)
  • GetModuleFileName cache - conflicts with OBS hook chain
  • CRT mem fastpaths - VA exhaustion (dungeon finder crash at 2.4GB)
  • Object visibility cache - stale object pointers, no synchronization
  • table.sort fast path - Lua table corruption (0x851E01 AV)
  • string.gsub fast path - Lua string corruption
  • Lua bytecode cache - WoW modified bytecode incompatible
  • Frame throttle - MoveAnything position corruption (race conditions)
  • Async texture loading - loading screen regression
  • Model async workers - loading screen regression

Testing Credits

Massive thanks to the stability testing team:
Morbent, Billy Hoyle, tuan, NoGoodLife, feh_dois, David (_oldq), UNOB, DarkRockDemon, Raymond, Vandal, Mantork, Falcon, Muus

Every crash report, every bisection test, every "hey this broke my addon" message directly shaped this release.


[3.6.1] - Previous Release

See GitHub releases for full history.

Don't miss a new wow-optimize release

NewReleases is sending notifications on new releases.