Glide has a very clear architecture: there is framebuffer memory, and there is texture memory. This is due to the way the original Voodoo Graphics was designed, with physically seperate banks of memory for each purpose.
The Voodoo card can only render to a display buffer in the framebuffer memory, and it can only texture from a texture in the texture memory.
To make use of the Voodoo cards 3D engine to draw off-screen primitives (things that are not seen directly, but are seen indirectly), a special display buffer would have to be created in the framebuffer memory (not all that feasable anyway, within Glide), the primitives drawn in to it, the memory then read back from the framebuffer to main memory, blended with the existing VRAM image in main memory, uploaded to a special texture in texture memory, and then used for whatever purpose the game desires as a texture source.
That is an extremely painful procedure, not simply because it is a very complex process, but because reading data from a framebuffer in Glide is an extremely slow process.
When you take a screenshot, the pause you notice is due to having to read back the displayed image from the framebuffer memory. The higher the resolution you run, the bigger the pause. The same is tru of having the OSD setting on Extra+FBA: the initial FBA (FrameBuffer Access) causes a noticable pause in the game.
With this all in mind, software routines for the off-screen drawing is the best way of doing things.
The only way to speed up the off-screen drawing is to a) buy a faster CPU, or b) write some faster software routines for rendering PSX primitives to a VRAM image, and supply me with the code
