-
-
Notifications
You must be signed in to change notification settings - Fork 21.1k
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
Manually load glXSwapInterval function pointers #68714
Conversation
Tested just now, no crash this time :) |
Apologies for double posting, I was looking at this a few hours ago, and didn't notice this fix. I can confirm that this patch fixes the crash for Nvidia cards on Linux, I'm using driver: 520.56.06 Alternatively can't we just skip setting the extensions to nullptr's and use what GLAD has already loaded? This also works on my system:
GLAD SwapInterval extension loaders be here: Lines 149 to 161 in 95a85c9
|
CC @Riteo |
Superseded by #68727, @alcomposer's patch does sound like a cleaner solution (and seems to work in my tests). |
I'm a bit concerned why @clayjohn 's iGPU didn't crash before. Possibly Intel don't have these extensions? |
It didn't crash for me either on Intel and AMD, it seems to be a Nvidia specific issue. But yeah, I don't know why. |
Sorry guys, this was my fault. I removed that exact code without removing the pointer references. See #68727 (comment). |
Well, I'm just thinking I can't see anything calling a nullptr and recovering. So possibly that if/else block just returns on those platforms? We have confirmed that V-Sync gets set right? Nvidia |
@alcomposer what are you talking about? If you mean that it should've had crashed with my wrong change, it did. If you're wondering whether VSync is set right, I don't know. The Intel iGPU didn't crash before because in the meantime my PR was merged. At least if "before" doesn't mean "with the same commit". |
Ah indeed, I reverted #68727 locally and I can reproduce the crash with Intel and AMD on Mesa now. |
Fixes issue reported in #68700 (comment)
This copies the code from 3.x for initializing the swap interval function with GLX. By actually calling the vsync code I had exposed an issue that has been around since the early GLES3 port. For some reason the old code was working fine on my system (intel iGPU) My guess is my system was able to pull the MESA version while the NVidia drivers crashed in one of the latter two options.
This works fine on my system, but my system wasn't crashing before. Will need testing from someone who can reproduce.
cc @Lateasusual