05-02-2009, 03:11 PM
If you have known bugs with MTGS, please report them here. A bug with MTGS would mean that the game in question does not work in MTGS mode but works correctly with MTGS disabled (also known as STGS).
I ask because I'm strongly considering removing STGS. The basic jist is this:
* Games run faster with MTGS enabled, even on single core machines. I tested this on both my Quad set to CPU Affinity 1, and a P4 laptop, and I had some other folks run tests on AMds. All of them got 2-4% speedup from having MTGS enabled.
* MTGS appears to be 100% stable, and more importantly, there's no reason it shouldn't be 100% stable. Meaning that I'd rather just fix MTGS bugs and have it stable, than have a clause that says "eh, might crash maybe sometimes in rare moon phases, so check this checkbox is some weird stuff happens." [for example, random crashing that plagued SMT:Nocturne and DDS for so long were definitively fixed a couple months ago].
* Removal of STGS will streamline all areas of the code that interface with the GS (about 8-12 spots), meaning faster execution of GS transfers, and easier to maintain codebase.
* We can have a flat guarantee to GS plugin authors of the thread condition of their plugin. The current "maybe/maybe not?" system is a little wonky and is almost certainly responsible for those couple of odd-end-cases where someone's system can't run Pcsx2 in MTGS mode at all because it hard locks their Windows Kernel or Video Drivers. [only 2 known reports that I'm aware of]
* On that same note: the entire GS plugin initialization procedure gets reduced to like half or a third the amount of code it is now, and is reduced from some complicated double-throw logic puzzle to a neat and simple init procedure.
* I'll still allot for a debug/devel version of MTGS which would enforce strict synchronization [ie, no asynchronous execution -- EE sends GS commands and then waits for GS completion]. It would be slower than the current STGS but technically more reliable as a regression test or control base for finding MTGS bugs, since it guarantees that the same code is executed.
But before I do this, I need to know if there are any outstanding issues any of our users (you guys!) have, such that you actually have to uncheck the MTGS box.
I ask because I'm strongly considering removing STGS. The basic jist is this:
* Games run faster with MTGS enabled, even on single core machines. I tested this on both my Quad set to CPU Affinity 1, and a P4 laptop, and I had some other folks run tests on AMds. All of them got 2-4% speedup from having MTGS enabled.
* MTGS appears to be 100% stable, and more importantly, there's no reason it shouldn't be 100% stable. Meaning that I'd rather just fix MTGS bugs and have it stable, than have a clause that says "eh, might crash maybe sometimes in rare moon phases, so check this checkbox is some weird stuff happens." [for example, random crashing that plagued SMT:Nocturne and DDS for so long were definitively fixed a couple months ago].
* Removal of STGS will streamline all areas of the code that interface with the GS (about 8-12 spots), meaning faster execution of GS transfers, and easier to maintain codebase.
* We can have a flat guarantee to GS plugin authors of the thread condition of their plugin. The current "maybe/maybe not?" system is a little wonky and is almost certainly responsible for those couple of odd-end-cases where someone's system can't run Pcsx2 in MTGS mode at all because it hard locks their Windows Kernel or Video Drivers. [only 2 known reports that I'm aware of]
* On that same note: the entire GS plugin initialization procedure gets reduced to like half or a third the amount of code it is now, and is reduced from some complicated double-throw logic puzzle to a neat and simple init procedure.
* I'll still allot for a debug/devel version of MTGS which would enforce strict synchronization [ie, no asynchronous execution -- EE sends GS commands and then waits for GS completion]. It would be slower than the current STGS but technically more reliable as a regression test or control base for finding MTGS bugs, since it guarantees that the same code is executed.
But before I do this, I need to know if there are any outstanding issues any of our users (you guys!) have, such that you actually have to uncheck the MTGS box.
Jake Stine (Air) - Programmer - PCSX2 Dev Team