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
Make loader check if physical device function is available before calling #776
Comments
@charles-lunarg, is this fixed now? I thought we went through and did this with the last round of physical device function terminators. |
No, because this is an invasive change that I didn't want to try to make happen before 1.3. The challenge is that this will require storing the list of supported device extensions for each physical device, re querying them on each enumerate of physical devices. This is so that terminators for physical device functions can check that an extension is supported before calling into the driver. The cause for this issue is the vkGetToolingProperties function which caused crashes in mesa because the mesa infrastructure would return non-null from vkGetInstanceProcAddr but would subsequently crash if called (as the extension may not be supported by the physical device being called on it) |
Related issue #4 |
Action item from internal issue 2932
Currently, the loader only makes sure physical device functions aren't NULL before calling a drivers physical device function pointer. In some cases, the driver might return non-null for these functions but not actually support the function, causing crashes in the driver.
The loader should enumerate the list of device extensions that a physical device supports when
vkEnumeratePhysicalDevices
is called, then in each of the known device extension function terminator's make sure that the extension which provides the function is supported by the passed in physical device.The text was updated successfully, but these errors were encountered: