Ah, I thought this might be a question about Blood. There is no linear method in Glide or OpenGL. Blood is unusual in that the 3dfx port is a bit of a hack: where the software version generates lines, the 3dfx port generates long, thin, one-pixel-wide triangles. Glide and OpenGl can bilinearly interpolate only over a singel triangle, so you get interpolation in only one dimension (a sort of linear interpolation as you say).
So how come GliDOS manages bilinear interpolation? Well GliDOS spots the pattern of long thin triangles and stiches them together to form big triangles, also working out all the correct perspective parameters to make them display correctly. That allows true bilinear interpolation and also drastically reduces the triangle count per frame.