021193b22f
Use mutexes in LogManager to make it threadsafe, as suggested by beistin's patch. Change some LogManager function names to be consistent with Dolphin's naming conventions.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7433 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-04-01 07:43:02 +00:00
41c98f982e
A bit of cleanup to Core Init/Stop, Frame, and Main. Cleanup XAudio2 to attempt to fix the crash on stop(didn't help :p). For some reason CFrame::DoStop is called twice.(might be the issue)
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7353 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-15 23:09:12 +00:00
9095dad009
Fix preprocessor prob.(recursive mutexes were being used where not necessary) Hopefully fix Common::Event to handle spurious wakeups since it uses condition variables now.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7307 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-06 00:52:04 +00:00
7bc2ae01f2
Fix Common::Barrier and fix the deadlock by making Common::Event check to see if an event has already been set or not.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7305 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-05 22:17:28 +00:00
024a87af7a
Fix the Host_GetKeyState deadlock caused by Billiard's latest changes.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7304 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-05 21:58:54 +00:00
423018f811
Replaced Common::CriticalSection with a std::mutex implementation. 64bit Windows builds now use SRWLocks and ConditionVariables(requires Vista/7, x64 builds will no longer work on Windows XP x64). Tell me if you hate that. Removed Common::EventEx. Common::Event now uses a std::condition_variable impl.(using ConditionVariables on Windows x64, Events on x86, or posix condition variables elsewhere). I experience slight speed improvements with these changes.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7294 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-05 06:11:26 +00:00
12cd2d41ec
Change YieldCPU to sleep(0) like on windows. Time trials show this to be the most effective. Also, when using usleep(1) and dsp on thread the emulator is painfully slow. With the old _mm_pause() the emulator hangs on shutdown. With sleep(0) the emulator is faster, and doesn't hang on shutdown.
...
Also fix a possible undefined operation (according to gcc).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7275 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-03-02 22:19:56 +00:00
ccc12c6950
a little simplification for the dlist id and a little correction to YieldProcessor in windows.
...
in windows sleep(0) behaves more like what is defined in the yield instruction so use it instead. In my amd 6 core system brings a nice 8% speedup so please test I'm interested in knowing the behavior in different systems.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7261 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-27 18:06:55 +00:00
af139f4661
Used usleep(1) instead of _mm_pause on Linux and Mac OSX. This reduces the CPU usage in the video thread's idle loop. Added YieldCPU to the DSP LLE loop.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7125 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-02-10 12:56:21 +00:00
2c05c49a04
Replaced Common::Thread with a partial implementation of std::thread. (rvalue references are used if available, <thread> is used if possible) Eliminates the need to use dynamic memory allocation for threads, so it's impossible to forget to delete a thread or set a pointer to NULL. Enables use of type-safe thread functions, no need to cast to and from void*. I've made sure the code compiles in vs08 and tested the functionality of "StdThread.h" on Linux so I'm hoping everything will work :p. In the future "StdThread.h" can be removed (maybe when OS X ships with gcc 4.4 and vs2015 is released :p).
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6933 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-27 20:47:58 +00:00
d2044a7a23
Removed extra space character in "Use FPS For Limiting". Changed "Frame Stepping" to "Frame Advance". Some minor preprocessor cleanup.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6913 8ced0084-cf51-0410-be5f-012b33b47a6e
2011-01-25 11:14:11 +00:00
a3c46990f6
Revert to gettimeofday on posix systems. I give up.
...
Temporary fix for OSX in JitIL.cpp
This revision should build on OSX again.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6457 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-22 02:42:53 +00:00
222c2d1297
Revert revision 6464. _POSIX_MONOTONIC_CLOCK is not used in that way.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6455 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-21 21:31:37 +00:00
92fe490270
POSIX feature symbols can be defined even if not implemented.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6454 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-21 20:45:42 +00:00
39a4781a5f
Check if CLOCK_MONOTONIC is supported before using clock_gettime.
...
Fix the cmake check to see if -Wno-unused-result is supported by the compiler.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6453 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-21 19:13:55 +00:00
7788bac40c
Fix ogl screenshots for windows.
...
Fix the macosx build (perhaps).
This changes the JitIL timed profiling to using assembly language to obtain the time. It does seem to be faster. Not sure if it will work on macosx, but if it does it has the necessary precision that gettimeofday does not have.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6448 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-20 03:24:51 +00:00
ef55177ed6
Implement JitIL profiling on linux. I also tried implementing __rdtsc using assembly and didn't really see a speed improvement so went with clock_gettime.
...
Also changed other gettimeofday calls to clock_gettime, which is supposedly more accurate.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6447 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-11-20 00:22:56 +00:00
0e2b4d8306
Implement proper thread naming on linux. This fixes a segmentation fault with thte wiimote new configuration dialog when a thread was named without first calling ThreadInit.
...
Also take care of some more eols.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5843 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-07-06 16:16:07 +00:00
221e722284
Linux build fix.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5725 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-06-16 14:22:17 +00:00
81f06220ce
Massive Poo storm, had to take shelter. Hacks, fixes, etc etc
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5421 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-29 13:46:20 +00:00
3103b920b6
[OSX] Use spinlocks instead of mutexes since mutexes are really semaphores, gives me a decent speed up.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5420 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-29 12:50:12 +00:00
766818baa8
possible savestate memory leak fix in DoBuffer
...
made Lua run on the CPU thread to fix unreliable script execution issues
several fixes so the Lua savestate functions can actually work
added Lua function savestate.verify to help with catching desyncs
implemented FailVerifyAtFrameBoundary in Lua interface
added a Clear button to the LuaWindow
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5382 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-04-17 21:02:03 +00:00
571a47ef9a
This could alleviate the suffering of dual core synchronization a bit.
...
But I doubt you would notice it in most cases.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4830 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-14 10:52:14 +00:00
1a5817f6fd
from BhaaL: linux compile fix for r4794, Event::Wait now supports a timeout (default to INFINITE), and it returns true when the timeout expired. fixes issue 1974
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4799 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-01-09 19:06:23 +00:00
7e115dcb00
GUI: Fixed some GUI related start/stop crashes
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4223 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-09-07 12:40:43 +00:00
7eed236df9
Fix noWX build, and lower thread priority for screenshots
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3913 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-31 01:55:26 +00:00
c86d2e5129
Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :)
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3898 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-28 21:32:10 +00:00
758d5c234d
Corrections to r3875.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3876 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-23 22:02:03 +00:00
ce8b679d76
Revert most of r3855.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3875 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-23 21:17:14 +00:00
6f28539ccc
Rename scale_something to scale_invert. Plus, sneak in a tiny Thread.h change.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3845 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-19 08:24:30 +00:00
ad440b9e47
Fix dspspy, typo in ld_Test
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3843 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-19 07:21:29 +00:00
9e16a5ccd8
Call sched_yield for yieldcpu function on linux/osx please test
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3837 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-18 20:04:18 +00:00
a5d65b3b22
No more SleepCurrentThreads in Command Processor. Some Fifo cleanup.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3822 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-17 22:57:02 +00:00
3bc8eb7eaf
Fixed one of the two remaining crash on Stop (issue 600), and removed some setup defines which are now useless anyway.
...
There's an attempt to implement Peek_Color too, probably done wrong :P
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3799 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-15 15:09:20 +00:00
d779554ff3
Atomic operations library.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3775 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-13 05:38:34 +00:00
419c6a0927
fig ConfigPadDlg size in linux, temporary linux build fix
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3742 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-11 04:33:38 +00:00
dc30df7dca
fix building in linux
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3741 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-11 03:10:10 +00:00
dc7d9ab998
Switch to Video_BeginField; hopefully fix or reduce some video stability problems by using Events.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3740 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-11 02:34:16 +00:00
6800adf4dc
Use _beginthreadex
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3736 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-07-10 20:22:25 +00:00
b0ea0f349b
disable sysconf progressive scan by default, fix discrepancies between some corestartup parameters and sysconf settings
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3172 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-05-07 21:16:52 +00:00
b0bb4e6335
DSPSpy: Hide loop stack registers - they aren't relevant for most investigations.
...
Highlight differences on both sides.
Show the accelerator subregs in order.
Make it possible to include some code from Dolphin into DSPSpy, good for grabbing useful #defines. (had to change the GEKKO log to POWERPC).
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3120 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-05-01 15:17:03 +00:00
eb0cab140f
Some code cleanup
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2768 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-03-28 08:57:34 +00:00
2301d072a6
nakee's new logmanager. added a console window for windows builds (prints to parent console on non-win32). also fix some random wxw bugs: main window's position is saved when using debugger, disabling windows from the tools menu are saved settings, some other small fixes
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2675 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-03-18 17:17:58 +00:00
8c93e39ddd
Linux build fixes and some warning cleanup for GCC
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2406 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-24 05:20:52 +00:00
af225bc9d2
Last Commit (Threads and Stop): Another Linux build fix, hopefully it works now
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2404 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-24 04:54:00 +00:00
5f4d304ebc
Threads and Stop: How about this? A timeout only for the shutdown process? That way the shutdown can either work anyway, or crash, which is simpler than having to open the Task Manager and manually end the deadlocked process.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2401 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-24 03:03:11 +00:00
042034f199
Restore proper functionality of events and thread waits. The arbitrary 5 sec timeout ( ??? ) broke stepping in the debugger.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2397 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-23 20:52:52 +00:00
472582022b
Core and Common Threads Stop and Start: Added timeout to the thread waiting loops. If we have waited more than five seconds we can be pretty sure that the thread is deadlocked. So then we can just as well continue and hope for the best.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2383 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-23 00:15:19 +00:00
68f5cc1873
Attempt to workaround some stop hangs by using MsgWait instead of Wait. change order of dsp / video shutdown. some comments.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2379 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-22 22:49:42 +00:00
927815bc9b
Core Stop and Start: Added alternative separate thread timer/loop based waiting, instead of same thread loop waiting. You can try it with the SETUP_TIMER_WAITING option in Setup.h.
...
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2375 8ced0084-cf51-0410-be5f-012b33b47a6e
2009-02-22 21:16:12 +00:00