Commit Graph

223 Commits

Author SHA1 Message Date
Unknown W. Brackets
4078dcd917 Support save/restore of context on list run/finish. 2013-09-20 09:51:44 -07:00
Henrik Rydgard
664d74a9b7 Another frameskipping attempt. Now: 0=no frameskip, 1=auto frameskipt, 2-9=fixed frameskip.
There is still some flicker remaining in non-buffered rendering that I can't seem to get rid off.
2013-08-16 01:00:26 +02:00
Unknown W. Brackets
f53426db9d Obviously no reason for this to be virtual. 2013-08-13 21:42:48 -07:00
Unknown W. Brackets
8a59463351 Disabling warnings you don't understand = bad. 2013-08-13 01:01:40 -07:00
Unknown W. Brackets
49ab98c7fd Use atomic operations on Android + warning fixes. 2013-08-12 08:51:49 -07:00
Unknown W. Brackets
24203b1a5d Improve performance on x86 as well using movq. 2013-08-12 08:40:54 -07:00
Unknown W. Brackets
5c96782f29 Improve performance on x64 at least.
Maybe can just ignore for 32?  I'm not sure how bad it would be if it read
in between...
2013-08-12 02:42:30 -07:00
Unknown W. Brackets
cf7c718706 Use a timer to keep gpu/cpu in sync periodically.
Fixes Diva Extend demo, at least, losing FPS.
2013-08-11 13:41:42 -07:00
Unknown W. Brackets
e6b42768fe Add a class to manage IO on a separate thread.
Also separate the logic for exiting the loop based on coreState.  IO and
audio won't necessarily be tied to the frame.
2013-08-11 11:46:55 -07:00
Unknown W. Brackets
639ab8306b SyncThread before deciding if the fbo is dirty.
Fixes fps drops in yet other games with multithreading enabled.
2013-08-10 18:45:07 -07:00
Unknown W. Brackets
cfb1d02182 Oops, left these here. 2013-08-10 17:18:31 -07:00
Henrik Rydgård
85e17f03cc Merge pull request #3118 from unknownbrackets/io-async
Prep work for pspFileSystem and two small fixes
2013-08-10 14:32:59 -07:00
Henrik Rydgard
8ba8b3ddd2 gcc warning fix 2013-08-10 18:39:28 +02:00
Unknown W. Brackets
1b838c4403 Move ThreadEventQueue to its own file. 2013-08-10 09:08:31 -07:00
Unknown W. Brackets
450e4c7fea Factor out event queue logic to a template mixin. 2013-08-10 03:33:09 -07:00
Unknown W. Brackets
e82bae3708 Simplify easy_guard to avoid coding errors. 2013-08-09 22:57:53 -07:00
Unknown W. Brackets
1226c3dbd9 Try to prevent a deadlock if CPU doesn't NEXTFRAME. 2013-08-09 22:57:53 -07:00
Unknown W. Brackets
e71cf2ec7e Don't queue Flush() etc. while on GPU thread.
Oops, that makes it not actually flush properly of course.

Also made a simpler guard wrapper to avoid extra braces in too many
places.  Reduced contention areas slightly.
2013-08-09 22:57:52 -07:00
Unknown W. Brackets
8c69020fa8 Use separate condition vars/locks for GPU sync. 2013-08-09 22:57:51 -07:00
Unknown W. Brackets
3819886e2e Add a way to synchronize with the GPU thread. 2013-08-09 22:41:32 -07:00
Unknown W. Brackets
02e301e5fe Add a simple message event system to the GE.
With this, the CPU thread feature now mostly works.
2013-08-09 22:41:31 -07:00
Unknown W. Brackets
52ca93aab2 Add mutex locks around list management.
This way we can safely execute lists on a separate thread.
2013-08-09 22:41:31 -07:00
Unknown W. Brackets
3aa2db9a8e Simplify ProcessDLQueue() slightly. 2013-08-04 16:31:54 -07:00
Unknown W. Brackets
f7a39d1b12 Move ReapplyGfxState() to GPUCommon.
This way it can be overridden, and simplifies some other things.
2013-08-04 15:15:50 -07:00
Unknown W. Brackets
1edbfa3212 Use a downcount and fast run loop in the GE. 2013-04-28 14:23:30 -07:00