-
Notifications
You must be signed in to change notification settings - Fork 441
Validation errors when enabling unsupported instance or device extensions #2532
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
Comments
What extensions and features are you enabling, and what validation error do you get? |
Sorry for the late reply, I somehow lost track of this issue. This is not about any particular extension or feature. The Vulkan specification allows an application to request unavailable extensions/features and requires the implementation to check them and return Basically I would expect I can write
and then handle the The situation is similar for device extensions and device features (though the vulkano validation error does not mention any VUID for the latter). |
The Vulkan error is not very useful to the user, though. It says that something isn't present, but not what. Vulkano's error gives more information. |
That is a good point, though I would argue that you can always query supported extensions/features manually if required. I would suggest to at least document this behavior, i.e. state that enabled extensions/features must be supported for In general, my expectation with vulkano is that as long as I comply with the Vulkan specification, I can safely ignore any validation errors. Perhaps I am just wrong with this assumption. |
If you comply with the Vulkan specification, there shouldn't be any validation errors to begin with. |
That's what I thought, but there are - that's the whole point of this issue. The specification allows requesting unsupported extensions/features, but if you do, you get a validation error. |
Creating an instance or device with unsupported extensions causes a validation error with VUID-vkCreateInstance-ppEnabledExtensionNames-01388 or VUID-vkCreateDevice-ppEnabledExtensionNames-01387, respectively. However, according to the Vulkan specification, it is perfectly valid to request unsupported extensions; they are guaranteed to cause a VK_ERROR_EXTENSION_NOT_PRESENT. The VUIDs only require that required extensions of enabled extensions are also enabled, which is ensured by Vulkano even with the unchecked functions for instance or device creation.
I think the current checks for extension support on creation should be removed. They are redundant since the Vulkan implementation is required to do them anyway, and I would not expect any validation error if no VUID is violated.
The text was updated successfully, but these errors were encountered: