Diablo 4 runs on a fixed 60-frames-per-second engine; a skill's animation can only shorten by a whole integer number of frames, so Attack Speed between two frame breakpoints for your specific skill/weapon buys literally zero extra DPS until the next breakpoint is crossed.
Breakpoints are skill- and weapon-specific (they depend on the base animation length and weapon Attacks-per-Second), so there is no single global table - each build must find its own. A concrete documented example: Rogue's Puncture on daggers is locked at a 15-frame animation across the ENTIRE 58.8%-72.49% Attack Speed range (any Attack Speed in that band is wasted); crossing 72.5% drops it to 14 frames for a real +7.14% DPS jump, and the next breakpoint (13 frames) is worth +15.38%.
60 fps means the smallest possible animation-time change is 1/60th of a second; the engine cannot render a fractional-frame attack, so it rounds down to the current frame count until enough Attack Speed accumulates to force a full frame off.
Puncture (dagger) example: 58.8%-72.49% Attack Speed = 15 frames (dead zone); 72.5% = 14 frames (+7.14% DPS); next breakpoint = 13 frames (+15.38% DPS over the 14-frame value). At 143.8% Attack Speed with daggers, Puncture reaches a 10-frame animation (6 casts/sec).
Look up or personally test your specific skill+weapon's breakpoint table before investing further Attack Speed; stat budget inside a dead zone should go to literally any other stat instead.
breakpointConfirmedAll
Open in the planner