I asked this in one of the commits but haven't received an answer yet:
Quote:Hmm, I was wondering if it is at all possible for these optimizations be applied to DSP_LLE JIT recompiler or does that work differently than the JIT for the GC/WII CPU?
I don't want to give up hope that LLE JIT can't be made faster especially since hardly any developers want to work on HLE audio anymore. If LLE JIT can't be made faster can we get on with an HLE audio branch and some fixes to HLE audio please?
:Edit: My comment was in response to the recent JIT fixes and optimizations by calc84maniac such as this commit:
http://code.google.com/p/dolphin-emu/source/detail?r=ecc63651c73d4e3f59d742c656dda54d017e6bde
I know the commits were for the GC/WII CPU JIT but couldn't the same optimizations theoretically be applied to LLE JIT unless the JIT for the DSP is vastly different than the JIT for the CPU?
well the only way i know to make LLE JIT go faster is to enable LLE on Thread, however that crashes for most people. Maybe fixing this first could solve many slow down problems ( hyrule field slow down, super lag in SMG series, etc)...
Quote:I know the commits were for the GC/WII CPU JIT but couldn't the same optimizations theoretically be applied to LLE JIT unless the JIT for the DSP is vastly different than the JIT for the CPU?
I'll go ahead and save the devs some time and give you the answer you're going to get from them:
No No No No No No No No No No No No No No No No No No No No No No No No
I don't know where/how you got the idea into your head that the DSP is anything like a PPC cpu but it's not. The particular commit you linked to optimized the code for two functions in Jit64. The srawx and srawix functions. Those functions are named that because that's exactly what they do, emulate the srawx and srawix instructions, both of which as I'm sure you have figured out are part of the geckos instruction set (the list of instructions that the processor can process, each instruction being a piece of code that corresponds to a particular activity that the microprocessor can carry out, in this case those two particular instructions seem to be involved with right shifted arithmetic somehow). The DSP is a completely different chip. I know almost jack shit about the DSP but I can easily tell that it's clearly not a microprocessor, at least in the traditional sense. All that I can tell you is that it's a signal processor, it uses microcode, and that its primary purpose is to carry out audio related functions.
Just because dolphin uses "translators" (which is essentially what a recompiler is) to emulate both chips does not mean optimizations applied PPC instruction jit functions will benefit the DSP JIT in any way. I repeat, cpu instructions have nothing to do with DSP emulation. I'm sorry if that answer may have seemed a little dumbed down and I had to drag it out explaining the obvious. However the fact that you asked that question means that there was something in that paragraph that you previously did not understand, and I'm not sure what it was.
Quote:well the only way i know to make LLE JIT go faster is to enable LLE on Thread, however that crashes for most people. Maybe fixing this first could solve many slow down problems ( hyrule field slow down, super lag in SMG series, etc)...
He's talking about further improvements to the code, not existing options.
(01-07-2012, 02:19 PM)NaturalViolence Wrote: [ -> ]Quote:I know the commits were for the GC/WII CPU JIT but couldn't the same optimizations theoretically be applied to LLE JIT unless the JIT for the DSP is vastly different than the JIT for the CPU?
I'll go ahead and save the devs some time and give you the answer you're going to get from them:
No No No No No No No No No No No No No No No No No No No No No No No No
Quote:well the only way i know to make LLE JIT go faster is to enable LLE on Thread, however that crashes for most people. Maybe fixing this first could solve many slow down problems ( hyrule field slow down, super lag in SMG series, etc)...
He's talking about further improvements to the code, not existing options.
Is that a no, the optimizations can not be applied to the code for LLE JIT or no to the JIT for the DSP being vastly different from the JIT for the GC/WII CPU? I'm going to presume it's the former, but upon looking at the code for both I see similarities that it might not be all that impossible.
If it's not possible to give LLE audio a moderate speed boost then I'd soon would prefer to see efforts focused on fixing various issues with HLE audio, something that's been neglected for nearly three years. By three years I mean the volume, looping, missing sfx, reverb, pitch issues with some of the games that these issues are persistent in. Unless the Mame or BSnes approach is being taken, both performance and compatibility should be a priority.
I updated my post, by the way I have a habit of doing that for some reason.
Edit: NaturalViolence is shutting down for the night.
(01-07-2012, 02:19 PM)NaturalViolence Wrote: [ -> ]He's talking about further improvements to the code, not existing options.
This can be a further improvement, all because its already there why ignore it? Dolphin can get major speed ups from this so i dont see a negative side to considering it.
I didn't say the DSP and GC/Wii CPU were the same or similar, I was referring to the code for the JIT which seem to share similarities from what I could tell by looking at the code. The developers might have based the LLE JIT off the code for the PPC/Gecko JIT. That's all I was saying and wondering if it was at all possible for optimizations for PPC/Gecko JIT to be applied to LLE JIT. I'm not a coder so I wouldn't know, that's why I decided to ask.
(01-07-2012, 03:09 PM)yogoes123 Wrote: [ -> ] (01-07-2012, 02:19 PM)NaturalViolence Wrote: [ -> ]He's talking about further improvements to the code, not existing options.
This can be a further improvement, all because its already there why ignore it? Dolphin can get major speed ups from this so i dont see a negative side to considering it.
Doesn't give that large of a speed boost especially with Zelda/Mario games, caused Zelda/Mario games to lock up/freeze. Gives a marginal boost in other games at best and causes crackling in some games.
Is there any reason LLE JIT can not be made as fast as the PPC/Gecko JIT? Even dedicating a complete core to LLE audio does not offer much improvement and can often get quite slow even on powerful systems. I know with my i7 950 @ 4.2 Ghz in some games depending on what is happening my framerate drops as much as 50% or more.
I dont get any speed improvement with enabling LLE on thread (at least with my games).
Quote:I didn't say the DSP and GC/Wii CPU were the same or similar, I was referring to the code for the JIT which seem to share similarities from what I could tell by looking at the code.
Then you still don't get it for some reason. What similarities are you talking about? The filenames?
Quote:The developers might have based the LLE JIT off the code for the PPC/Gecko JIT.
Um.....no. That doesn't make any sense. It's like saying "the developers might have based this MS-DOS emulator on an N64 since they both use a JIT recompiler".
Quote:I dont get any speed improvement with enabling LLE on thread (at least with my games).
It depends on a couple of factors. If the CPU thread is the bottleneck enabling LLE on thread won't provide any speedup. But if the video/audio thread is the bottleneck it will improve performance. The bottleneck shifts depending on the game and settings.
(01-08-2012, 03:20 AM)NaturalViolence Wrote: [ -> ]Quote:I didn't say the DSP and GC/Wii CPU were the same or similar, I was referring to the code for the JIT which seem to share similarities from what I could tell by looking at the code.
Then you still don't get it for some reason. What similarities are you talking about? The filenames?
Quote:The developers might have based the LLE JIT off the code for the PPC/Gecko JIT.
Um.....no. That doesn't make any sense. It's like saying "the developers might have based this MS-DOS emulator on an N64 since they both use a JIT recompiler".
Quote:I dont get any speed improvement with enabling LLE on thread (at least with my games).
It depends on a couple of factors. If the CPU thread is the bottleneck enabling LLE on thread won't provide any speedup. But if the video/audio thread is the bottleneck it will improve performance. The bottleneck shifts depending on the game and settings.
If you look at the code for both, you would see that they resemble each other. Then again I haven't had much sleep so maybe I'm seeing something that isn't there.