Commit Graph

14 Commits

Author SHA1 Message Date
rubidium
9e75e3db68 (svn r17787) -Codechange: be a bit more verbose about while allegro failed with some actions. 2009-10-17 14:39:43 +00:00
rubidium
0307d13d0a (svn r17776) -Codechange: [SDL] make "update the video card"-process asynchronious. Profiling with gprof etc. hasn't shown us that DrawSurfaceToScreen takes a significant amount of CPU; only using TIC/TOC it became apparant that it was a heavy CPU-cycle user or that it was waiting for something.
The benefit of making this function asynchronious ranges from 2%-25% (real time) during fast forward on dual core/hyperthreading-enabled CPUs; 8bpp improvements are, in my test cases, significantly smaller than 32bpp improvements.
On single core non-hyperthreading-enabled CPUs the extra locking/scheduling costs up to 1% extra realtime in fast forward. You can use -v sdl:no_threads to disable threading and undo this loss.
During normal non-fast-forwarded games the benefit/costs are negligable except when the gameloop takes more than about 90% of the time of a tick.
Note that allegro's performance does not improve with this system, likely due to their way of getting data to the video card. It is not implemented for the OS X/Windows video backends, unless (ofcourse) SDL is used there.
Funny is that the performance of the 32bpp(-anim) blitter is, at least in some test cases, significantly faster (more than 10%) than the 8bpp(-optimized) blitter when looking at real time in fast forward on a dual core CPU; it was slower.
The idea comes from a paper/report by Idar Borlaug and Knut Imar Hagen.
2009-10-15 17:41:06 +00:00
rubidium
2508e6b907 (svn r17773) -Cleanup: sdl.h isn't needed for allegro 2009-10-14 08:14:57 +00:00
rubidium
99d46e0ad7 (svn r17248) -Fix: add GPL license notice where appropriate 2009-08-21 20:21:05 +00:00
rubidium
f0693ed0c8 (svn r16700) -Fix: if allegro fails to start or fails open a window or sound card fall back to another driver 2009-06-30 12:38:18 +00:00
alberth
c52fe937d5 (svn r16677) -Codechange: Dimension width and height are unsigned. 2009-06-27 20:53:45 +00:00
alberth
580e478e4e (svn r16491) -Codechange: Added parentheses around bitwise operators for code style. 2009-06-01 11:43:36 +00:00
rubidium
241af768f0 (svn r16242) -Codechange: rework pausing
-Fix [FS#2864]: autopause and manual pausing conflict with eachother
-Fix: new game + pause on new game + autopause make the game not unpause on the first join
2009-05-06 15:06:57 +00:00
rubidium
0893cb2adf (svn r15156) -Fix: add scrollwheel support to allegro 2009-01-19 22:27:43 +00:00
rubidium
913f51b2fb (svn r14641) -Change [Allegro]: when making a debug build revert Allegro's hooks on SIGSEGV/SIGABRT so one can actually use gdb.
-Change: make it more clear that Allegro's failing to find a driver.
2008-11-29 01:28:13 +00:00
rubidium
5dd4735da1 (svn r14636) -Add: DOS port of OpenTTD, without network support though. 2008-11-26 13:12:45 +00:00
rubidium
ba2345808b (svn r14632) -Add: support Allegro as midi backend. 2008-11-25 23:21:58 +00:00
rubidium
5ebb48fa86 (svn r14631) -Add: support for Allegro as sound backend. 2008-11-25 21:09:00 +00:00
rubidium
285d1846ae (svn r14630) -Add: support Allegro as video backend. 2008-11-25 19:32:12 +00:00