Project

General

Profile

Actions

Emulator Issues #4710

closed

Cross-platform problems - Severe opengl backend problem.

Added by colinportman over 13 years ago.

Status:
Won't fix
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

This is more of notification of a growing scenario that doesn't necessarily need a resolution, especially if dolphin-emu development as a community decide that a solely Windows and Directx alternative is the way forward. However, it does deserve cataloguing as an issue for general information to all linux and mac users who may be looking for reasons why Dolphin-emu doesn't seem to perform well on their computers. Also it provides general information to the community about the gap that exists but may not be documented clearly anywhere.

Currently to the best of my knowledge and the testing I have been able to carry out on multiple distributions, all revisions of Dolphin-emu that rely on the openGL renderer suffer at least a 50% speed decrease when compared to those deploying the direct X backend. To achieve playable consistent emulation of 50fps on linux or mac the setup should be a computer with at least a 4.0ghz dual core processor and a minimum of 2gb ram or more with a modern gpu and tweaked settings to allow minimal graphics at reasonable resolutions.

Naturally this means the alternative for most is to simply only run Dolphin-emu on a windows set-up and this is currently what I do as a user. But it should be pointed out that Dolphin-emu was intended as a cross platform software. But I do also understand that a user driven opensource project must make progress in any direction it can.

Anyway for some technical aspects of this problem - below are the main comments from the user Rpedela lifted from another thread explaining in detail some of the problems.

'Currently the opengl renderer requires an FBO for render2texture and the way it is currently implemented in OGL is to use a temporary FBO and attach a texture every time TextureCache::FromRenderTarget() is called. The result is the FBO is essentially re-created every time the function is called and that is expensive. In other words, DX11 does not incur an expensive FBO creation call.

Another OGL performance improvement would come from using vertex buffer objects. I see some VBO code but it is commented out. Most likely, geometry processing would be sped up a lot. Quads are drawn in many places and if a single VBO was used instead of glBegin() that would also speed things up a little. Looking through the code, I see the use of glBegin(), vertex arrays, misuse of FBOs, too much texture creation/deletion, unnecessary shader generation, not using GLSL, etc, etc. In other words, just about every bad practice possible in GL is utilized to some extent.

My recommendation is to rewrite the entire renderer using OpenGL ES 2.0. This will force developers to use best practices.'

I agree with Rpedela's thoughts but I am no programmer but hope Dolphin can stay a cross-platform endeavour. I hope this issue helps users searching, to better understand that Windows is the only practical option for currently running Dolphin-emu.

Actions

Also available in: Atom PDF