Commit Graph

40 Commits

Author SHA1 Message Date
gabest11 d5dbe7e7e9 GSdx: Moved filling up rendering threads on a new thread, to not block the main, it looks like now I can replace one of the spin loops with an event. Using events results in about -5% fps, but still pretty fast.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5007 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-22 14:36:54 +00:00
gabest11 0b62c17d9c GSdx: Renamed the sw thread setting to "extra threads".
- 0: no multi-threading
- 1: gif packet processing and texture uploads run parallel with rendering, the slowest decides the fps, dual-cores can still suffer by the spin loops, I'll check that when I compile pcsx2 on my notebook
- 2: two rendering threads, on a decent cpu packet processing is going to be slower now, this is probably going to increase fps the most on quads
- 3: small fps increase
- 4+: even smaller. 

If you have a quad cpu with HT, 6 is the max, 1 + 1 is needed for pcsx2 and gsdx's basic tasks.

Also hacked palette writes to not force a read-back in hw mode (added in previous rev), it hit render targets in a surprising large number of games.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4998 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-20 14:33:28 +00:00
gabest11 2f401da58c GSdx: fixed shared_ptr for GCC, but it does not seem to be thread-safe in 4.4.5.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4995 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-19 01:20:55 +00:00
gabest11 b86e3ebd19 GSdx: Polished the recent changes a bit. Single threaded mode should be back to normal, 2-4 threads might be faster or slower. All in all, it has a lot more potential now. Rendering is almost as separated as with d3d, everything needed is packed and copied for the worker threads, synchronization between local memory and the temporary buffers is properly done. This model could also be back-ported to d3d. Or the software rasterizers could be hardware assisted somehow, there are a lot less sync points where those buffers should match with the contents of the local memory.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4993 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-18 21:57:48 +00:00
gabest11 f318e84aca GSdx: Better multi-threading for the sw renderer. Threads must be synchronized lot less, 1/10th in average, can run parallel longer and uses more cpu (bit more empty spinning, too). There could be some new bugs, as usual.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4992 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-18 08:13:20 +00:00
gabest11 de3333df6c GSdx: sse2 code path still had a little mipmapping bug, tales of legendia does not crash anymore, added a hack for suikoden tactics (http://code.google.com/p/pcsx2/issues/detail?id=972)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4457 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-03-19 19:29:30 +00:00
gabest11 3030166596 The core of GSdx is now compatible with intel's compiler on linux.
- GSWnd is not implemented, no config dialogs either
- no output, just the null device
- threading classes were not tested (my first experience with pthread)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4315 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-02-19 03:36:30 +00:00
gabest11 6f18c0dabe Trying to isolate the rasterizer step-by-step, for better multi-threading in the future.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4305 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-02-17 03:24:37 +00:00
gabest11 ca7abd983a Mostly code cleanups, XBYAK 2.99, VEX conversion for the sw renderer (3-5% faster), GSState::Move fix for dark cloud 2 invention crash.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4287 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-02-07 01:59:05 +00:00
Jake.Stine 645188e0e8 GSdx: Minor optimization and some code simplifications relating to VertexKick/DrawingKick and the Packed register handlers. I also added preliminary work for a switch-based packed register dispatcher (WIP, doesn't support frameskipping yet).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3649 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-08-17 04:38:49 +00:00
sudonim1 ab77eb4646 GSDx: Free textures that have been in the unused texture pool for a few frames.
GSDx: Reset device on save state load.
GSDx: Made GSRenderer::ResetDevice() actually do the main function in its name and implemented InvalidateTextureCache().  If anything breaks, it's because of this change.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3067 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-05-23 15:33:50 +00:00
sudonim1 4457fe40fc Removed all trailing whitespace in *.c *.cpp *.h because it irritates me.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2897 96395faa-99c1-11dd-bbfe-3dabce05a288
2010-04-25 00:31:27 +00:00
Jake.Stine 27af8d80ca GSopen2: Simplified the multithreaded and irq callback parameter passing scheme, and made them more "robust" so that they can be changed dynamically without the GS exploding (important with the new correct GSState preservation across open/close).
git-svn-id: http://pcsx2.googlecode.com/svn/branches/GSopen2@1860 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-18 19:54:56 +00:00
Jake.Stine 73a39b012c GSopen2: Fixed a bug in gsdx where it didn't properly handle changes to the GS base register memory pointer.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/GSopen2@1858 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-18 18:45:37 +00:00
Jake.Stine 8de579954f GSopen2: Current status...
* Software mode seems to work fine.  Suspend and resume emulation work nicely, without flaws.
 * Hardware DX9 mode suspends but displays only black after resuming.
 * Hardware DX10 status is unknown.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/GSopen2@1842 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-17 07:40:38 +00:00
gabest11 b284fae2d5 GSdx: moved around some code and optimized texture caching a bit, there may be a slight speed-up in hw mode for those games that use many textures.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1425 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-23 04:12:32 +00:00
gabest11 ffda8ead30 GSdx: mfc-free
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1310 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-03 12:09:04 +00:00
gabest11 6c58f3039a GSdx: bit more work on the vertex buffer, and broken ffxii fmv fixed again.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1266 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-26 03:40:31 +00:00
gabest11 8d119f3928 GSdx: more source cleanup and something interesting on F7
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1239 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-22 23:23:38 +00:00
gabest11 3b22adc4b3 GSdx: converted a few template classes to pointers and virtual functions, the dll got more than 100k smaller, since there were many changes, backup your old version first :P
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1236 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-22 01:22:52 +00:00
gabest11 09ee76d9ed GSdx: optimized local-local transfer a bit, it boosts fps in games like ffxii or ico, which do a lot of moves in local memory.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1226 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-20 15:35:31 +00:00
gabest11 441aee367e GSdx: fixed a few more typos in GSVector4i, the black screen bug should be gone
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1192 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-15 11:11:26 +00:00
gabest11 5648d07b96 GSdx: more refactoring (aka search and replace)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1179 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-14 16:41:52 +00:00
gabest11 29d11c8137 GSdx: small fixes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1171 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-11 21:10:08 +00:00
gabest11 d3547e0662 GSdx: trying to get rid of windows dependencies, still many classes to replace :P
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1168 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-11 08:18:00 +00:00
gabest11 6ea395be4b GSdx: optimizations here and there
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1161 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-09 08:37:02 +00:00
gabest11 c64691811a GSdx: 3.4.9. Texture Function => Decal/TCC=RGB: Av = At (gs_user v3 and v5) or Av = Af (v6)? Seems it was Af... Sonic unleashed was one of the games relying on this setting, could not find any other yet. Also removed the green stripes, shadow sw-mode only.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1145 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-07 12:34:58 +00:00
gabest11 3202a42578 GSdx: Reworked the sw renderer texture cache a bit, at page level its correctness was questionable if the base address was not page aligned, so now keeping track of blocks (32x more), may be slower or faster by a few percent (number of blocks vs. finer resolution).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1142 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-07 06:32:10 +00:00
gabest11 8865ee398b GSdx: reworked the gs transfer function a bit, and removed the nloop hack, which does not seem to be necessary anymore.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@997 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-17 01:06:27 +00:00
gabest11 8b3c30d2ce GSdx: just increasing the revision number of gsdx to test something...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@868 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-31 03:19:21 +00:00
gabest11 95c7ce1dbc GSdx:
- more thorough blur detection
- makesnapshot delayed until the next vsync (so shift+f8 won't crash randomly)

xpad:
- fixed "Issue 38: Bad performance with Xpad"

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@834 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-22 13:10:31 +00:00
gabest11 120971ec4f GSdx: Implemented edge anti-aliasing (aa1) for software mode, bios or ffx are good test subjects (not many other games use it). It's still a bit slow but could be improved a lot by not doing 4 pixels with sse for each single edge pixel, that's just a lot of unnecessary texture lookups. The bios config screen cubes are still bogus, gs_user on aa1 isn't too helpful...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@721 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-09 01:42:56 +00:00
gabest11 2c27126e92 GSdx: forgot to disable some console output
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@551 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-20 11:18:53 +00:00
gabest11 4907dbda42 GSdx: upgraded the ps1 renderer to use runtime generated code, too.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@535 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-19 13:13:20 +00:00
gabest11 d14d09cab3 xpad: compatible with pcsx
GSdx: minor optimizations, +crcs

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@496 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-15 02:27:51 +00:00
gabest11 e131e22ea6 GSdx: more JIT code and a little clean-up
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@484 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-13 09:28:51 +00:00
gabest11 393c8ae102 Minor changes to GSdx and fixed the SSE2 compiling error.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@476 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-11 21:42:10 +00:00
gabest11 9ee9d817c4 GSdx software renderer speed-up, using xbyak to JIT compile a few things, more to follow.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@469 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-11 07:05:44 +00:00
Jake.Stine 6ebfae8ef1 Re-Added eol-style:native properties to the repository. The settings got lost when we merged from Playground to Official.
Added interface.cpp (plugin/pcsx2 interface) and savestate.cpp to SPU2ghz, to help clean up SPU2.cpp.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@463 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-09 21:15:56 +00:00
refraction 93da10abbb git-svn-id: http://pcsx2.googlecode.com/svn/trunk@411 96395faa-99c1-11dd-bbfe-3dabce05a288 2009-02-06 19:15:15 +00:00