Dolphin, the GameCube and Wii emulator - Forums

Full Version: Bounding Box emulation lags on AMD Radeon GPU.
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have an 'AMD Radeon HD 7670M' GPU to run dolphin, works great for me, and I don't encounter that much slowdown.


EXCEPT for the paper mario series, the freaking bbox emulation is so slow (that is, going through pipes, plane and sideways mode and building the bridge in TTYD, using the flipside tower elevator in SPM, and even switching characters in SPM), it lags the game from a constant 60 fps to an amusing 4 frames PER SECOND. Maybe my AMD card is kinda old, but it should support all that stuff, I mean the animation works correctly, it just lags like crazy.

My Intel Core i5 1.70 GHz CPU is not responsible for this lag, because it barely reaches 30% during the laggy parts. Unfortunatly I don't know how to check the usage of the GPU, so telling me about that would be much appreciated.

The Dolphin devs implemented a new and "improved" bbox, from what I get it uses the hardware to emulate the bbox instead of the old method, which "should" make the emulation quicker. It does not. Using the old revisions, I don't suffer from that lag during the bbox emulation, even my old Intel HD 4000 does emulate the game in older revisions almost perfectly. I don't want to go back to old revisions every time I want to play a game that uses bbox.

I don't know if I'm the only one suffering from this problem or not, and I can't directly submit it to the issue tracker because it's down and I don't know if they started a new one or now. So I had to submit my problem here.

Here is the idea that I have, it should solve all the problems that I have, and the problems that people with semi-old hardware have: Have an option named: Old Bbox emulation. I know it's messy to edit the whole code (even though from my quick look into the change, it's not that massive, they just removed a class and added few codes in), but it is going to let many people go the newest versions of dolphin.

Do any of you guys have this problem as well? Can any of the developers respond to this suggestion and whither it is possible or not?
(09-09-2015, 03:55 AM)Megadardery Wrote: [ -> ]The Dolphin devs implemented a new and "improved" bbox, from what I get it uses the hardware to emulate the bbox instead of the old method, which "should" make the emulation quicker.

It makes the emulation quicker on most GPUs that support it, but there are notable exceptions. I suppose your GPU is one of those.

(09-09-2015, 03:55 AM)Megadardery Wrote: [ -> ]I don't know if I'm the only one suffering from this problem or not, and I can't directly submit it to the issue tracker because it's down and I don't know if they started a new one or now. So I had to submit my problem here.

You're not the only one. The new issue tracker is up, but this issue is probably not going to be accepted if you submit it, despite it being a valid problem for some users. Issues with bad GPUs/drivers sometimes can't or won't be worked around, and this issue is one that could take quite a bit of effort to fix.

https://bugs.dolphin-emu.org/projects/emulator/issues

(09-09-2015, 03:55 AM)Megadardery Wrote: [ -> ]Here is the idea that I have, it should solve all the problems that I have, and the problems that people with semi-old hardware have: Have an option named: Old Bbox emulation. I know it's messy to edit the whole code (even though from my quick look into the change, it's not that massive, they just removed a class and added few codes in), but it is going to let many people go the newest versions of dolphin.

The old bounding box emulation was actually fairly hacky according to what I've heard. It was dropped from Dolphin because it was hard to maintain, even though it was known that the new hardware bounding box emulation wouldn't work for everyone. I can't comment further than that since I'm not familiar with the code.
(09-09-2015, 04:10 AM)JosJuice Wrote: [ -> ]You're not the only one. The new issue tracker is up, but this issue is probably not going to be accepted if you submit it, despite it being a valid problem for some users. Issues with bad GPUs/drivers sometimes can't or won't be worked around, and this issue is one that could take quite a bit of effort to fix.

https://bugs.dolphin-emu.org/projects/emulator/issues

Oh wow, I didn't know this one is up, because even the latest issue right now is "imported"
(09-09-2015, 04:10 AM)JosJuice Wrote: [ -> ]
(09-09-2015, 03:55 AM)Megadardery Wrote: [ -> ]Here is the idea that I have, it should solve all the problems that I have, and the problems that people with semi-old hardware have: Have an option named: Old Bbox emulation. I know it's messy to edit the whole code (even though from my quick look into the change, it's not that massive, they just removed a class and added few codes in), but it is going to let many people go the newest versions of dolphin.

The old bounding box emulation was actually fairly hacky according to what I've heard. It was dropped from Dolphin because it was hard to maintain, even though it was known that the new hardware bounding box emulation wouldn't work for everyone. I can't comment further than that since I'm not familiar with the code.
Like I said, from what I've seen in the code (not much), it's just a single class of code. My suggestion was to bring back the class, connect it with an option, and leave it unsupported.
(09-09-2015, 04:19 AM)Megadardery Wrote: [ -> ]Oh wow, I didn't know this one is up, because even the latest issue right now is "imported"

Yeah, that's just how it is. I agree that it's a bit odd.

(09-09-2015, 04:19 AM)Megadardery Wrote: [ -> ]Like I said, from what I've seen in the code (not much), it's just a single class of code. My suggestion was to bring back the class, connect it with an option, and leave it unsupported.

Leaving it unsupported would mean that any dev could remove it if it's in the way of changing something else in the code. That's more or less what already has happened.

Using a quick search, I couldn't find the PR that removed the old bounding box implementation, but I did find the one that added it. Looks like quite a bit more than one class... https://github.com/dolphin-emu/dolphin/pull/1095
yea yea, I was wrong, it's not a single class, it's not even a single PR. I got it confused with another issue. I still want to know if it is too much trouble.
The Radeon 7xxx and older have some kind of hardware/driver issue with bounding box. There isn't anything else we can do at the moment but wait. The old bounding box is incompatible with the vertex loader jit; so it's no longer in the codebase.
Tip: the old method was hacky, current developers are removing hacks in favour of accurate emulation since at least Dolphin 3.5-era, said that, the old implementation is veeeeeeeery unlikely to come back...
Just played TTYD a little bit today on a Radeon 7750 and i didn't notice any slowdown during plane and when going through pipes, but i did notice a massive slow on that first bridge, with the framerate decreasing to 12 fps. Both with "disable bounding box" checked and unchecked. At first, it doesn't concern me much.