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

Use On Screen Display Notification for Unsupported Metal Warning #8181

Closed
wants to merge 2 commits into from
Closed

Use On Screen Display Notification for Unsupported Metal Warning #8181

wants to merge 2 commits into from

Conversation

@techydude0713
Copy link

@techydude0713 techydude0713 commented Jun 14, 2019

I was trying to play a game on MacOS High Sierra using Metal backend, when there was a warning that Metal was unsupported (5.0-10451). I click OK to continue, but the game wouldn't launch. "Ignore for this session" would not launch the game either. Instead of using Panic Alerts, an OSD alert should display on screen for 60 seconds (just like OpenGL notifications). The game will launch like expected, and the message will still be read.
I sent a bug/suggestion report for more information:
http://dolp.in/i11764

@mbc07
Copy link
Contributor

@mbc07 mbc07 commented Jun 15, 2019

Err, doesn't the video backend needs to be successfully initialized in order to display OSD messages? On that scenario, if I understood correctly, the backend fail to initialize, so no OSD messages and hence the Panic Alert instead...

@stenzek
Copy link
Contributor

@stenzek stenzek commented Jun 15, 2019

I disagree with this. There are features missing from High Sierra which we make use of (e.g. MSAA texture arrays). We also used to crash the shader compiler for Intel GPUs (fixed in 10.14). The warning is there so that we don't get bug reports from people who are intentionally using an unsupported configuration.

@stenzek
Copy link
Contributor

@stenzek stenzek commented Jun 15, 2019

Sorry, I should have read the linked report. If it is freezing up Dolphin, that's something I can investigate when I have time. We might have to find a different way of displaying the message if the PanicAlert is breaking, perhaps in the Qt frontend instead.

@techydude0713
Copy link
Author

@techydude0713 techydude0713 commented Jun 15, 2019

Err, doesn't the video backend needs to be successfully initialized in order to display OSD messages? On that scenario, if I understood correctly, the backend fail to initialize, so no OSD messages and hence the Panic Alert instead...

Not exactly: in post 5.0-10451, when Vulkan is selected as a backend for MacOS (pre-Mojave), as soon as the game is launched, the warning should appear in a Panic alert (which it did). However, clicking ignore or OK would only cause the game to not boot (black screen, 0 FPS).

In this PR, instead of using Panic alerts, OSDs are used to show the warning. For some reason, the backend does fine here, and it boots the game without problem.

EDIT: Screencap - https://youtu.be/uEBOvEWji-k

@VinDuv
Copy link
Contributor

@VinDuv VinDuv commented Jun 15, 2019

FWIW, on my machine (10.13 High Sierra, Nvidia graphic card with the web drivers), the Vulkan backend seems to work correctly with no crashes after clicking either button on the panic alert. If anti-aliasing is enabled, it fails to start and eventually errors out with “Unable to initialize video backend”, though.

In my case, I’d prefer having a less obtrusive warning message, since I have to validate it at least every time I start Dolphin (and I think it also prevents the game window from getting to the foreground)

@Techjar
Copy link
Contributor

@Techjar Techjar commented Jun 15, 2019

I'm also against this change, for the same reasons as Stenzek, and the fact that the OSD relies on the video backend, so if it fails to initialize for some reason the user won't ever see the message. This defeats the purpose of the message, because we don't care if Vulkan fails on anything older than 10.14.

@techydude0713
Copy link
Author

@techydude0713 techydude0713 commented Jun 16, 2019

I'm also against this change, for the same reasons as Stenzek, and the fact that the OSD relies on the video backend, so if it fails to initialize for some reason the user won't ever see the message. This defeats the purpose of the message, because we don't care if Vulkan fails on anything older than 10.14.

Understood. I began to see what type of alerts would work. Once again, all types of panic alerts would not boot the game, however it did have different effects. For some alerts (like yes/no), disabling panic handlers would boot the game. When using PanicAlert with panic handlers off, the game would not boot. 🤔Maybe a one time Qt Yes/No confirmation dialog, right before game launch would be best to display the warning.

@techydude0713
Copy link
Author

@techydude0713 techydude0713 commented Jul 10, 2019

Closed PR, because of mistake in repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
5 participants