Thanks for the replies everyone!
In hindsight my slot theory was a bit silly. I was thinking that was all the AGP cards I have, but then I remembered... I do have a Matrox G400 card in another machine. I swapped it in, and it worked fine.
And then I remembered I have a spare Gigabyte socket 7 board sitting in a box. Got it out and tried it with one of the 3dfx cards -- same corruption!
So it is definitely the cards, and I guess VRAM seems likely. I thought it was bad luck that both cards developed the same problem, but they're similar cards/vintage so I guess the parts are prone to the same failures.
Still, I have tried the BIOS tinkerings suggested:
- disabling shadow: no change
- aperture size: tried all possible values 4M -- 256M, no change
- set slot to Tx: couldn't find that setting. I did tinker with the wait states for AGP master read/write, no change
- downclocking system RAM: haven't tried that yet... I'll have to rummage for the motherboard manual to make sure I get the jumper settings correct
Replacing those 3dfx cards is a bit expensive these days. Assuming it is bad VRAM, is there any hope of replacing it? Once lockdown is over I do have access to a reflow oven, and maybe even (if I ask nicely) a friend with the skill and time to use it (less certain! it's beyond my skills to do this).