Important Notes: I designed the new MTGS to largely favor speed on GS intensive scenes, at the possible cost of some speed loss on scenes that do very little GS work (simple boring menus, mostly). The idea is that losing 5-10% on a menu screen that already runs *really* fast is a valid trade off for possibly gaining a few FPS for in-game scenes (especially slow ones that need it most). So don't benchmark this thing on game menus and expect it to be faster.
The new MTGS also has several other benefits that do not currently reflect well in benchmarking:
* It renders only two frames ahead instead of 8. This is great for fixing laggy input problems, but bad for benchmarking. If the new MTGS manages the same speed while having lost the queued frames count, it's a sizable achievement.
* It works a lot nicer with the GSdx software rasterizer in general.
* It's new design will work nicer with future DX11 multithreaded features, when supported.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2243 96395faa-99c1-11dd-bbfe-3dabce05a288
- Remove the silly upscale hacks from an earlier commit
- Replace them with a less silly version in CreateSource() :p
- Remove a few of the outer pixels from the visible area, as they often contain glitches
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2241 96395faa-99c1-11dd-bbfe-3dabce05a288
Dev notes:
* Renamed MtgsthreadObject to SysMtgsThread (matches naming pattern of other thread classes).
* Added accessors for GetMtgs() and GetCoreThread() [rationale for them documented in source comments]
* Removed wxHelpers namespace since we're using px name prefix instead for most stuff.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2238 96395faa-99c1-11dd-bbfe-3dabce05a288
If this rev is nice and stable then I'll go ahead and break things again by implementing the planned synchronization speedups. ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2235 96395faa-99c1-11dd-bbfe-3dabce05a288
* Optimized switch() for dispatching ringbuffer commands (slight speedup maybe, in very GPU intensive apps)
* Removed 8-frame queue (fixes lag when using vsync + fullscreen). New queue is 2 frames max.
* Restart the ring buffer on every other vsync, regardless of ringbuffer fill status (re-uses front portion of the ringbuffer more often, which should improve L2 cache performance nicely).
Planned features:
* A few m_WritePos threshold checks: Need to implement smart logic for putting the EE thread to sleep when the MTGS ring buffer is lagging (readpos is way behind writepos), and should restart ringbuffer every frame if frames have large amounts of data.
* Add periodic EE wakeup commands, or an EE wakeup threshold point to the Ringbuffer; to signal a sleeping EE that the ringbuffer is nearing completion and is ready for more data.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2230 96395faa-99c1-11dd-bbfe-3dabce05a288
* Botting NoDisc with "Skip BIOS" enabled should work now (untested).
* Renamed StaticText / StaticHeading helpers to simply Text and Heading.
* Made the iR5900 recompiler's stack alignment check a dynamic toggle instead of a dev/debug build preprocessor.
* Fix annoying linux linker errors.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2229 96395faa-99c1-11dd-bbfe-3dabce05a288
DevStuff:
* Added a handful of operator+= overloads for working with wxSizers -- moderately reduces code clutter. :)
* Commented some of the wxHelpers classes (pxStaticText, wxPanelWithHelpers, etc).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2221 96395faa-99c1-11dd-bbfe-3dabce05a288
- Set the "latency" slider adjustment resolution to 1, so it's actually possible to set the value the user wants.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2215 96395faa-99c1-11dd-bbfe-3dabce05a288
* ... more WIP stuff on the Video options panel.
* Spent 12 hrs working on crap text wrapping and window sizing issues.
* Moved several UI classes to utilities (lots of project changes, breaks linux)
* Fixed stilly bug in SPU2-X that prevented it from working (at all).
* Lots of code cleanups, and 1 or 2 bugfixes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2212 96395faa-99c1-11dd-bbfe-3dabce05a288
For the curious: tooltip duration defaults to a function of your configured mouse doubleclick rate, which happens to be something a lot of us users probably set to something pretty fast or really fast, to avoid accidental double clicks (mine's like 1 or 2 notches away from the fastest setting). So my tooltips only stayed visible for like 2 seconds. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2201 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added support for indentation, as a replacement for using \t (options include methods SetIndent and Indent, and a ConsoleIndentScope class for scoped indentation of a block of WriteLns.)
* Use of Indent() as a modifier (the abstraction optionally allows use of indentation methods besides \t, if ever needed).
* Minor header file cleanups: wxWidgets standard headers are now always first in PrecompiledHeader.h files (is recommended due to cross platform setup code by wx).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2198 96395faa-99c1-11dd-bbfe-3dabce05a288