- Crashes when "microVU Error: Program went over its cache limit" message occurs should be fixed.
- Miscellaneous code changes and cleanups.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1211 96395faa-99c1-11dd-bbfe-3dabce05a288
- Added partial program searching support (helps to recompile less in games that send a lot of small programs like Tekken 5)
- Optimized logical min/max code some more (knocked off 2 instructions)
- Fixed some cases where 'last_used' should have been set.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1209 96395faa-99c1-11dd-bbfe-3dabce05a288
- Cached Program search is faster/smarter thanks to an idea Jake had to search recently used blocks first.
- Fixed a problem with block searching.
- Minor changes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1203 96395faa-99c1-11dd-bbfe-3dabce05a288
-implemented Jake's suggestion for proper alignment in the microVU struct.
-minor optimizations/changes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1188 96395faa-99c1-11dd-bbfe-3dabce05a288
* Smartened up the microprogram cache. Programs are (quite accurately) selected based on how often and how recently they have been used. Solves constant recompilation issues in games like FFXII and Tekken 5 [but not the SPS, sorry!].
* Changed memory allocation so that microprogram blocks are allocated *on demand* -- this saves a lot of memory and makes it possible to test 64-program caches (which would previously fail due to exceeding 2gb ram allocations!). Also fixed a few small memory bugs in Init/Alloc, and made it so mVU only allocates memory once instead of on every reset. :)
* Tweaked uses of progSize in microVU.h so that it's consistent [all instances of progSize are (vumem_size / 4) now]
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1180 96395faa-99c1-11dd-bbfe-3dabce05a288
- Implemented Nneeve's logical min/max algorithm. This should fix the problems with DaZ and mVU.
- Applied a patch by Gigaherz that more clearly distinguishes Immediate values in microProgram log files.
- Added a speedhack to disable the logical min/max code. (see below)
Note:
From my testing, using DaZ on mVU doesn't do much. However I have an AMD cpu, and they don't benefit as much as Intel C2D's from DaZ. So this could be effecting results.
The logical min/max code is SLOW, and the little-benefit I get with DaZ means I get better performance with DaZ off and the min/max speedhack (which disables the extra min/max code).
It would be nice is someone with an Intel C2D can compare the speed of:
-mVU normal without DaZ
-mVU normal with DaZ
-mVU min/max speedhack without DaZ
-mVU min/max speedhack with DaZ
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1177 96395faa-99c1-11dd-bbfe-3dabce05a288
Changed a few lines from cotton's idea of readability to mine, at least
until cotton reverts it.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1174 96395faa-99c1-11dd-bbfe-3dabce05a288
-increased rec-cache so GOW2 should be happy (untested)
-hacked-fixed some problems for now that I'll be working on properly fixing over the next few days.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1173 96395faa-99c1-11dd-bbfe-3dabce05a288
FFX's intro got a 8~10% speedup with the hack, and it should be safe for 90~95% of games.
It can be enabled in microVU_Misc.h
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1167 96395faa-99c1-11dd-bbfe-3dabce05a288
- Major flag algorithm rewrites (work in progress)
- Abused macros to create my tables, knocking off 800 lines of code.
- VU0 and VU1 have different dynarec cache sizes now (vu0's is 1/4 the size of vu1's)
- Minor changes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1166 96395faa-99c1-11dd-bbfe-3dabce05a288