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