Emulator Issues #6105
GLSL-master merge destroys graphics on fglrx/Linux
Do *not attach files to this issue. Upload them to another site and
link here. Use imgur.com for images.*
Have you searched the issue tracker for a similar issue?
Seems to be all of them. I've provided screenshots of Smash Bros Brawl, Custom Robo, and Twilight Princess
What went wrong?
The graphics are now completely chaotic, psychedelic colledoscopes of vertices and textures flying all over the place.
What did you expect to happen?
The game's graphics to be intelligible by minds other than those of the Outer Gods.
What steps will reproduce the problem?
Running the emulator.
What version of Dolphin were you using?
64 or 32 bit Dolphin?
What version of Dolphin used to work?
Can't remember, last updated from AUR around the middle of Frebruary; i.e. before the GLSL merge.
What Operating System were you using and what are your hardware
OS: Manjaro Linux Openbox Edition
Kernel: x86_64 Linux 3.7.10-1-MANJARO
CPU: Intel Core i5-750
Graphics: AMD 5850 running on fglrx driver
64 or 32 bit Operating system?
Any other relevant information or links to logs:
screenshots of the problem:
Title screen of Custom Robo: http://i.imgur.com/S0HcuK1.png
Title screen/intro of Twilight Princess: http://i.imgur.com/zDDCSKC.png
Menu screen of Smash Bros Brawl: http://i.imgur.com/9SPMIO8.png
#3 Updated by degasus almost 7 years ago
Your picture looks like streaming vertices don't work. As we support the new extension AMD_pinned_memory, I think the best way to debug is to disable it, but in this way, we would loose the biggest performance gain.
So could you please try it again with this patch:
#5 Updated by amotiss almost 7 years ago
I have a similar problem with last compiled Dolphin (3.5-1034)
No artefact, just a blackscreen for Wii and GC games/homebrews/systemenu/bios.
I have try your patch, it change nothing.
Linux Ubuntu 12.10 x86-64 / AMD Radeon HD 7850 / Catalyst 13.2 bêta 7 / Core I5 3570K / 16Go ram
#8 Updated by degasus almost 7 years ago
I think we should split this issue as amotiss report a different bug. It seems that some fglrx versions/gpus/distributions don't like the pinned memory extension. So now it is disabled complete for fglrx.
Do you want to check the performance difference between master 3.5-1035 and the last patch?
Can someone please try it on a debug build? Perhaps some gl_errors would help to point out the issue.
I'm sorry for this issue isn't fixed as fast as the others, but it's hard to debug just "black screens" :-(
#14 Updated by nerzhultheking almost 7 years ago
Confirmed, i have no graphics with fglrx. All is black.
But http://markus.members.selfnet.de/dolphin/use_buffersubdata.patch fixed the problem for me.
#16 Updated by degasus almost 7 years ago
so, finally I gave up to find which versions of fglrx are broken and disabled it for all non-windows plattforms.
seele, nerzhultheking: it should now work for you
amotiss: I think we have another issue. But as there are no gl errors, I still don't know what has happend :-(
#19 Updated by degasus almost 7 years ago
YuriShish: this bug seems to be amd only, so I think you have another issue. What are you MSAA settings? Could you please try a debug build (eg http://dl.dolphin-emu.org/builds/dolphin-GLSL-master-3.5-1023-dbg-x64.7z ) and look for ogl errors
#22 Updated by ccox421 almost 7 years ago
Under Debian, with a Geforce GT 30M and the latest NVIDIA drivers, I also get the message "Missing Extensions: PinnedMemory", and the ingame speed is 1/2 of the speed I had before the GLSL merge.
How can I compile a Debug build under Debian with cmake?
#25 Updated by ccox421 almost 7 years ago
Recompiled the Debug version, but I do not see anything related to OGL in the output. What should I expect, or should I do anything to test it?
wickmarkus: I don't understand well, is it a general remark, or is there something I should change in the config?
#31 Updated by ccox421 almost 7 years ago
FYI, I tested a many versions, and this problem was not present before the GLSL merge (Rev. d63d7fde9e9c was fine and fast), and the problem appeared in the first compilable version (Rev. 234604e067c4).
I use a 64-bit Dolphin version under Linux Debian (unstable) with latest Nvidia beta drivers.
#32 Updated by degasus almost 7 years ago
neobrain: your issue should be fixed by this commit:
#34 Updated by majosamaso over 6 years ago
Seems more or less the same issue which happens on Gentoo x86_64 AMD 4850HD but I have less weird vertices and more solid color screens
Mesa building info:
media-libs/mesa-9.1.1 was built with the following:
USE="bindist classic egl gallium gles2 llvm nptl shared-glapi -debug -gbm -gles1 -openvg -osmesa -pax_kernel -pic (-r600-llvm-compiler) (-selinux) -vdpau -wayland -xa -xorg -xvmc" PYTHON_SINGLE_TARGET="python2_7 -python2_6" PYTHON_TARGETS="python2_7 -python2_6" VIDEO_CARDS="radeon -i915 -i965 -intel -nouveau -r100 -r200 -r300 -r600 -radeonsi -vmware"
When I have time, I will try recompile Mesa with that patch
#41 Updated by degasus over 6 years ago
thepouar: The broken feature are uniform buffer objects (ubo). You can disable it here, but there will be a huge performance drop:
Or try to help the neauvou project to fix this issue :-)
#42 Updated by degasus over 6 years ago
This bug is finally also fixed on nouveau: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5c37039797938e43a7dfb6c7d39a1f0bb4f32df3
As this patch is also in mesa-9.1.6, all mesa drivers should be able to run dolphin out of the box soon. Also the performance seems to be fine on mesa-9.2 :-)
I'll create a workaround to disable UBO on unsopported drivers.
Could someone please test again the fglrx pinned memory + index buffer bug?
#43 Updated by cwz0522 over 6 years ago
I have no idea about how to test the bug, I am newcomer, test the emu during the two week, and the speed of linux version is slower than windows one.
I am glad to test it and speed up it.
I have AMD FireGL M8900 (i.e. 6970M) + fglrx driver: 13.4 + Smash Bros Brawl.
What configurations needed to test the bug?
Need patch file?
Only show black window?
#44 Updated by degasus over 6 years ago
Can you try to change this line:
s_indexBuffer = new StreamBuffer(GL_ELEMENT_ARRAY_BUFFER, MAX_IBUFFER_SIZE, (StreamType)(DETECT_MASK & ~PINNED_MEMORY));
s_indexBuffer = new StreamBuffer(GL_ELEMENT_ARRAY_BUFFER, MAX_IBUFFER_SIZE);
Then you either see a black screen or not.
For performance, have you also tried the OpenGL backend on windows? As DirectX isn't available on linux, only the performance of the OpenGL backend matters. It's also known that the amd linux driver is a bit slower than the windows one.
#46 Updated by cwz0522 over 6 years ago
I clean & rebuild 3.5-1687, remove ~/.dolphin-emu & installed dirs & files, and get screen other than black.
#48 Updated by degasus over 6 years ago
- Status changed from Accepted to Fixed
As this issue report is used for many different bugs, I'm going to close it now. Please follow the other issues for updates:
YuriShish: do you still get a black screen with the closed source nvidia driver? If so, please create another issue report.
All mesa black screen should be fixed with recent mesa versions. For older ones, ubo need to be disabled. Please see issue 6446.
The performance issue on nvidia tesla devices + linux still exists (and I don't know why). Please see issue 6333.
The original issue report: AMD pinned memory + index buffer is still broken (thx @ cwz0522) and so stays disabled. I hope they support buffer storage object soon.