Using a tri Fill that doesn't perfectly fill tris leads the path to a FPS one might consider... unatural.
The FPS counter projects forward, having 40 fps doesn't mean it actually drew 40 frames this second, it means it is on track to get 40 fps, or in other words, as 1/20 is 0.05, so if we have spent 0.05 seconds drawing a frame, we must be on track to draw at 20 fps. Or in other other words, as we can fit 20 0.05s into 1, we must be at 20 fps, or in other other other words, 1/time taken to draw frame = fps. I just realized no one cares how I calculated the FPS.