pal1000 / mesa-dist-win

Pre-built Mesa3D drivers for Windows
MIT License
935 stars 82 forks source link

Rendering a completely black screen #18

Closed denna10 closed 5 years ago

denna10 commented 5 years ago

Hello!

This is probably a user related issue (me) but I couldn't find another way to contact you and ask about the issue. I am running Windows 10 and I'm using AMD R9 280 GPU, the app I want to run is Cemu, which is an emulator of the Wii U.

Since AMD OpenGL drivers are not that good, I wanted to try the Mesa drivers and found this thread: https://www.opengl.org/discussion_boards/showthread.php/199121-Mesa3d-installing-for-Windows-10/page3

I downloaded the mesa-18.2.6-release-sfx.exe, ran it, then I ran the perappdeploy.cmd, and provided the info for the folder of cemu.exe. Now Cemu runs using mesa it seems (At least it says Generic GPU driver, instead of AMD GPU as it normally does), but the screen is completely black. I have tried a couple of different settings in the perappdeploy.cmd, but the result is the same. Have I missed something fundemental? Anything else that I might be doing wrong?

I am quite convinced that there is a large community out there that would very much appreciate it, if this solution would work.

Many thanks in advance!

pal1000 commented 5 years ago

cemu is probably too much for Windows llvmpipe driver due to the following reasons:

You can try to use MESA_GL_VERSION_OVERRIDE and MESA_GLSL_VERSION_OVERIDE to mess around with OpenGL context, but don't expect much. Read the docs about OpenGL context override: https://github.com/pal1000/mesa-dist-win#opengl-context-configuration-override And see some exemples here: https://github.com/pal1000/mesa-dist-win/tree/master/examples GPU Caps Viewer requesting OpenGL 3.3 compatibility profile and rpcs3 requesting OpenGL 4.3 compatibility profile should be most helpful. citra works decently on fast CPUs as it is very light, but cemu is a completely different story.

denna10 commented 5 years ago

Thank you for your feedback!

pal1000 commented 5 years ago

I made some tests and I was able to get Kung Fu Panda: Showdown of legendary legends to display with llvmpipe Mesa 18.3.0. It appears you have to tell Mesa to use OpenGL 4.6 core profile (see the docs from my previous post) but as I expected it's not worth it, it is too slow, it runs in seconds per frame realm on this old system I have. A very powerful system could hit a few frames per second in theory but it would still be unplayable. If you want to try anyway you have to create a batch script (.cmd or .bat) with this content

@rem Cemu requires OpenGL 4.6 core profile
@set MESA_GL_VERSION_OVERRIDE=4.6
@set MESA_GLSL_VERSION_OVERRIDE=460
@cemu

and have it in cemu root folder and start cemu from that cmd file.

denna10 commented 5 years ago

Thank you! You are completely right. It runs, but it is too slow. It seems I am not able to find a way around the weak AMD OpenGL drivers. I tried previously running cemu (through wine) on Linux with mesa drivers, which seems to have worked great for a lot of people, but for me it gave worse performance. I suppose that it should have been a clue that running mesa on windows wouldn't improve things, but hope is the last thing that dies in us =P. It just seems so unnecessary to get a different GPU when I'm quite happy with the R9 280 overall. Once again, thanks!