Skip to content
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 broken on Linux by #3994 #4044

Closed
zekesonxx opened this issue Jan 12, 2018 · 12 comments
Closed

Vulkan broken on Linux by #3994 #4044

zekesonxx opened this issue Jan 12, 2018 · 12 comments

Comments

@zekesonxx
Copy link
Contributor

Title. Vulkan works on 51a2b43, but not on fbceec4 (#3994).

F RSX: Could not find a vulkan compatible GPU driver. Your GPU(s) may not support Vulkan, or you need to install the vulkan runtime and drivers

Tested on Arch Linux, kernel 4.13.12, Nvidia drivers 386.34, Wayland version 1.14, xfce4 (Wayland not in use, obviously).

Issue created with @hcorion's love and support.

@hcorion
Copy link
Member

hcorion commented Jan 12, 2018

I can also reproduce, Arch Linux, NVIDIA GTX 1070, driver version 387.34, KDE Plasma 5.11.5. Wayland is installed, but not in use.

Tagging @myfreeweb

@hcorion
Copy link
Member

hcorion commented Jan 12, 2018

Works with the latest AppImage downloaded from https://rpcs3.net/download , presumably because the AppImages don't build with wayland.

@valpackett
Copy link
Contributor

huh. Looks like this error happens when this function fails

uint32_t createInstance(const char *app_name, bool fast = false)
not much was changed here, why would it fail on nvidia specifically? Are the VK_KHR_XLIB_SURFACE_EXTENSION_NAME etc. defines somehow wrong?

@kd-11
Copy link
Contributor

kd-11 commented Jan 12, 2018

Maybe we just need to edit the cmake file to not enable wayland unless explicitly requested via config. When wayland is not available, vulkan runs fine. I'm pretty sure nvidia does not support wayland last I checked.

@kd-11
Copy link
Contributor

kd-11 commented Jan 12, 2018

Ugh

#else
				VK_KHR_XLIB_SURFACE_EXTENSION_NAME,
#endif
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
				VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
#endif

Only one should be requested at a time, not both. Either wayland or X but not wayland and X

@kd-11
Copy link
Contributor

kd-11 commented Jan 12, 2018

Retest with kd-11@73442a7

@kd-11
Copy link
Contributor

kd-11 commented Jan 12, 2018

A potentially better way of doing it kd-11@5369d2a
To enable wayland, pass USE_WAYLAND_EGL=ON to cmake, otherwise it should use X
I dont have wayland on my setup to actually test this

@valpackett
Copy link
Contributor

Oh. Yeah, right, that's a list where everything must be present. I'll make it a runtime decision.

(BTW, what nvidia doesn't support is GBM – Wayland compositors can work on their proprietary driver if they implement EGLStreams. They just didn't implement the Wayland surface, it seems.)

@kd-11
Copy link
Contributor

kd-11 commented Jan 12, 2018

Yea, its best to compile globally with xlib and have a cmake arg for wayland support, at least until support is universal. All vulkan drivers on linux support xlib surface but not all support wayland, and it might be that way for a while.

@valpackett
Copy link
Contributor

No, I mean, it's best to check supported extensions at runtime: #4048

@greentop
Copy link

PR #4048 corrects the Vulkan problem also seen in Ubuntu 16.04 using Nvidia 387.34.

@kd-11
Copy link
Contributor

kd-11 commented Jan 18, 2018

Closing as fixed

@kd-11 kd-11 closed this as completed Jan 18, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants