Commit Graph

55 Commits

Author SHA1 Message Date
Unknown W. Brackets
8fdceba7ca Add timing for all the basics.
This way we can see overall stats for a frame.
2015-07-03 12:05:08 -07:00
Henrik Rydgard
8dc77ff32e ARM64: Turn off some debugging stuff, start implementing instructions. Something is wrong though, if I implement more than addiu things break.. 2015-04-06 18:13:09 +02:00
Unknown W. Brackets
42cd751060 Prevent a few savestate cross-compat issues.
We don't need to save gpu stats at all, so don't, makes it easier to
change it and dunno if anyone defines double as other than 64 bits.

Also, apparently there was padding in the event state but not on all
platforms.
2014-12-08 21:18:56 -08:00
Unknown W. Brackets
6599430c04 Improve some timing in msgpipes.
Probably not super important, but makes tests happier.

Also, when unscheduling an event, return the current time left, including
already spent time since last Advance.
2014-09-01 20:03:58 -07:00
Unknown W. Brackets
f835c158a3 Also fire mhz change listeners on load state. 2014-07-02 08:19:49 -07:00
Unknown W. Brackets
f5440c2357 Fire a callback when cpu mhz changes.
So these can adjust efficiently.  It's not like it changes often.
2014-07-01 23:01:30 -07:00
Unknown W. Brackets
e9fd43b947 Correct cyclesLate if an event consumes cycles.
This can prevent things from drifting out of sync.
2014-07-01 00:26:14 -07:00
Unknown W. Brackets
893188acb3 Fix core timing when an event eats cycles. 2014-06-29 14:15:56 -07:00
Unknown W. Brackets
d97c229eaf Fix IsOnSeparateCPUThread(), was always false.
Erp, because of detach().
2014-04-28 23:22:46 -07:00
Sacha
c8ce5d62c5 Timer hack was running too fast. 2014-03-26 00:09:34 +10:00
Unknown W. Brackets
a843cbd580 Shrink the very common sceKernelThread.h include. 2014-03-15 11:44:02 -07:00
Sacha
effca1e4c7 Improvements to timer hack. 2013-11-20 12:55:56 +10:00
Sacha
20e1bdceeb Improvements to timer hack. 2013-11-16 02:55:12 +10:00
Sacha
fb7c3d96fd Introduce Timer Hack.
Has been used in previous Symbian releases to improve speed. Was thought to only work on Wipeout but actually works on most games?
Games that run based on internal timer will experience 60 VPS without frameskip.
2013-11-16 02:16:17 +10:00
Unknown W. Brackets
e16d1a926b Keep more careful track of microsecond time. 2013-10-24 01:09:35 -07:00
Unknown W. Brackets
36fd5df53f Typo. 2013-09-21 17:04:05 -07:00
Unknown W. Brackets
d305d1faa2 Check enqueue as well, should be safer.
Also, make sure not to eat a bunch more cycles when forcing a check.
2013-09-21 17:00:52 -07:00
Unknown W. Brackets
18a493f316 Don't use Advance() in syscalls, it's unsafe.
Eats some cycles in enqueue and still checks ASAP, FF Type-0 seems happy
with this also.
2013-09-21 15:03:30 -07:00
Unknown W. Brackets
50e9e45d65 Check version in each DoState() func.
They bail on PointerWrap error or bad version.
2013-09-14 20:23:03 -07:00
Henrik Rydgard
8c88dff5a4 More log categories, use them (and existing ones). Improve log config. 2013-09-07 22:02:55 +02:00
Henrik Rydgard
324cde5a79 Let's actually use the log category mechanism. A first step. 2013-09-07 21:19:21 +02:00
Unknown W. Brackets
24203b1a5d Improve performance on x86 as well using movq. 2013-08-12 08:40:54 -07:00
Unknown W. Brackets
b1344f8254 Get rid of CoreTiming::AdvanceQuick().
It basically existed for savestates, so no longer needed.
Fixes issues with events not running when they should.
2013-08-07 00:32:29 -07:00
Unknown W. Brackets
7a2ef728cb Schedule ts events using the same time frame. 2013-08-07 00:32:28 -07:00
Unknown W. Brackets
7dfee29d49 Fix threadsafe event removal. 2013-08-07 00:32:27 -07:00
Sacha
8dd683f63f Fix name collision when building on Windows. Was preventing Blackberry from building. 2013-05-03 16:10:23 +10:00
Unknown W. Brackets
6190918158 Don't allow two drawsyncs to be in play at once. 2013-04-07 17:37:24 -07:00
Unknown W. Brackets
0918ec8598 Return negative for UnscheduleEvent().
It usually won't be, but it could be negative.

Also some other minor warnings.
2013-04-05 20:44:17 -07:00
Unknown W. Brackets
913dca69ef Turn down logging for things that can be inferred.
If you see a thread switch for a vblank wait, you know what happened.
2013-03-10 22:56:24 -07:00
Unknown W. Brackets
64c42ffaf2 Fix some warnings generated by clang. 2013-02-24 10:23:31 -08:00
Unknown W. Brackets
31ada1ea07 Don't process threadsafe events from HLE.
Only from the runloop where blowing the jit cache is safe.
2013-02-22 00:40:36 -08:00
Unknown W. Brackets
da5026ea17 Spend less time moving ts events in CoreTiming. 2013-02-11 01:27:07 -08:00
Henrik Rydgard
674911ddba Move downcount into MIPSState for efficiency, enable block linking.
On ARM JIT we can now reach it through the cpu context reg.
2013-01-12 00:44:18 +01:00
Henrik Rydgard
76481a300c Icache must be invalidated. Jit now starts to run, but there's no cube in cube.elf! 2013-01-08 23:52:11 +01:00
Henrik Rydgard
8915677241 More progress but it weirds out... 2013-01-08 21:24:42 +01:00
Henrik Rydgard
6ecf2d235c Fix integer overflow in scheduling. 2013-01-05 22:44:30 +01:00
Unknown W. Brackets
19aaca2705 Start save stating audio, plus minor fixes. 2012-12-28 13:55:29 -08:00
Unknown W. Brackets
4b39e39455 Start save stating the filesystem state.
Plus minor fixes and at least an attempt to make states the same
on both 32 and 64 bit.
2012-12-28 13:55:27 -08:00
Unknown W. Brackets
91d727a65a Add CoreTiming to save states.
I hope DoLinkedList works, seems like it should.
2012-12-28 13:55:24 -08:00
Unknown W. Brackets
fbe4fd396e Add a mechanism to restore event callback ptrs.
Ugh, more duplicates.  Maybe can find a good way to refactor.
2012-12-28 13:55:24 -08:00
Henrik Rydgård
d8da92befa Fix timing issue wiith JIT on non-Windows platforms 2012-12-25 09:02:02 +01:00
Henrik Rydgard
4d4370232c Assorted minor cleanup and fixes. 2012-12-21 10:20:22 +01:00
Unknown W. Brackets
84b6c3a7c2 Improve accuratcy of CoreTiming::ScheduleEvent(). 2012-12-20 22:48:59 -08:00
Henrik Rydgard
3bd5cfed73 Work around for strange idling issue, various fixes 2012-12-17 23:33:24 +01:00
Henrik Rydgard
1400237d0e Lots of various work on sceSas. ADSR envelopes, correct looping, etc etc... Still far from perfect but better. 2012-12-17 18:07:25 +01:00
Unknown W. Brackets
573aba2fb9 Refactor CoreTiming::Advance() slightly to cleanup. 2012-12-07 00:46:18 -08:00
Unknown W. Brackets
a2ee736793 Process events when idle or switching threads.
Fixes hrydgard/ppsspp#104, so things execute more accurately.
2012-11-30 23:09:14 -08:00
Unknown W. Brackets
d3f2d9d10b Use u64 here to avoid warnings, better precision.
The timeout value is u32 anyway, so an int was already a loss.
2012-11-22 16:40:26 -08:00
Unknown W. Brackets
4d71e32193 Update the value when mutexes timeout. 2012-11-20 02:20:14 -08:00
Unknown W. Brackets
d88fa153b7 Implement timeouts on mutexes.
Still need to set timeoutPtr after they expire.
Pretty sure I did this the right way, seems CoreTiming does already
allow/use multiple events for the same type?
2012-11-20 02:20:13 -08:00