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

Changing render libs should crash if not supported and return to previous, working one - Future Feature request #11166

Closed
tilkinsc opened this issue Jun 10, 2018 · 10 comments

Comments

@tilkinsc
Copy link
Contributor

Before I installed vulkan redist, PPSSPP crashed on me. Similar thing happened with directx. I had to either go into the config and manually switch it, which I didn't because this end user couldn't find it within 2 seconds of opening, or re-extract it. Also makes sharing my hard drive with multiple devices weird.

Probably could be fixed by a series of init tests on startup, i.e. find out where the GFX API crashes at. Probably at xInit(); or context creation.

@unknownbrackets
Copy link
Collaborator

Is this about Windows, Linux, or some other platform?

Does this happen with stable version releases, or only git builds? The Windows git builds don't come with redist dlls.

-[Unknown]

@tilkinsc
Copy link
Contributor Author

Windows, probably linux if it wasn't configured for vulkan
Both stable and git release

@hrydgard
Copy link
Owner

It tries to check for success, but yeah if it crashes we're in trouble...

@unknownbrackets
Copy link
Collaborator

With #11346 and #11802, we're now mostly doing this. Not as much for Direct3D, but if a crash occurs it'll usually work to try starting PPSSPP again.

That said, if you're currently set to Vulkan and we detect Vulkan is unavailable, I don't think we switch away (and probably wouldn't want that...?)

As long as it's not the driver crashing, and just us doing insufficient validation before calling an unavailable API, this ought to be fixable...

-[Unknown]

@tilkinsc
Copy link
Contributor Author

(and probably wouldn't want that...?)
If I don't use vulkan and no desire to obtain it, I shouldn't have to learn to read the ini and change a value so PPSSPP boots, for example on a flash drive without the first time run.

@unknownbrackets
Copy link
Collaborator

Well, that assumes that the Vulkan detection code is never broken and never needs troubleshooting. Having the option to bypass it and try anyway, or even have it crash if I'm trying to figure out why it's crashing, can be nice.

It's kinda like if I set my computer to boot off a hard drive, but the hard drive had disk errors. I wouldn't actually want it to silently boot off a different hard drive, I would want it to complain.

But I do realize this is at odds with the shared ini between different setups use case, as I'd mentioned.

-[Unknown]

@tilkinsc
Copy link
Contributor Author

It doesn't silently fail. It tells you what it set to render with on init, even first time init.

@unknownbrackets
Copy link
Collaborator

How's this working now? We've improved some of the handling, so generally speaking it should correct after the crash on the first run. We can't always detect if the device is supported due to driver problems, but we've improved that too.

-[Unknown]

@tilkinsc
Copy link
Contributor Author

I think I was merely, and crpytoly, suggesting to fall back to other renderers? I have vulkan now and would be fearful to uninstall it to test this case. As long as Vulkan doesn't fail, as it is the default renderer, and it crash the entire program, then you should be A OK!

@unknownbrackets
Copy link
Collaborator

Great, I'm going to close this then - I believe it's working well and we haven't gotten further reports of issues when it's set wrong either.

-[Unknown]

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

3 participants