Kahenraz wrote on 2021-08-11, 16:23:
In this scenario the CPU is plenty fast. What then is responsible for Mode X being slow? Is it the Tseng ET4000 or the ISA bus?
The original VGA design is based on an 8-bit bus interface. That design is unable to take 16-bit write cycles. It is easy to build a slightly enhanced VGA design that can take 16-bit cycles in text mode (odd/even addressing) and in standard 256-color mode (chain-4 addressing), but difficult to build a slightly enhanced VGA design that can take 16-bit cycles in Mode X. Furthermore, in Mode X a 16-bit write cycle would set the color of two pixels which are not neighbouring, but separated by 3 pixels inbetween that can't get accessed at the same time. So it might be inconvenient to use 16-bit video memory access at all in Mode X. I don't know what classic DOOM does, but if it does byte writes to VGA memory, and especially if the mainboard adds extra waitstates to 8-bit cycles that can not be cancelled using the 0WS signal, performance will be poor.
If I remember correctly, I experimented with writing a tiny 3D enigne at a feature level between slightly above Wolf3D that gathered the parameters for all 320 columns on the screen and then rendered 4 lines at the same time, so it could write to the memory using 32-bit cycles maximizing the efficiency of posted writ buffering on a 486DX50 with an ET4000AX graphics card. That engine got stalled on rendering performance, not on the ISA bus. But as this is years ago, I might mix up what hardware I had in use during that experiment. If my recollection is correct, the ET4000AX should be able to take 16-bit writes in Mode X at good performance, though.