-
Notifications
You must be signed in to change notification settings - Fork 685
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
FI: Vulkan Instance #466
Comments
@gpx1000 what do you think of this idea to replace instance creation? Something similar for device creation would also help simplify things |
We can handle default validation layers and debug utils
Or these can be inside a |
I definitely like it. Abstraction of complexity is ALWAYS a good thing for samples. I do however, want to ensure we maintain a sample that explicitly shows how to create an instance. As an odd tangent to this concern is that the OpenXR runtime will be responsible for instance creation wholly on it's own. Thus, doing this might make creating an OpenXR sample easier to essentially "look" more like the other samples as this is also abstracted away. |
A sample will have full control over everything. No more platform, no VulkanSample or ApiSample wrappers. So if a sample wants to not use these helpers then they have the options to use pure vulkan. ApiSample and VulkanSample will be replaced by |
How about we close this? Samples can (and some do) override the |
What is the Problem?
Samples will need to create a Vulkan Instance. The usual route of passing vectors of layers and extensions to toggle is not very dynamic and tends to lead to bad code in the future. It would be great to have some form of InstanceBuilder to simplify this process.
What is the proposed Solution?
Add an instance builder class which has some helpful API patterns to simplify the process of enabling and disabling layers and extensions.
Examples
Example API usage. Allows a sample to have full control over instance creation with the least amount of code.
The text was updated successfully, but these errors were encountered: