Page 1 of 2 12 LastLast
Results 1 to 10 of 17
  1. #1
    EmuTalk Member
    Join Date
    Aug 2006
    Posts
    9

    Thoughts about Dolphin Performance (For Dolphin Developers)

    Hello there.

    Well, all in all Dolphin is quite impressive. But aside from the more important
    compatibility problem, It has some performance flaws. I'm talking about Video
    Plugin's design.

    I've tested some aspects of Dolphin performance and discovered that Video Plugin could use some major tweaking.

    Let's take Resident Evil Zero as an example. I'm using last Dolphin beta (1.0.3), since the ingame speed is no different from previous versions.



    Take a close look at the statistics.

    So we have 27k triangles in this scene, which is the typical count for Riva TnT 2 generation video card, running at 5 FPS on GeForce 6600 GT.

    You might say "Of course, this is an emulation, after all!". But take a look at this:

    - 5584 DrawIndexedPrimitive Calls
    - 5585 SetVertexShader Calls

    This means that you are submitting 10k heavy like hell calls each frame, and killing off CPU completely. I also suspect that Dolphin performs a lot of buffer
    locking operations which is also _very_ expensive.



    Think about it: 25k DrawIndexedPrimitive Calls = 100% busy 1 Ghz CPU.
    You're making 5k calls. But you need a lot of CPU time for emulating, plus
    game logic, plus background applications. You can't just have all your CPU
    for submitting.

    This is no big secret for me that GameCube architecture is very different, and
    it is possible that GC DIP calls are not as expensive as thier PC counterparts.

    But you have to do something about this. The maximum count should be no higher than 500-600 for DIP calls, and 100-200 for SVS calls. Until then Dolphin
    will remain "A Pregnant Snail".

    So it seems to this is the main bottle neck. (Oh, come on, we all know that
    Resident's game logic is not too complex: no physics, AI is quite simple, tiny scenery and so on)

    The specs are: 3 Ghz Pentium 4, 1 GB RAM, GeForce 6600 GT 128 MB.
    Last edited by Cdti; August 1st, 2006 at 15:16.


    • Advertising

      advertising
      EmuTalk.net
      has no influence
      on the ads that
      are displayed
        
       

  2. #2
    Sexy's back! vlado's Avatar
    Join Date
    May 2005
    Location
    Bucharest
    Posts
    66
    Sorry i'm not a coder but i'm wondering , if this wold be fixed wold the game speed go up considerably ?

  3. #3
    EmuTalk Member
    Join Date
    Aug 2006
    Posts
    9
    Yes, the speed boost may be dramatic.

    In case of Resident Evil 0 and above mentioned specs It may achieve playable FPS.

    But don't forget, that this is plugin architecture flaw, and not a bug.
    So it's hard to fix, but it should be done in order to get playable emu with
    current PCs..

  4. #4
    Sexy's back! vlado's Avatar
    Join Date
    May 2005
    Location
    Bucharest
    Posts
    66
    wew , that's really nice i hope it's exactly like you say , i really suck at C++ etc. i'm just a web designer

  5. #5
    Sexy's back! vlado's Avatar
    Join Date
    May 2005
    Location
    Bucharest
    Posts
    66
    i'd also have a request for you could you perform this test on pcsx2 to?
    if you can and wold find some bugs or smth please post them here http://forums.ngemu.com/pcsx2-official-forum/

  6. #6
    ????????????????????????? Doomulation's Avatar
    Join Date
    Nov 2001
    Location
    ????????????????
    Posts
    8,780
    Anyone can say that less work for the CPU means speedup. I suggest we wait and see. Though from a programmer's view, I would say it is a sensible idea.
    Atashi wa juu-yon-sai no onna no ko! Atashi no namae wa Miizuki. Yurushiku ne!
    Nani? Atashi o shinjirimasen desu ka? Baka!
    "You're all doomed! Doomed, I say! Hehe... are we approaching the end of the world?"

    shikata ga kaite aru - "the instructions are written above"
    Need to download GoodN64 or instructions to use it? Need to check if it's a good or bad rom?
    Download: Glide64 | Hacktarux's wrapper

  7. #7
    EmuTalk Member
    Join Date
    Aug 2006
    Posts
    9
    Anyone can say that less work for the CPU means speedup.
    Well, of course, but this is not just "less work for the CPU". Right now, CPU is literally jammed with graphics. If you'll take your time testing Direct3D9, you'll soon discover that even without any game logic (bare graphics) - 5k DIP calls will dampen your FPS below 10 even on high specs PC.

    Secondly, in the above mentioned example (and in Dolphin emulated games in general) GPU remains idle, while CPU is working like crazy. So it really does not matter if you have GeForce 6600, four GeForce 7800s in Quad SLI or a crappy GeForce 2.

    i'd also have a request for you could you perform this test on pcsx2 to?
    Ok, I'll check it out later.

  8. #8
    ????????????????????????? Doomulation's Avatar
    Join Date
    Nov 2001
    Location
    ????????????????
    Posts
    8,780
    Quote Originally Posted by Cdti
    Well, of course, but this is not just "less work for the CPU". Right now, CPU is literally jammed with graphics. If you'll take your time testing Direct3D9, you'll soon discover that even without any game logic (bare graphics) - 5k DIP calls will dampen your FPS below 10 even on high specs PC.
    The less calls you make, the less work for the CPU to process and do all those calls, basically.
    I'm not into graphics programming, but anything with that lots of calls with passing memory and allocating means a big slowdown. I cannor say how big since I haven't worked on 3d graphics before. But you are right I presume.

    Secondly, in the above mentioned example (and in Dolphin emulated games in general) GPU remains idle, while CPU is working like crazy. So it really does not matter if you have GeForce 6600, four GeForce 7800s in Quad SLI or a crappy GeForce 2.
    The GPU hardly matters in emulation, as we know this.
    Atashi wa juu-yon-sai no onna no ko! Atashi no namae wa Miizuki. Yurushiku ne!
    Nani? Atashi o shinjirimasen desu ka? Baka!
    "You're all doomed! Doomed, I say! Hehe... are we approaching the end of the world?"

    shikata ga kaite aru - "the instructions are written above"
    Need to download GoodN64 or instructions to use it? Need to check if it's a good or bad rom?
    Download: Glide64 | Hacktarux's wrapper

  9. #9
    EmuTalk Member
    Join Date
    Aug 2006
    Posts
    9
    The less calls you make, the less work for the CPU to process and do all those calls, basically.
    I'm not into graphics programming, but anything with that lots of calls with passing memory and allocating means a big slowdown. I cannor say how big since I haven't worked on 3d graphics before. But you are right I presume.
    You're right of course. But transfering data from CPU to GPU on current generation PCs architecture is very expensive. And decreasing call count from 5 thousands to 5 hundreds will bring dramatic speed increase.

    Secondly, in the above mentioned example (and in Dolphin emulated games in general) GPU remains idle, while CPU is working like crazy. So it really does not matter if you have GeForce 6600, four GeForce 7800s in Quad SLI or a crappy GeForce 2.
    Well, it does actually if you are using techniques to decrease load on CPU and bring it on GPU instead.

  10. #10
    ????????????????????????? Doomulation's Avatar
    Join Date
    Nov 2001
    Location
    ????????????????
    Posts
    8,780
    Yes, but such things are not common. The GPU processes graphics, and to my knowledge, there are not many who have written shaders to offload load from the cpu.
    Otherwise the GPU is quite... idle. Often-wise, at least... I think.
    Atashi wa juu-yon-sai no onna no ko! Atashi no namae wa Miizuki. Yurushiku ne!
    Nani? Atashi o shinjirimasen desu ka? Baka!
    "You're all doomed! Doomed, I say! Hehe... are we approaching the end of the world?"

    shikata ga kaite aru - "the instructions are written above"
    Need to download GoodN64 or instructions to use it? Need to check if it's a good or bad rom?
    Download: Glide64 | Hacktarux's wrapper

Page 1 of 2 12 LastLast

Similar Threads

  1. Revolution Control Revealed!
    By Hexidecimal in forum Gaming
    Replies: 167
    Last Post: October 3rd, 2005, 09:05

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •