They were dynamically tessellated on the CPU. These days we can of course do the same thing on the GPU, using tessellation/geometry/mesh shaders or even compute shaders, depending.