(02-06-2012, 09:07 AM)NaturalViolence Wrote: [ -> ]You write large scale software using visual basic? I'm going to assume you're familiar with other languages/frameworks that you use for that because if you use visual basic for that you're insane.
Nope, I usually write everything in Delphi: from simple Database front-ends and small tools to large multi-user packages. But, due to lack of Delphi programmers at my company, they kinda forced me to use Visual Basic and CScript instead (Basically, I'm stuck using access DB's with a huge front end programmed solely in VB. Ugh...), in case I would be incapacitated in any way... Wasn't my call, or I'd have them learn Delphi, or I would have started learning C/C++, which was on my soon-to-do list. For a long time I was just to busy to get in to it, but now I guess is a good time to pick it up.
BTW, the Guide for compiling using Visual Studio 2010 on the main Wiki needs additions. I'll post them later on.
EDIT: Posted the Wiki info on the Wiki page itself as comment. Following the current Wiki results in various errors without these additions.
I also managed to get 100% speed when affinity is set to both my cores, without the frame skipping. Speed still drops to 90-95% sometimes, but compared to the 75-85% it was before it's still an improvement.
In Fifo_Player_Thread() I changed:
Code:
if (_CoreParameter.bLockThreads)
Common::SetCurrentThreadAffinity(1); // Force to first core
to:
Code:
if (_CoreParameter.bLockThreads)
{
Common::SetCurrentThreadAffinity(1); // Force to first core
// I know: Bad Idea, raising Thread priority! So Only do it when Locking Threads
SetThreadPriority("FIFO player thread", THREAD_PRIORITY_HIGHEST);
}
Of course, this will fail if Dual-core mode isn't enabled, because the Thread would get another name. I'll fix that later (Personally, I never use single-core mode anyway, and I have no intention to make my builds publicly available ATM). Thus far, I haven't had any stability issues yet, but I haven't really played that much either.
Switching just the affinity code around didn't work. I fact, it caused both threads to "get it on" on my 2nd core, until I opened up task-manager to confirm Dolphin's affinity, which was set to ALL, so I clicked OK and suddenly both my cores were used again (Checked it twice, I probably switched something wrong)
Also, I noticed some texture artifacts (some textures blinking every 10 frames or so) in 3.0-415-dirty which I didn't have in the 3.0-370-dirty Lectrode Build. They also apprear if I download the pre-build from here.