Dolphin, the GameCube and Wii emulator - Forums

Full Version: Custom D3D Version with massive performance boost and a lot of rendering fixes
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
When you upload the new build it will be based on the latest (at the time) master branch?
(05-27-2014, 03:09 AM)galop1n Wrote: [ -> ]And there is no obvious explication to your "More slutter than before", it may be placebo, it may be more apparent because the D3D backend is now faster, one thing possible is the EFBAccess emulation that still lack the cache that GL put to reduce a bit some uglyness in the implementation. If you have slutter with EFBAccess disable, it is more likely a slutter in some other part of dolphin not specific to D3D.

The stutter might also be your typical shader cache stutter on the first play... it's gets me every time because it's so bad, but it's only there on the first run after using a new build that needs to rebuild the shader cache for that game.
(05-27-2014, 06:41 AM)StripTheSoul Wrote: [ -> ]
(05-27-2014, 03:09 AM)galop1n Wrote: [ -> ]And there is no obvious explication to your "More slutter than before", it may be placebo, it may be more apparent because the D3D backend is now faster, one thing possible is the EFBAccess emulation that still lack the cache that GL put to reduce a bit some uglyness in the implementation. If you have slutter with EFBAccess disable, it is more likely a slutter in some other part of dolphin not specific to D3D.

The stutter might also be your typical shader cache stutter on the first play... it's gets me every time because it's so bad, but it's only there on the first run after using a new build that needs to rebuild the shader cache for that game.

Nah happens after that as well. Now I think it's just the cpu - > efb access being made more noticeable due to this build and my hardware. Before it was just slow performance overall and now it's varying/fluctuating performance.

Blacktail51

Not sure if you all already know this, but NVIDIA recently updated their drivers with an optimization for processor overhead on DirectX - link here: http://www.nvidia.co.uk/download/driverResults.aspx/76094/en-uk
Quote from page: "Significant CPU overhead reductions in the driver result in performance gains that will often favor CPU-bottlenecked situations." - sounds like Dolphin to me.
Not saying that this is unnecessary now, but this could throw off results from NVIDIA cards, as I have noticed a definite increase in my game speeds.
Just thought I should make sure everyone is aware of that, I'll leave now.
Nuuuuuuu build yet? Wink

Then I can test more with that texture fix and the latest code from master.
(05-28-2014, 07:48 AM)Blacktail51 Wrote: [ -> ]Not sure if you all already know this, but NVIDIA recently updated their drivers with an optimization for processor overhead on DirectX - link here: http://www.nvidia.co.uk/download/driverResults.aspx/76094/en-uk
Quote from page: "Significant CPU overhead reductions in the driver result in performance gains that will often favor CPU-bottlenecked situations." - sounds like Dolphin to me.
Not saying that this is unnecessary now, but this could throw off results from NVIDIA cards, as I have noticed a definite increase in my game speeds.
Just thought I should make sure everyone is aware of that, I'll leave now.

That's more or less bullshit and not applicable to Dolphin. Because the Wii GPU is "basic", what we send is quite "simple" and we are unlikely to follow "funky"driver code path that are not at a speed of light yet. I even have the exact opposite as a developer, often the driver remains in a state that is by far slower than it should because i use developer tools and something do not reset correctly and only a fresh driver install give me back performance ( and i am talking about something really massive ).

To what i observe now, d3d and driver are not an issue anymore, by trying to run the emulation at max speed, i hit first the CPU thread bottleneck most often (with efb read disable ), or generic code path in the video thread.


The EFB access is something quite painful for the modern way things works, imagine you have four elements that in the ideal case never sync each other, consuming and producing at their own pace :
1. CPU push things to VIDEO
2. VIDEO push things to D3D that push to DRIVER
3. DRIVER push things to GPU

Now, Driver are unlikely to process things as soon as you send them, they try to queue enough in stock to keep the GPU busy even when you have small blank in the stream of command a game send. It means that when CPU ask a read, it had to wait that the video wait for the driver to flush everything and wait for the gpu to complete. Only after that, the cpu can read the value, and start again to send rendering commands than will be send to D3D then to driver that will wait to queue enough to wake up the gpu, but it means that there is a slight amount of time that now the gpu will have nothing to do anymore. working, waiting, working, waiting, that's quite a lot of extra work eack time you have a sync and more chance to wait at a bad time that will require a lot of time before you can resume.

There is no real solution, the best hack would be to grant the EFB read with something of the last frame instead that should already ready for read. That's a hack but should be acceptable most of the time.
Did you upload the new build with the fix based on the recent master branch yet?
(05-29-2014, 04:56 AM)Xtreme2damax Wrote: [ -> ]Did you upload the new build with the fix based on the recent master branch yet?

A new build with some more small code optimization and up to date with the dolphin-emu master branch : https://drive.google.com/file/d/0BwFELyKmwoCnend5cU51NExhS28/edit?usp=sharing

It is as always a take it as it release, crash reports and feedback welcome.
There's something wrong with that build..

- Breaks my controller in emulated Wiimote and just reverts back to KB/Mouse. Controller plus emulated Wiimote are broken ingame as well so only KB/Mouse work. Not sure if it breaks the controller in the GCPad backend but the WiimoteNew backend with emulated Wiimote and my controller (X360 controller) is broken.

- Slower performance than the previous build and builds from master.

Oh and that stuttering or rapidly varying fps occurs even when disabling cpu -> efb access. Fps and performance are more consistent with the official builds from master.
A small report. Tongue

Luiigi´s Mansion: Speed up experienced when in E. Gadd´s gallery.

Mario Kart - Double Dash: No longer slows down when in the records menu. No longer freezes when on image transitions (first run). Speed up in character select. Shaders seems to be fixed.

More tests pending.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39