Additional changes to Vulkan 1.1 API updates
This commit includes the following:
- Make new/Vulkan 1.1 core commands be optional in codegen. Before this
change, the loader crashed when starting with a 1.0 app, and using a 1.0 ICD.
That's because the loader couldn't find "required" 1.1 entrypoints. This
change makes those entrypoints "optional" with a new annotation in the api
file.
- Changes from internal reviews, including a fix for the algorithm of
EnumeratePhysicalDeviceGroups.
Test: Run with a 1.0 app with a 1.0 driver and make sure the loader works
Change-Id: I55914b680a1601cb9f3f2cc0257091a0a34ae7f2
diff --git a/vulkan/libvulkan/code-generator.tmpl b/vulkan/libvulkan/code-generator.tmpl
index e13ec0e..3b48e08 100644
--- a/vulkan/libvulkan/code-generator.tmpl
+++ b/vulkan/libvulkan/code-generator.tmpl
@@ -419,7 +419,7 @@
INIT_PROC(§
{{end}}
- {{if GetAnnotation $ "optional"}}false{{else}}true{{end}}, §
+ {{if GetAnnotation $ "optional"}}false{{else if GetAnnotation $ "vulkan1_1"}}false{{else}}true{{end}}, §
{{if (Macro "IsInstanceDispatched" $)}}
instance, §
@@ -734,9 +734,6 @@
{{else if eq $.Name "vkCreateDevice"}}true
{{else if eq $.Name "vkEnumeratePhysicalDevices"}}true
{{else if eq $.Name "vkEnumeratePhysicalDeviceGroups"}}true
- {{else if eq $.Name "vkGetDeviceGroupPresentCapabilitiesKHR"}}true
- {{else if eq $.Name "vkGetDeviceGroupSurfacePresentModesKHR"}}true
- {{else if eq $.Name "vkGetPhysicalDevicePresentRectanglesKHR"}}true
{{else if eq $.Name "vkGetDeviceQueue"}}true
{{else if eq $.Name "vkGetDeviceQueue2"}}true
{{else if eq $.Name "vkAllocateCommandBuffers"}}true
@@ -976,9 +973,6 @@
{{/* We cache physical devices in loader.cpp */}}
{{else if eq $.Name "vkEnumeratePhysicalDevices"}}true
{{else if eq $.Name "vkEnumeratePhysicalDeviceGroups"}}true
- {{else if eq $.Name "vkGetDeviceGroupPresentCapabilitiesKHR"}}true
- {{else if eq $.Name "vkGetDeviceGroupSurfacePresentModesKHR"}}true
- {{else if eq $.Name "vkGetPhysicalDevicePresentRectanglesKHR"}}true
{{else if eq $.Name "vkGetInstanceProcAddr"}}true
{{else if eq $.Name "vkGetDeviceProcAddr"}}true