Commit Graph

118 Commits

Author SHA1 Message Date
gabest11 651196f665 GSdx: vtune tells me GSOffset::GetPages is too slow without the cache and its slowest part is new uint32[], lets use pre-allocated buffers then. In d3d9 mode, locking the vertex buffer is the most painful thing, there is a terrible delay until it returns, the same Map call in d3d10/11 does not behave like that.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5049 96395faa-99c1-11dd-bbfe-3dabce05a288
2012-01-06 01:20:01 +00:00
gabest11 49f3aee099 GSdx: fixing the broken things...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5047 96395faa-99c1-11dd-bbfe-3dabce05a288
2012-01-06 00:17:52 +00:00
gabest11 f68f007f00 GSdx: the promised index buffer update, needed a lot of changes, expect bugs in the next dozen revisions.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5045 96395faa-99c1-11dd-bbfe-3dabce05a288
2012-01-05 02:40:24 +00:00
gabest11 5325f9b490 GSdx: Small optimizations here and there, just saving changes before trying to add an index buffer, that might help reducing load on the main gs thread a bit. That's where I think the bottleneck currently is in games with high polygon count.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5036 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-31 15:41:07 +00:00
gabest11 6f97ca35e2 GSdx: GSOffset::GetPages was caching a ridiculous amount of data, it isn't that much slower without it.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5028 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-28 20:21:32 +00:00
gabest11 eaf06e8b1d GSdx: bit less idle time by refcouting used texture pages.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5026 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-28 14:10:20 +00:00
gabest11 25072b99c7 GSdx: a few minor changes, please check if I wrapped the new pthread things correctly
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5019 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-27 09:15:35 +00:00
gabest11 2628d5bb7d GSdx: a little refinement to the fix for the issue that come up with Bully.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5016 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-25 07:26:42 +00:00
gabest11 ed8eb53c22 GSdx: Valkyrie Profile 2 fix (discussed under r5010 and r5012), this bug could have broken much more games, strange that it did not.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5015 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-24 15:02:48 +00:00
gabest11 bc7a930409 GSdx: This fixes the flickering in Bully, and probably games with the same problem. Could not check Valkyrie Profile Silmeria, yet.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5012 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-24 07:00:16 +00:00
gabest11 963a6a653a GSdx: changes of r5007 did not help as much as I thought, disabled it for the time being, plus other minor optimizations
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5010 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-23 15:53:53 +00:00
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 2421c68bee GSdx: Saving the conditional var update (vista or better) before I try a new idea again. That Sync() call is wasting too much time, if there was only one queue then the main thread could also grab and process elements instead of just waiting for the workers.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5005 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-22 01:48:16 +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 4b77052d21 GSdx: just saving minor changes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4991 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-16 19:13:58 +00:00
gabest11 f1537f53a2 GSdx: Found where the bypassed int z was destroyed. (bug appeared in r4967)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4975 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-12-01 17:08:10 +00:00
gabest11 4f6f53c188 GSdx: Just remembered triangles were occasionally converted to sprites, need to set t.w there as well.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4967 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-11-14 03:34:24 +00:00
gabest11 ee9c9ac8f3 GSdx: Added a simple workaround for the 32-bit z problem talked about in the comments of r4956. Since sprites are flat and there was an unused vertex member (t.w), I just decided to pass the raw uint32 value in that to the scanline drawing function. It does not fix triangles and other primitive types, of course. The ideal solution would be to break z into two parts (like 8:24 bits, and only care about the upper part when not zero), interpolate separately and rejoin when needed, it is just too hard to add another variable when the assembly code is already so tightly optimized to use every register.
(HW mode z-test expects a float input, so this trick cannot be done there.)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4966 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-11-14 03:08:13 +00:00
gabest11 bfbf403bf4 GSdx: FXAA 3.10, page up key activates it
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4828 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-07-25 11:16:01 +00:00
gabest11 cc8d14511b GSdx: the texture cache fix discussed under r4589.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4592 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-04-25 01:44:00 +00:00
gabest11 732b038571 GSdx: mipmapping fix (ford mustang racing, and probably other games which use small, non-square textures)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4529 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-04-04 11:05:54 +00:00
gabest11 d7a6b484ce GSdx: small mipmapping optimization, half fps maybe, it wasn't done right on my first attempt.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4501 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-03-28 04:15:36 +00:00
gabest11 7f6eedf23d GSdx: I always forgot to comment this out
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4495 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-03-27 03:14:15 +00:00
gabest11 8ca01f4b77 GSdx: only minor changes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4494 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-03-27 03:12:12 +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 4f8bbb2c52 GSdx: please test mipmapping again...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4455 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-03-19 03:54:22 +00:00
gabest11 b1eac6d058 GSdx: I've mixed up the bits of TEX1.MMIN, sfex looks nice again.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4454 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-03-19 00:54:03 +00:00
gabest11 542a4a6747 GSdx: one more thing to remove...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4442 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-03-17 03:34:32 +00:00
gabest11 243a0f4ad1 GSdx: (almost) complete mipmapping support, if the min/mag filter differs then bilinear is used.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4440 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-03-17 02:55:20 +00:00
gabest11 1d759c852d GSdx: When mipmapping is on, LOD is calculated per pixel, it isn't used for anything, but it's there. I cannot really measure any significant slowdown, but rest of the fun is yet to come.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4428 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-03-14 03:32:28 +00:00
gabest11 b2254a7937 GSdx: just a typo again
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4421 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-03-12 22:23:56 +00:00
gabest11 b31634df8f GSdx: using mipmap levels (only per batch, no tri-linear) and a couple of small changes, including the stdcall fix for linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4419 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-03-12 22:10:58 +00:00
gabest11 fe88ee4102 GSdx: optimized the triangle setup of the rasterizer a bit, while it isn't the bottle-neck of drawing, it can still add a few percent to the fps.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4404 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-03-08 01:48:15 +00:00
gabest11 a96a345077 GSdx: the x64 ABI on windows is not so nice after all.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4380 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-02-28 11:08:52 +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 d44def8c0b Fixed many gcc errors, there are still plenty. Intel's compiler might be a better alternative.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4311 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-02-18 01:56:05 +00:00
gabest11 257d57ba52 Tweaked the rasterizer to be about 10% faster in multi-threaded mode (2 or 3 threads), still far from optimal.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4308 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-02-17 18:22:47 +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 65fc196688 Local static initializers are evil, avoid them like plague.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4304 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-02-16 03:19:36 +00:00
gabest11 1e6f280021 - more project cleanups and small code changes, also added the psx emu interface again
- someone should check __xgetbv under linux (avx/fma detection)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4295 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-02-12 21:45:16 +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 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 6447ef282a GSdx: Recycle the m_merge texture instead of deleting it; and made a note about a debug assertion that happens in XS2 (probably nothing useful, but no harm in making a note for future references)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2006 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-14 16:42:59 +00:00
Jake.Stine c5c21f06cb GSdx: Fixed a couple memory leaks.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2000 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-12 19:58:03 +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 3bd8037573 GSdx: fix for transparent walls in kingdom hearts (or anything else that sets AA1 with ABE off)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1611 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-07 21:11:27 +00:00
gabest11 83b15dbac0 GSdx:
- trying the dx10.1-only "gather" shader instruction for palletized lookups ("8-bit texture" mode), saves 4 instructions which isn't much but still... (not tested, don't have ati)
- may fix the intel gma "no output" bug (don't have gma either :P)
- and the usual small code optimizations


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1549 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-22 03:55:28 +00:00
gabest11 e58776e095 GSdx: just squeezing a few more fps.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1534 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-16 21:36:07 +00:00
gabest11 aa438a6b73 GSdx: game fixes and small optimizations
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1495 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-12 13:46:05 +00:00
gabest11 f24be5c352 GSdx: a few games fixes (one piece grand battle, xenosaga 1, chikyuu boueigun 2)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1469 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-05 12:58:59 +00:00
gabest11 ae62a56cc1 GSdx: more leak cleanup
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1466 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-04 22:54:57 +00:00
gabest11 4c76909afe GSdx: small optimizations and tried to fix that dx9 fullscreen alt+tab crash
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1463 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-04 15:14:04 +00:00
gabest11 7bb9a3cc25 GSdx: changed a lot of things, expect new bugs :P
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1439 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-27 03:32:33 +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 48eae0c907 GSdx: more opengl code, please review, I have no idea if it done the right way ^_^
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1372 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-16 01:42:08 +00:00
Jake.Stine c60095f6b0 GSdx: Fixed Software-mode crash on Escape/Exit, caused by a couple destructor race conditions. (C++ destructors and thread safety are fickle beasts that like to claw each others' eyes out)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1371 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-15 23:21:17 +00:00
gabest11 b678bb129c GSdx: texture filtering checkbox fixed, changed texture lookup a bit, removed more unused code
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1351 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-06-09 10:13:28 +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
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