Dolphin, the GameCube and Wii emulator - Forums

Full Version: GPU utilization and emulation speed
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
When using x3 IR, 8X SSAA, per pixel lighting and hybrid ubershaders I get a really smooth gameplay (https://imgur.com/a/vX8NZ), with my gpu not going above 60% utilization. But if put x4 IR or above, that happens: https://imgur.com/a/kl5kq even though my gpu is not being fully utilized. Is that normal ? Thanks
It's probably due to efb access to cpu causing stalling. Maybe if you disable it it will make more sense (but break the game)
There's a chance that Dolphin is using all of one part of your GPU but not using other components to their fullest, which, depending on how you're checking GPU usage, may not show as 100% utilisation even though there's no way that Dolphin could use more. As well as this, Dolphin can't use the GPU when the CPU is busy preparing data for it and often can't use the CPU while the GPU is preparing data that the CPU will need. This means that the GPU will be fully utilised for part of a frame and then idle for the rest of it. This is also shown as partial utilisation by a lot of monitoring applications, but again, Dolphin can't go any faster.
(01-29-2018, 12:14 PM)Craftyawesome Wrote: [ -> ]It's probably due to efb access to cpu causing stalling. Maybe if you disable it it will make more sense (but break the game)

https://imgur.com/a/AVJOg Its already off
edit: You mean enable it?
Remember - the "gpu utilization" is an average over a period of time - it's entirely possible it's still limited by that despite not showing "100%".

For example, in an imaginary game it could spend half the frame running game logic and preparing deciding what to draw. It then submits the draw lists to the GPU. At this point the GPU can start working on drawing. If the CPU then does something that requires the GPU to be finished with it's work, such as reading back it's output, do an explicit wait, or something that the GPU driver /might interpret/ as a wait (it has to play safe "just in case" for correctness), the CPU would be idle for the time it takes the GPU to do all it's work. Then only once the GPU is finished can the CPU continue, and move onto the next frame. As the GPU has no commands to run, it goes idle.

In this case, (depending on how much time the CPU/GPU uses for each task relatively), it is limited by the CPU and GPU speeds, despite neither showing "100% utilization".

Generally, a "well-written" game would limit communication between the CPU and GPU to allow both to be running asynchronously as much as possible, but some things /require/ some level of communication (and thus waiting on one side for the other). On an emulator, it's even harder - as the games were written with a different system architecture in mind, which might have different things that cause different levels of communication between the two.
8xSSAA + 4xIR is a big enough resolution that you will slow your GTX 1070 to a crawl.
(01-31-2018, 12:08 AM)JMC47 Wrote: [ -> ]8xSSAA + 4xIR is a big enough resolution that you will slow your GTX 1070 to a crawl.
My doubt was I could handle x3 IR, 8x SSAA with gpu usage below 60%, but in x4 I was getting substantial frame drops (with gpu usage below 80%).
(01-31-2018, 12:37 AM)Oscubb Wrote: [ -> ]My doubt was I could handle x3 IR, 8x SSAA with gpu usage below 60%, but in x4 I was getting substantial frame drops (with gpu usage below 80%).

See my above post - "not 100% utilization" doesn't always mean it's not bottlenecked on that device.
(01-29-2018, 10:43 PM)AnyOldName3 Wrote: [ -> ]...As well as this, Dolphin can't use the GPU when the CPU is busy preparing data for it and often can't use the CPU while the GPU is preparing data that the CPU will need. This means that the GPU will be fully utilised for part of a frame and then idle for the rest of it. This is also shown as partial utilisation by a lot of monitoring applications, but again, Dolphin can't go any faster.

(01-30-2018, 01:08 AM)Oscubb Wrote: [ -> ]https://imgur.com/a/AVJOg Its already off
edit: You mean enable it?

EFB access to cpu is one of these scenarios