First post, by ih8registrations
http://sourceforge.net/tracker/index.php?func … 551&atid=467234
<text>
The patch this time speeds up 16 & 32 bit normal2x video rendering by
3x for graphics and 25% for text.
Use 16 bit, and opengl, for best results.
To apply(to cvs source):
cd dosbox
patch -up1 < render_cvs.diff
Enjoy!
Gritty details:
For a video bound game/scene, the renderer handler is the big-o routine by far:
CVS build:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
64.31 23.21 23.21 1552200 0.00 0.00 void Normal<8, 8, true>(unsigned char*)
14.91 28.59 5.38 2072187 0.00 0.00 BituMove(unsigned char*, unsigned char*, unsigned)
8.04 31.49 2.90 228400 0.00 0.00 RENDER_Init(Section*)
5.26 33.39 1.90 void Normal<8, 8, false>(unsigned char*)
2.02 34.12 0.73 228400 0.00 0.00 VGA_TEXT_Draw_Line(unsigned, unsigned, unsigned)
1.03 34.49 0.37 6819579 0.00 0.00 THEOPL3::advance(THEOPL3::OPL3*)
0.58 34.70 0.21 get_thrpc
New handler:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
68.38 9.84 9.84 1548600 0.00 0.00 Normal2x816(unsigned char*)
10.70 11.38 1.54 285200 0.00 0.00 Normalx816(unsigned char*)
5.70 12.20 0.82 285200 0.00 0.00 VGA_TEXT_Draw_Line(unsigned, unsigned, unsigned)
2.57 12.57 0.37 2277486 0.00 0.00 THEOPL3::advance(THEOPL3::OPL3*)
0.97 12.71 0.14 40994748 0.00 0.00 THEOPL3::chan_calc(THEOPL3::OPL3_CH*)
0.90 12.84 0.13 9040201 0.00 0.00 THEOPL3::op_calc1(unsigned, unsigned, int, unsigned)
0.83 12.96 0.12 209501567 0.00 0.00 mem_readw_inline(unsigned long)
Above is profiling output of the intro from Microprose F-117A.
The new handler is a merge of Normal & BituMove so 28.59s vs 9.84s.
</text>