vulkan: initial loader and null driver
Change-Id: Id5ebb5f01e61e9b114990f49c64c88fbbb7b730e
(cherry picked from commit 4df205cdfc61e66de774ba50be9ef59a08cf88bb)
diff --git a/vulkan/api/templates/vulkan_common.tmpl b/vulkan/api/templates/vulkan_common.tmpl
index 8c27c02..135c835 100644
--- a/vulkan/api/templates/vulkan_common.tmpl
+++ b/vulkan/api/templates/vulkan_common.tmpl
@@ -199,3 +199,24 @@
{{Global $d.Name $d.Expression}}
{{end}}
{{end}}
+
+
+{{/*
+-------------------------------------------------------------------------------
+ Given a function, return "Global", "Instance", or "Device" depending on which
+ dispatch table the function belongs to.
+-------------------------------------------------------------------------------
+*/}}
+{{define "Vtbl#VkInstance" }}Instance{{end}}
+{{define "Vtbl#VkPhysicalDevice"}}Instance{{end}}
+{{define "Vtbl#VkDevice" }}Device{{end}}
+{{define "Vtbl#VkQueue" }}Device{{end}}
+{{define "Vtbl#VkCmdBuffer" }}Device{{end}}
+{{define "Vtbl_Default" }}Global{{end}}
+{{define "Vtbl"}}
+ {{AssertType $ "Function"}}
+
+ {{range $i, $p := $.CallParameters}}
+ {{if not $i}}{{Node "Vtbl" $p}}{{end}}
+ {{end}}
+{{end}}