Oh, welcome back marcos.
There you go: http://pastie.org/1303701
There you go: http://pastie.org/1303701
dok's "FIFO is overflown by Gatherpipe" fix
|
11-17-2010, 07:16 AM
The code looks very interesting. That eliminate my isFifoBusy HACK If this code works fine. I can implement my project with FIFO in other thread because this patch should be solve all timing issues that I had
11-17-2010, 07:45 AM
(This post was last modified: 11-17-2010, 07:49 AM by Xtreme2damax.)
Welcome back marco.
Quite a few fifo/vi issues fixed, as far as I know the issue with RECVX is still not fixed. Dlist caching is still buggy, but better now than it was. Quote:I can implement my project with FIFO in other thread Does that mean placing the fifo on a separate thread like Skid tried doing once before? If done properly that could benefit multi-core/multi-threaded processors by keeping the fifo seperate from the Wii GPU and PPC processor threads. Last time Skid tried that there was no real gain by doing this, but that was a while back so I don't know about now. A quick poke regarding idle skipping which still isn't working with this patch. Issue with Crash Bandicoot - Wrath of Cortex needs to be fixed as well, which now has these fifo overflown errors and crashes that this game never had previously. I don't see why this couldn't be committed to svn after those two minor issues are addressed. 11-17-2010, 08:03 AM
Xtreme: Rodolfo and Me have new Ideas. Dont worry. The Video thread ALWAYSSSSSSSSSSSSSSS is one. The multithread idea is only for advance work like Process vertex in background or jiting VideoOPDecoding or improve fifo loop. Skidau in the past launch a lot of video thread thats why it didnt work. Beside DListCache is not related with these improves.
11-17-2010, 08:12 AM
I am certainly looking forward to this for one. It seems that Tino/Rodolfo doesn't have a lot of time these days, but I will be awaiting this as patiently as can be.
11-17-2010, 09:55 AM
If I were to rip out the multithreading code and do it all over again, I would try the following: do a first simple parse of the GPU commands on the CPU thread, doing things like responding to breakpoint etc immediately, while actually putting the gfx instructions like loadbp or drawprimitive on a queue, that a graphics thread then reads from, decodes the vertices, and executes. That would take a lot of the randomness out of things. It would only need to synchronize the draw thread fully when doing things like copying from EFB to RAM, or hitting breakpoints and tokens.
I have no idea if this would be faster in practice, or if I'm missing something that would make it not work though. 11-18-2010, 04:12 AM
(11-17-2010, 07:45 AM)Xtreme2damax Wrote: Does that mean placing the fifo on a separate thread like Skid tried doing once before? If done properly that could benefit multi-core/multi-threaded processors by keeping the fifo seperate from the Wii GPU and PPC processor threads. Last time Skid tried that there was no real gain by doing this, but that was a while back so I don't know about now. (11-17-2010, 09:55 AM)ector Wrote: If I were to rip out the multithreading code and do it all over again, I would try the following: do a first simple parse of the GPU commands on the CPU thread, doing things like responding to breakpoint etc immediately, while actually putting the gfx instructions like loadbp or drawprimitive on a queue, that a graphics thread then reads from, decodes the vertices, and executes. That would take a lot of the randomness out of things. It would only need to synchronize the draw thread fully when doing things like copying from EFB to RAM, or hitting breakpoints and tokens. drk also said that on IRC, so I'd go with doing as much work as possibly off the video thread, to avoid unnecessary synchronization and/or buffer copying. So, count me in for the "no further thread for it" idea. When implemented correctly, it can be moved out into another thread easily anyways 11-20-2010, 05:30 AM
(This post was last modified: 11-20-2010, 05:31 AM by Xtreme2damax.)
Patch needs a quick update, there was a change to /JIT64IL/JITIL.cpp recently. I manually patched/updated the file myself, but I'm not sure if I did it correctly.
11-22-2010, 02:28 PM
(This post was last modified: 11-22-2010, 06:47 PM by Xtreme2damax.)
:Edit: Nevermind, the error exists even on unpatched builds with JITIL, don't know how I missed that. Still, this patch makes NSMB slow especially since idle skipping can't be enabled with the patch.
11-22-2010, 02:54 PM
We need to get this thing committed so it doesn't keep depreciating...hopefully the issues with Idle skipping and CB Wrath of Cortex can be sorted out. Maybe with a fresh compile of the latest source and this patch will yeild different results than before?
Intel Core i5 2500k @ 4.3 ghz. (Sandy Bridge CPU) / Asus P8P67 / 4 Gig Ram / GeForce GTX 660/ Creative X-fi / Win 8.1 Pro 64 bit
|
« Next Oldest | Next Newest »
|