• Login
  • Register
  • Dolphin Forums
  • Home
  • FAQ
  • Download
  • Wiki
  • Code


Dolphin, the GameCube and Wii emulator - Forums › Dolphin Emulator Discussion and Support › General Discussion v
« Previous 1 ... 141 142 143 144 145 ... 369 Next »

Hyrule Field Slowdown Observation
View New Posts | View Today's Posts

Pages (74): « Previous 1 ... 37 38 39 40 41 ... 74 Next »
Jump to page 
Thread Rating:
  • 2 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes
Hyrule Field Slowdown Observation
06-22-2010, 01:41 PM
#381
Xtreme2damax Offline
New & Improved
********
Global Moderators
Posts: 3,135
Threads: 91
Joined: Mar 2009
I was wrong about the culling, I tested SMG2 again and found that culling was indeed working as XTra.KrazzY said. At first, I wasn't able to reproduce culling on Dolphin, as I did on the actual Wii. Tested it again the next night on Dolphin, and confirmed that culling is working, not sure why there is such horrendous performance issues with Dolphin and some games.
Find
Reply
06-22-2010, 05:19 PM
#382
StripTheSoul Offline
YouKittenMe?
*******
Posts: 4,639
Threads: 39
Joined: Oct 2009
@ kernel64: Does that mean in SMG1/2 Dolphin doesn't render the whole level all the time?
Intel i5-4690k (Devil's Canyon) @ 3.5 GHz (+Scythe Mugen) / Gainward GTX 1070 Phoenix (OC'd) / ASUS Z97 PRO GAMER / 16GB G.Skill DDR3-2400 CL10 TridentX / X-Fi XtremeMusic / Win10 Pro 64bit / Dell S2716DG Monitor / 3x original WiiMote+MotionPlus+Nunchuk
Find
Reply
06-22-2010, 08:42 PM
#383
RupeeClock Offline
Dolphin Enthusiast
****
Posts: 445
Threads: 9
Joined: Dec 2009
Could it be as simple as implementing a far clipping plane in dolphin?
Or does it already do that?

[Image: viewVolume.gif]
[Image: e33MT.gif]
[Image: 971934.png]
Find
Reply
06-23-2010, 08:05 AM
#384
NaturalViolence Offline
It's not that I hate people, I just hate stupid people
*******
Posts: 9,013
Threads: 24
Joined: Oct 2009
Quote:Hyrule field is very slow even on this kind of cpus. Being a GC game, it might be handling Hyrule field in a different way. Maybe that's why Dolphin apparently loads and renders the entire Hyrule field.

Not true. Many I7 users including one of my friends I can directly confirm, having seen it first hand, achieve full speed in hyrule fields WITHOUT the patch. I am still trying to figure out why, and why only some I7 users seem to be affected while others have the normal slowdown.
"Normally if given a choice between doing something and nothing, I’d choose to do nothing. But I would do something if it helps someone else do nothing. I’d work all night if it meant nothing got done."  
-Ron Swanson

"I shall be a good politician, even if it kills me. Or if it kills anyone else for that matter. "
-Mark Antony
Website Find
Reply
06-23-2010, 08:32 AM
#385
Hiperzone Offline
Junior Member
**
Posts: 5
Threads: 0
Joined: Jun 2010
(06-22-2010, 01:00 PM)kernel64 Wrote: Great, at least we have something to think about. In SMG or SMG2, a good cpu manages to achieve close to full speed frame rates, even on complex levels. Hyrule field is very slow even on this kind of cpus. Being a GC game, it might be handling Hyrule field in a different way. Maybe that's why Dolphin apparently loads and renders the entire Hyrule field.

the reason why hyrule field is slow is because dolphin is rendering over 128k triangles in that field wich slows everything down cause the cpu cant handle that kind of mount of data. Im in the post zora part of the game btw.
Find
Reply
06-23-2010, 08:38 AM
#386
obscured Offline
Senior Member
****
Posts: 317
Threads: 1
Joined: May 2010
No...I disagree. It's a bug. I used 2.0 and got halfspeed and used the patch version and got 85-90% speed.
Find
Reply
06-23-2010, 09:09 AM (This post was last modified: 06-23-2010, 09:14 AM by Xtreme2damax.)
#387
Xtreme2damax Offline
New & Improved
********
Global Moderators
Posts: 3,135
Threads: 91
Joined: Mar 2009
Skid, remember when I did the profiling and it was determined that Fifo_EnterLoop was the most intensive? Would the following code have anything to do with that and is there any way to alleviate this?

Code:
// If we are in BP mode we only send 32B chunks to Video plugin for BP checking
            if (_fifo.bFF_BPEnable)
            {
                if ((readPtr <= _fifo.CPBreakpoint) && (readPtr + 32 > _fifo.CPBreakpoint))
                {
                    Common::AtomicStore(_fifo.bFF_GPReadEnable, false);
                    Common::AtomicStore(_fifo.bFF_Breakpoint, true);
                    if (_fifo.bFF_BPInt)
                        CommandProcessor::UpdateInterruptsFromVideoPlugin();
                    CommandProcessor::FifoCriticalLeave();
                    break;
                }

                distToSend = 32;
                if (readPtr >= _fifo.CPEnd)
                    readPtr = _fifo.CPBase;
                else
                    readPtr += 32;
            }
            // If we are not in BP mode we send all the chunk we have to speed up
            else
            {
                distToSend = _fifo.CPReadWriteDistance;
                // send 1024B chunk max length to have better control over PeekMessages' period
                distToSend = distToSend > 1024 ? 1024 : distToSend;
                if (readPtr + distToSend >= _fifo.CPEnd + 32)
                {
                    distToSend = _fifo.CPEnd + 32 - readPtr;
                    readPtr = _fifo.CPBase;
                }
                else
                    readPtr += distToSend;
            }
Find
Reply
06-23-2010, 10:44 AM
#388
Hiperzone Offline
Junior Member
**
Posts: 5
Threads: 0
Joined: Jun 2010
lol you may disagree but the data i saw while testing the game showed me a huge amount of primitives being rendered. A normal Map or the initial world got average 18k primitives while the late world map got over 128k. i get average 15 Fps with my cpu and with the patch 18 fps so, and thats because you are cuting some processing data to get more fps. Theres room for optimization ofc and there might be a bug somewhere but thats another story ;P.
For now im trying to get some extra processing power from the gfx plugin, will see how it plays out later.
Find
Reply
06-23-2010, 11:00 AM
#389
skid Offline
skidau / skid_au
**********
Developers (Some Administrators and Super Moderators)
Posts: 2,006
Threads: 8
Joined: Aug 2009
Code:
// If we are in BP mode we only send 32B chunks to Video plugin for BP checking
            if (_fifo.bFF_BPEnable)
            {
                if ((readPtr <= _fifo.CPBreakpoint) && (readPtr + 32 > _fifo.CPBreakpoint))
                {
                    Common::AtomicStore(_fifo.bFF_GPReadEnable, false);
                    Common::AtomicStore(_fifo.bFF_Breakpoint, true);
                    if (_fifo.bFF_BPInt)
                        CommandProcessor::UpdateInterruptsFromVideoPlugin();
                    CommandProcessor::FifoCriticalLeave();
                    break;
                }

                distToSend = 32;
                if (readPtr >= _fifo.CPEnd)
                    readPtr = _fifo.CPBase;
                else
                    readPtr += 32;
            }

This is the breakpoint functionality of the FIFO. It is vital to how the FIFO works. This code looks correct-ish.


Code:
            // If we are not in BP mode we send all the chunk we have to speed up
            else
            {
                distToSend = _fifo.CPReadWriteDistance;
                // send 1024B chunk max length to have better control over PeekMessages' period
                distToSend = distToSend > 1024 ? 1024 : distToSend;
                if (readPtr + distToSend >= _fifo.CPEnd + 32)
                {
                    distToSend = _fifo.CPEnd + 32 - readPtr;
                    readPtr = _fifo.CPBase;
                }
                else
                    readPtr += distToSend;
            }
This is the speed hack within the FIFO. Changing the "1024" to "32" in the following line would make the FIFO work closer to how the real hardware works.

Code:
distToSend = distToSend > 1024 ? 1024 : distToSend;

The code you've extracted above constitutes the core of the FIFO within Dolphin.
Find
Reply
06-23-2010, 11:07 AM
#390
Xtreme2damax Offline
New & Improved
********
Global Moderators
Posts: 3,135
Threads: 91
Joined: Mar 2009
I see, I was just asking because of the following comment:

Quote:// If we are in BP mode we only send 32B chunks to Video plugin for BP checking

Kiesel-Steins Hyrule Field speedup patch is a modification to bpstructs.cpp to keep some of the environment (texturing?) from getting flushed through the pipeline. The only problem is that it causes graphical glitches with some other games and it only seems to work with Twilight Princess.
Find
Reply
« Next Oldest | Next Newest »
Pages (74): « Previous 1 ... 37 38 39 40 41 ... 74 Next »
Jump to page 


  • View a Printable Version
  • Subscribe to this thread
Forum Jump:


Users browsing this thread: 1 Guest(s)



Powered By MyBB | Theme by Fragma

Linear Mode
Threaded Mode