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

vkCreateDevice may fail #9489

Closed
Megamouse opened this issue Dec 23, 2020 · 2 comments
Closed

vkCreateDevice may fail #9489

Megamouse opened this issue Dec 23, 2020 · 2 comments

Comments

@Megamouse
Copy link
Contributor

Megamouse commented Dec 23, 2020

It's hard to reproduce, but sometimes RPCS3 triggers a breakpoint in vkCreateDevice.
It may also get stuck without any error on that exact line.

You may reproduce it by constantly starting and stopping a game:
Step 1: choose a simple game that doesn't take long to boot.
Step 2: press play button in RPCS3 main window
Step 3: wait until the game window opened
Step 4: press stop button in RPCS3 main window
Step 5: repeat steps 2-4 until you get either stuck or it triggers the breakpoint (this may take some time)

@kd-11
Copy link
Contributor

kd-11 commented Dec 28, 2020

This should happen if you destroy the window in one thread and create a device in another. There is no way to tell the OS to hold my window handle for me so the only option I suppose is to block the game window destructor until a context has been created. However, I can already see many ways in which this can fail.
Note that because on some platforms Qt never actually registers the window with the windowing subsystem until it is visible, hiding the window is not really an option here. Alternatively, the windowing can be done by the backend but that defeats the purpose of having Qt. I'll think of some easier workaround later.

@Megamouse
Copy link
Contributor Author

I can't really reproduce this after #10430.
So I'll close this for now

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

No branches or pull requests

2 participants