By drawing solid color directly instead of searching for / adding to / rendering out an untextured visplane, overall performance with FLAT_SPAN is 10% faster. The memory used by visplanes (and visplane functions) is no longer required. This commit only reduces the number of visplanes allocated, though.
Additionally: unrolling R_DrawColumnFlat is 5% faster.
Additionally: a naive loop writing individual bytes was faster than an unrolled loop calling R_DrawColumnPixel. An unrolled loop writing individual bytes was faster still.
These are 32-bit Open Watcom results, in DOSbox-X, acting as a 25 MHz 386DX. Nonetheless it has gone from 14 FPS to 19 FPS on demo3.
By drawing solid color directly instead of searching for / adding to / rendering out an untextured visplane, overall performance with FLAT_SPAN is 10% faster. The memory used by visplanes (and visplane functions) is no longer required. This commit only reduces the number of visplanes allocated, though.
Additionally: unrolling R_DrawColumnFlat is 5% faster.
Additionally: a naive loop writing individual bytes was faster than an unrolled loop calling R_DrawColumnPixel. An unrolled loop writing individual bytes was faster still.
These are 32-bit Open Watcom results, in DOSbox-X, acting as a 25 MHz 386DX. Nonetheless it has gone from 14 FPS to 19 FPS on demo3.