Hello,
I have a question about extensions:
Using “Hardware Capability Viewer” I don’t see under Extensions “VK_KHR_win32_surface”, but if I go to web site (click on Device button) under surface i see
surfaceExtension VK_KHR_win32_surface
So I really don’t understand, I can enable these extensions: “VK_KHR_surface” , “VK_KHR_win32_surface” using “VkInstanceCreateInfo”, but then I can’t enable using “VkDeviceCreateInfo”
Using “vkEnumerateDeviceExtensionProperties” I see the same extensions as “Hardware Capability Viewer”, and that’s ok, but why I can enable “VK_KHR_surface” , “VK_KHR_win32_surface” in “VkInstanceCreateInfo”?
So I really don’t understand, I can enable these extensions: “VK_KHR_surface” , “VK_KHR_win32_surface” using “VkInstanceCreateInfo”, but then I can’t enable using “VkDeviceCreateInfo”
The device interface and instance interface are separate interfaces, so they both can be extended. Device extensions affect the behavior of a particular device, a particular GPU. Instance extensions don’t care about specific GPUs.
The surface extensions are instance extensions. Surfaces and surface creation is independent of devices that use them. VK_KHR_surface defines the behavior of surfaces, and VK_KHR_win32_surface defines how to create surfaces in Windows. These don’t have anything to do with specific hardware devices; they’re talking to the OS, not a particular GPU.
Thank you very much Alfonse,
so I cannot use “VK_KHR_surface” , “VK_KHR_win32_surface” to create device right?
I can only use the extensions that can I see calling vkEnumerateDeviceExtensionProperties for example, or under extensions tab in “Hardware Capability Viewer” ?
And if so, what extensions I can use to create instances?