Quake’s perspective correct texture mapping used the pentium’s floating point math for every 16th pixel.
Most games at the time did perspective correct flat floors and walls, which can be done mostly with affine texture mapping. Sloped floors, which Quake had a lot of, must be done with more accurate Perspective correct texture mapping.
Perspective correct texture mapping technically requires a distance division at every pixel. Since it was too slow to do this at every pixel while rasterizing, Quake did the distance division at every 16th pixel, and used affine texture mapping between (linear interpolation).
On the Pentium you had fast floating point division which could run in parallel with the cpu doing the integer math. So they actually utilized both the floating point unit (for distance division) and integer unit (for affine texturing) concurrently, and in that way got rendering of each pixel down to <10 cycles.
Unfortunately, the 486s floating point math was not fast enough. So this trick makes everything worse on the 486, which is one of the reasons Quake didn’t run well on the 486 — the texture mapper was optimized for the fpu on the Pentium.
Mike Abrash wrote about this in his series of articles about Quake development which I highly recommend! I remember reading them during development of Quake in 1995-96 and implementing a lot of it myself (Bsp trees, shadow maps, texture mapping, sorted edge rasterize).
I actually implemented perspective correct texture mapping with integer division myself, and it was a bit slower on the Pentium, but a lot faster on the 486.
Funny, how just a few years later all of this became obsolete when GPUs arrived.