Commit Graph

  • a7fe79c668 minimapicons: replace quest available icon with pfQuest-derived grayscale version MarcelineVQ 2026-03-24 17:01:40 -07:00
  • 7b1f13b138 docs: update clickthrough and minimapicons descriptions, add Find Fish tracking, remove /tracking slash command MarcelineVQ 2026-03-24 15:22:18 -07:00
  • 80a7cdea3f inflate: thread-local libdeflate with gnu ABI — 2.2x speedup, 100% coverage MarcelineVQ 2026-03-24 14:57:28 -07:00
  • b612e6f953 inflate: fair timing comparison — 2.4x speedup confirmed MarcelineVQ 2026-03-24 04:41:09 -07:00
  • 21ac8df11e inflate: research doc, saved-input fix for buffer modification bug MarcelineVQ 2026-03-24 04:20:11 -07:00
  • 2b11ae5cf1 inflate: logging reveals 100% zlib (type 0x02), standard 78 9C header MarcelineVQ 2026-03-24 03:49:44 -07:00
  • 59ef452f22 perf: libdeflate inflate timing hook — runs both, compares results MarcelineVQ 2026-03-24 03:01:15 -07:00
  • fb27ff54a0 perf: vendor libdeflate for fast inflate replacement MarcelineVQ 2026-03-24 02:27:51 -07:00
  • 62bcf11d58 perf: performance module on by default, includes silicon patches MarcelineVQ 2026-03-24 01:24:42 -07:00
  • 3b48b500ec perf: new 'performance' module — zero-overhead production SSE hooks MarcelineVQ 2026-03-24 01:21:10 -07:00
  • 2f0e8a8bc0 fix: particle color byte masking, add reference version MarcelineVQ 2026-03-24 01:08:01 -07:00
  • 112246e687 perf: make all verified optimizations permanent, remove A/B toggles MarcelineVQ 2026-03-24 00:44:18 -07:00
  • 3d872fdb1e spritequad: recreation + analysis (disabled, no improvement) MarcelineVQ 2026-03-24 00:36:37 -07:00
  • 1046c0a4e3 particle: WIP setupParticleRendering recreation (disabled) MarcelineVQ 2026-03-24 00:25:12 -07:00
  • a73b5273fd research: Ghidra decompilation of SetupParticleRendering (326 lines) MarcelineVQ 2026-03-23 22:50:49 -07:00
  • 5373686bd4 particle: V4 vertex store, inline for unroll — ~42% total reduction MarcelineVQ 2026-03-23 22:47:50 -07:00
  • 379fcb62eb particle: contiguous vertex writes, skip normals, stride logging MarcelineVQ 2026-03-23 22:41:16 -07:00
  • 0d994db4b3 particle: VBState all paths, cached setupRender, @mulAdd — ~25% speedup MarcelineVQ 2026-03-23 22:29:12 -07:00
  • 1dc1350645 particle: inline calcColor + mat*vec3, VBState caching — ~20% speedup MarcelineVQ 2026-03-23 22:22:31 -07:00
  • 574f96f661 particle: faithful RenderParticleSprites recreation, A/B verified MarcelineVQ 2026-03-23 22:12:17 -07:00
  • d205693dbb particle: Ghidra decompilations, particle_sse.zig scaffold, bench MarcelineVQ 2026-03-23 21:56:57 -07:00
  • fec9ac9952 research: particle system SSE optimization analysis MarcelineVQ 2026-03-23 21:23:19 -07:00
  • 4b5fcd6fa6 perf: glyph cache A/B testing, fast hash, frustumCull rcpss+cvtss2si MarcelineVQ 2026-03-23 21:15:15 -07:00
  • 0576a06ef0 fix: Zig operator precedence bugs in silicon SSE functions MarcelineVQ 2026-03-23 20:57:19 -07:00
  • 035355b757 perf: FrustumCullBoundingBox SSE replacement, 1.6x speedup MarcelineVQ 2026-03-23 20:46:28 -07:00
  • 7819d6d914 perf: findInterpIdx dedup, processLinkedListCollision SSE, permanent t44 MarcelineVQ 2026-03-23 20:27:26 -07:00
  • b0b70a744e dpslog: queued log writer, raid roster fix, shutdown hook, minimap icon fixes MarcelineVQ 2026-03-20 15:03:04 -07:00
  • f70bffef45 dpslog: WotLK combat log file writer, null GUID handling, unique chat handlers MarcelineVQ 2026-03-19 17:05:24 -07:00
  • 7c64660c81 dpslog: damage shield spell ID, unique chat handlers MarcelineVQ 2026-03-19 14:37:08 -07:00
  • 89f9936fa4 dpslog: lazy resolution, aura caster tracking, creature names, crash fixes MarcelineVQ 2026-03-19 13:55:48 -07:00
  • 60ee3ae1d1 dpslog: fix handler table swaps not surviving relog MarcelineVQ 2026-03-18 18:43:40 -07:00
  • 34bb70dc8b dpslog: single CombatLogGetCurrentEventInfo call per event MarcelineVQ 2026-03-18 17:47:53 -07:00
  • d84f723539 dpslog: handler table swaps, CombatLogGetCurrentEventInfo, unit flags, boolean fix MarcelineVQ 2026-03-18 16:55:27 -07:00
  • fc762ac200 dpslog: CLEU rename, DPSMate absorb pipeline, WSBT adapter, module version API MarcelineVQ 2026-03-18 14:20:16 -07:00
  • 86da3bcc03 dpslog: DPSMate CLEU adapter with per-combat A/B profiling MarcelineVQ 2026-03-18 01:12:04 -07:00
  • d52d4bc661 docs: add DPSLog to DLL_README and release notes MarcelineVQ 2026-03-18 00:16:57 -07:00
  • 56f5c0405d dpslog: WotLK CLEU parity — overkill, overheal, spell names, unit names, GetSpellInfo MarcelineVQ 2026-03-18 00:08:42 -07:00
  • 76f0691540 dpslog: fix DAMAGE_SPLIT aura offset (0x178->0x16C for client Spell.dbc), fix SPELL_EXTRA_ATTACKS count, DEFLECT note, EXHAUSTED note MarcelineVQ 2026-03-17 16:02:39 -07:00
  • aadd467976 dpslog: SPELL_EXTRA_ATTACKS now includes count (EDX was the count all along, not unused) MarcelineVQ 2026-03-17 15:18:21 -07:00
  • 2ad6ed380e dpslog addon: remove SWING_MISSED DEFLECT (melee can't deflect), add SPELL_MISSED DEFLECT (dead in vanilla server, kept for protocol completeness) MarcelineVQ 2026-03-17 15:06:06 -07:00
  • 7089ffa399 dpslog addon: variant-expanded tracker checklist (67 entries) — miss types, crit/glancing/crushing, env types, aura BUFF/DEBUFF, power types MarcelineVQ 2026-03-17 15:01:51 -07:00
  • 8bd82aeea7 dpslog: SPELL_CAST_FAILED for other units via SMSG_SPELL_FAILED_OTHER (0x6E75F0); addon tracks DAMAGE_SPLIT, SPELL_DISPEL_FAILED, UNIT_DESTROYED (37 subevents) MarcelineVQ 2026-03-17 14:57:22 -07:00
  • 3eff6928b9 dpslog: UNIT_DESTROYED for totems (creature type 11 via name cache), DAMAGE_SPLIT, SPELL_DISPEL_FAILED MarcelineVQ 2026-03-17 14:39:42 -07:00
  • fec7387148 dpslog: add DAMAGE_SPLIT (Soul Link/BoSac via spell DB aura check) and SPELL_DISPEL_FAILED (hook ProcessMultipleSpellInterrupts 0x628C20) MarcelineVQ 2026-03-17 14:27:31 -07:00
  • 10bd922cc3 silicon: fix CC mismatches (normalizeVec3InPlace TC, packParticleColor TC, addVec3ToAccumulator remove phantom scale param, revert classifyPointFrustum/testOBBFrustum to TC); runtime JMP address resolution MarcelineVQ 2026-03-17 13:33:51 -07:00
  • dc37042e6a silicon: naked asm for transpose/setAlpha/addColor/normalize, remove vec3Dot/distPlane/insideBounds from patches, direct patch transpose (7cy, 3.7x) MarcelineVQ 2026-03-17 03:52:50 -07:00
  • 3dfa559eac silicon: direct byte patch for ftol, JMP patches for all others, removed compare mode MarcelineVQ 2026-03-17 03:20:59 -07:00
  • 4152d1dc78 silicon: JMP patch infrastructure + native CC for all functions, no naked asm except ftol MarcelineVQ 2026-03-17 03:12:28 -07:00
  • 6140a3a333 silicon_sse: native calling conventions (thiscall/fastcall/stdcall) for all functions, ready for JMP patching MarcelineVQ 2026-03-17 02:51:50 -07:00
  • 48e542dcf4 silicon_sse: packParticleColor 26cy->16cy (6.3x) via packed V4 round+convert; checkBoxLineIntersect branchless @min/@max cleanup; all tasks complete MarcelineVQ 2026-03-17 02:31:01 -07:00
  • 741d44c973 silicon_sse: FSINCOS tested (slower), normalizeVec3/translateBoundingVol/createRotMat3x4 documented at optimum MarcelineVQ 2026-03-17 02:24:56 -07:00
  • 350cd93162 silicon_sse: normalizeVec3InPlace + testSphereFrustum at optimum, documented attempts MarcelineVQ 2026-03-17 02:06:08 -07:00
  • d1c3c4654f silicon_sse: batched testOBBFrustum 79cy->43cy (2.3x), 4-corner V4 dots + branchless mask MarcelineVQ 2026-03-17 01:49:37 -07:00
  • 9715e32ed7 silicon_sse: mulMat3x4InPlace eliminate tmp copy + preload b (1.7x -> 1.8x) MarcelineVQ 2026-03-17 01:47:13 -07:00
  • 9f2fa5213a bench: best-of-5 for all silicon functions; silicon_sse: V4 column mulMat3x4/InPlace (1.8x/1.7x) MarcelineVQ 2026-03-17 01:43:16 -07:00
  • 662c854376 silicon_sse: patch-in-place isPointInsideBounds 6cy->5cy (1.2x), naked vucomiss MarcelineVQ 2026-03-17 01:26:55 -07:00
  • 16f1a073ae silicon_sse: branchless classifyPointFrustum 35cy->30cy (1.8x), revert addToColorAccum MarcelineVQ 2026-03-17 01:17:23 -07:00
  • cb0888e0fa silicon_sse: naked FMA asm for vec3Dot (0.4x->0.8x) and distanceToPlane (0.7x->1.0x) MarcelineVQ 2026-03-17 01:01:07 -07:00
  • 9488fb568c silicon_sse: V4/@mulAdd/@shuffle rewrites for all functions MarcelineVQ 2026-03-17 00:34:12 -07:00
  • bad3126973 build: enable SSE4.1+FMA+AVX for silicon_sse compilation unit MarcelineVQ 2026-03-17 00:27:48 -07:00
  • b27a987355 silicon: FTOL_ONLY debug flag, ftolSSE2 compare mode, h67 disabled MarcelineVQ 2026-03-17 00:22:21 -07:00
  • 8537587df3 silicon: si_ftol SSE3 FISTTP replacement, bench patch-in-place framework MarcelineVQ 2026-03-17 00:22:07 -07:00
  • 61ee4f48e1 bone_sse: f32 callFtol, fastMod conditional subtract for looping anims MarcelineVQ 2026-03-16 17:06:20 -07:00
  • dd43f6aca3 bone_sse: return interp values in registers, hoist runtime constants, value-based local matrix MarcelineVQ 2026-03-16 16:25:26 -07:00
  • d9d2e41eb4 bone_sse: return InterpResult in registers, eliminate store-forward latency MarcelineVQ 2026-03-16 15:37:28 -07:00
  • 0419f39833 bench: 2M iterations, baseline 4176 cycles, SSE 3841 (-8%), parity PASS MarcelineVQ 2026-03-16 15:25:00 -07:00
  • 99b4c8b2d0 bone_sse: f32 findInterpIdx t division, non-inline sections with quota — 3697 cycles (-6%) MarcelineVQ 2026-03-16 14:12:53 -07:00
  • 502fd9ba04 bone_sse: remove align(1) for naturally-aligned game data — 3641 cycles (was 3744) MarcelineVQ 2026-03-16 12:43:51 -07:00
  • 88fec305be bone_sse: aggressive inlining + skip identity init + fused rotateByQuaternion — 3744 cycles (was 4040) MarcelineVQ 2026-03-16 12:41:54 -07:00
  • 22f9e712f4 bench: 100% code path coverage — multi-track ranges, FloatTrack12 mode=0, 9120 bytes parity PASS MarcelineVQ 2026-03-16 12:34:07 -07:00
  • 4776a979c9 bench: 94% code path coverage, 8988 bytes parity check — all interp modes, billboards, particles, crossfade, attachments MarcelineVQ 2026-03-16 12:29:31 -07:00
  • 5baa49d97a bench: fix frame_ctr=0 so section functions execute — 3249 cycles, parity PASS MarcelineVQ 2026-03-16 12:20:22 -07:00
  • 9c215a0bb1 bench: full parity check across all 13 output buffers (8136 bytes), dual BASELINE/SSE MarcelineVQ 2026-03-16 12:12:57 -07:00
  • 4ed5495219 bench: dual BASELINE/SSE with parity check — 2177 vs 2112 cycles, PASS MarcelineVQ 2026-03-16 12:10:51 -07:00
  • 4198a00c26 bench: full path coverage + determinism validation — 2065 cycles/call, PASS MarcelineVQ 2026-03-16 11:57:37 -07:00
  • 75bb38f5af bench: full coverage fixture — 1012 cycles/call (ribbon, particle, attach, billboard, crossfade, clamped, GS, time delta) MarcelineVQ 2026-03-16 11:50:38 -07:00
  • b6ab4ac59f bench: comprehensive fixture exercising all code paths — 636 cycles/call baseline MarcelineVQ 2026-03-16 11:46:16 -07:00
  • f119c15b37 bench: comprehensive transform44 fixture — 578 cycles/call baseline (12 bones + texAnim + colorAnim + wordAnim + boneKF) MarcelineVQ 2026-03-16 11:42:31 -07:00
  • 93100a1a7e bench: add transform44 SSE benchmark — 288 cycles/call baseline (8 bones, 4 animated) MarcelineVQ 2026-03-16 11:30:06 -07:00
  • 91444f8104 bone_sse: incremental bone pointer advancement, V4 copyMat4 MarcelineVQ 2026-03-16 11:18:50 -07:00
  • 3a522fd1e4 bone_sse: cache frame_ctr, pass to all section functions — eliminates ~29 redundant reads MarcelineVQ 2026-03-16 11:14:56 -07:00
  • c80e63522b bone_sse: @mulAdd (FMA) for all lerp/blend paths across interp and section functions MarcelineVQ 2026-03-16 11:06:59 -07:00
  • c36352f4ff bone_sse: @mulAdd (FMA) for lerpVec3, applyTranslation, vec3SqMag MarcelineVQ 2026-03-16 11:00:01 -07:00
  • a7e2f978e2 bone_sse: simplify rotateByQuaternion to use matMul4x4 V4+FMA path MarcelineVQ 2026-03-16 10:56:48 -07:00
  • 5d41cd03a3 bone_sse: V4 FMA matmul, enable SSE4.1+FMA+AVX target MarcelineVQ 2026-03-16 10:54:25 -07:00
  • 08d1992eaf bone_sse: replace IsParticleBufferEmpty with pure Zig — 1 game call remains (atexit) MarcelineVQ 2026-03-16 10:45:06 -07:00
  • 1987dc5622 bone_sse: pure Zig — only 2 game calls remain (atexit init + particle buffer check) MarcelineVQ 2026-03-16 10:38:34 -07:00
  • 16c913b9b7 bone_sse: pure Zig findInterpIdx — last major game call in interpolation path MarcelineVQ 2026-03-16 10:33:40 -07:00
  • 800adbe185 bone_sse: pure Zig bone loop — interpAnimKF, buildRot, scaleMat, matMul all replaced MarcelineVQ 2026-03-16 10:27:33 -07:00
  • 0aab0d3678 bone_sse: replace getIndexOffset/setShortValue with direct ri16 reads MarcelineVQ 2026-03-16 10:22:06 -07:00
  • 8736e0b3da bone_sse: clean A/B testing, remove diagnostic comparison code MarcelineVQ 2026-03-16 10:18:35 -07:00
  • 008db88403 bone_sse: replace matMul/ftol/vec3SqMag with pure Zig, fix visual artifacts MarcelineVQ 2026-03-16 10:10:02 -07:00
  • 252853dd8f bone_sse: fix findInterpIdx from assembly, runtime constants, interpAnimKF stride MarcelineVQ 2026-03-15 18:39:27 -07:00
  • 3a031803ef bone_sse: pure Zig SSE/FMA reimplementation, zero game function calls MarcelineVQ 2026-03-15 18:16:07 -07:00
  • 8fb1ece2b5 bone_sse_ref: fix world entry crash — 6 bugs found via full asm stepthrough MarcelineVQ 2026-03-15 17:38:14 -07:00
  • 6f8b5ea0e7 bone_sse_ref: disable particle crossfade, fix cross product z, guard cleanup MarcelineVQ 2026-03-15 16:44:43 -07:00
  • 582b0dc132 bone_sse_ref: add crossfade blending, word animation section, fix cross product z MarcelineVQ 2026-03-15 16:21:33 -07:00
  • 36ce1a05ce bone_sse_ref: fix M2 black screen — 5 bugs found via asm comparison MarcelineVQ 2026-03-15 15:04:05 -07:00
  • 89e49cedf2 bone_sse_ref: replace reimplemented game funcs with actual calls, fix runtime constants MarcelineVQ 2026-03-15 13:20:05 -07:00
  • c9249c6c96 bench: fix 3 correctness bugs found by benchmarker MarcelineVQ 2026-03-15 12:27:59 -07:00