The TNT(2) and the G400 were both 2x1 cards and yet supported multitexturing.
Multitexturing is possible even with a single TMU/pipeline as long as you have two texture ports and loop-back capability. The Savage4, for example, retained the 1x1 configuration of the Savage3D but added a second texture port. The G400 has three texture ports for EMBM.
Loop-back was (is?) also used for trilinear filtering. In general, I remember that writing some 3D code was a real mess because different cards almost inevitably yielded different results.
My memory of that period is a bit fuzzy though. I still have a collection of several hardware/register manuals for many GPUs of the period somewhere for those interested.
Multitexturing is possible even with a single TMU/pipeline as long as you have two texture ports and loop-back capability. The Savage4, for example, retained the 1x1 configuration of the Savage3D but added a second texture port. The G400 has three texture ports for EMBM.
Loop-back was (is?) also used for trilinear filtering. In general, I remember that writing some 3D code was a real mess because different cards almost inevitably yielded different results.
My memory of that period is a bit fuzzy though. I still have a collection of several hardware/register manuals for many GPUs of the period somewhere for those interested.