-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vulkan on Linux needs to auto-detect window system at runtime (PPSSPPSDL) #10477
Comments
Interesting:
Seems we are asking for some extension that's not available, for whatever reason. |
I'm guessing it's the windowing system it was built for? Does LibreELEC use MIR or Wayland or...? -[Unknown] |
I'll add some logging to be sure. |
@Anuskuss Please update and rebuild and try again :) |
Running b972624 produces this when running on pure Xorg:
The nvidia 387.34 driver indeed seems to not support the 'VK_KHR_wayland_surface' extension. As a sidenote: The failed attempt of enabling vulkan produces a second window that hangs around while ppsspp falls back to opengl and, otherwise, functions as usual. |
The CMake build seems to have detected wayland, which does not seem to be the right idea... Should probably switch to fully runtime detection, SDL exposes it nicely. |
On arch linux all packages are built with wayland support enabled but in this scenario it's just not functional, mainly because of the nvidia driver. |
Maybe we just take the first of those extensions that are both available and compiled on? -[Unknown] |
Nah, we'll just make use of this, as we already do: https://github.com/hrydgard/ppsspp/blob/master/SDL/SDLMain.cpp#L442 And make sure that we enable all the VK_USE_PLATFORM defines if they're available, and not just one, from the CMakeLists.txt. Although this makes me a little confused.. doesn't the above results mean that SDL currently is erroneously returning wayland there? |
I think it's because that check isn't on this line: ppsspp/Common/Vulkan/VulkanContext.cpp Line 123 in 191c4dd
It's not that we're trying to create a surface with it, just that we're trying to enable an extension that doesn't exist, right? -[Unknown] |
Oh, duh. Should be pretty easy to fix.. |
@hrydgard Thanks for the effort. As I stated earlier LibreELEC doesn't provide build tools and I'm not experienced enough to cross-compile, so I'll wait until a new SDL build is online |
One week later still no update. Did something break the buildbot? |
I built e119d37 and vulkan works fine now. |
I'll mark this closed then - if there are still issues with the window system detection, we can reopen. -[Unknown] |
I tried to cross-compile it myself and don't know what to blame (ppsspp, my build or the intel vulkan driver) but although the game ran fullspeed, it was a garbled mess. Don't know if it's worth creating an issue for that since I guess everything will mature over time. |
@Anuskuss Definitely worth reporting. Please create a new issue. |
@hrydgard It has to be my fault. First I assumed it has something to do with the fact that I'm building in a debian container, but even dualbooting Ubuntu on the same machine (and even going back to So if you don't want to debug my environment (which would be a huge waste of time IMHO) I'll just stick with the precompiled SDL builds from your website. |
Oh it works with the prebuilts? Odd. |
That's really odd indeed. I mean I haven't even done something unusual, just installed |
I've done some testing because parts of the car were invisible in both APIs. I could fix this on Debian by switching to Clang. On my Arch docker container the problem is still present when switching to Clang. Maybe it's an error with Clang 5 (Debian Buster still uses 4). Is this a known issue? P.S. The build instructions page could use some overhaul. Is Clang still recommended and is it really necessary to have |
OS: LibreELEC 8.2.2 (Linux)
PPSSPP:
v1.5.4-232-g2dda2bf
(SDL)LibreELEC has no build tools so I'm forced to use the precompiled binaries from build.ppsspp.org.
Log
Vulkan works fine since I'm able to use it in RetroArch. I can give you the output of
vulkaninfo
if that is of any use.The text was updated successfully, but these errors were encountered: