aboutsummaryrefslogtreecommitdiff
path: root/loader
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2016-10-11 09:17:57 -0600
committerMark Lobodzinski <mark@lunarg.com>2016-10-12 13:45:33 -0600
commita0d14a610fab9608956ff9f36284b086eba93ef6 (patch)
tree1d1321636df7fe3101972bcfec70f30e8058518b /loader
parent34abf2be930f2230dcb111dd69aaa2fd31be0550 (diff)
downloadusermoji-a0d14a610fab9608956ff9f36284b086eba93ef6.tar.xz
loader: Remove dead code from loader gen script
Change-Id: Ie6ad81c1f0097b93c3006a737d57a69d81ee70e8
Diffstat (limited to 'loader')
-rwxr-xr-xloader/vk-loader-generate.py183
1 files changed, 0 insertions, 183 deletions
diff --git a/loader/vk-loader-generate.py b/loader/vk-loader-generate.py
index 1be98982..6df17b9b 100755
--- a/loader/vk-loader-generate.py
+++ b/loader/vk-loader-generate.py
@@ -115,127 +115,6 @@ class Subcommand(object):
def generate_footer(self):
pass
-class DevExtTrampolineSubcommand(Subcommand):
- def generate_header(self):
- lines = []
- lines.append("#include \"vk_loader_platform.h\"")
- lines.append("#include \"loader.h\"")
- lines.append("#if defined(__linux__)")
- lines.append("#pragma GCC optimize(3) // force gcc to use tail-calls")
- lines.append("#endif")
- return "\n".join(lines)
-
- def generate_body(self):
- lines = []
- for i in range(250):
- lines.append('\nVKAPI_ATTR void VKAPI_CALL vkDevExt%s(VkDevice device)' % i)
- lines.append('{')
- lines.append(' const struct loader_dev_dispatch_table *disp;')
- lines.append(' disp = loader_get_dev_dispatch(device);')
- lines.append(' disp->ext_dispatch.DevExt[%s](device);' % i)
- lines.append('}')
- lines.append('')
- lines.append('void *loader_get_dev_ext_trampoline(uint32_t index)')
- lines.append('{')
- lines.append(' switch (index) {')
- for i in range(250):
- lines.append(' case %s:' % i)
- lines.append(' return vkDevExt%s;' % i)
- lines.append(' }')
- lines.append(' return NULL;')
- lines.append('}')
- return "\n".join(lines)
-
-class LoaderEntrypointsSubcommand(Subcommand):
- def generate_header(self):
- return "#include \"loader.h\""
-
- def _generate_object_setup(self, proto):
- method = "loader_init_dispatch"
- cond = "res == VK_SUCCESS"
- setup = []
-
- if not self._requires_special_trampoline_code(proto.name):
- return setup
-
- if "Get" in proto.name:
- method = "loader_set_dispatch"
-
- if proto.name == "GetSwapchainInfoKHR":
- ptype = proto.params[-3].name
- psize = proto.params[-2].name
- pdata = proto.params[-1].name
- cond = ("%s == VK_SWAP_CHAIN_INFO_TYPE_PERSISTENT_IMAGES_KHR && "
- "%s && %s" % (ptype, pdata, cond))
- setup.append("VkSwapchainImageInfoKHR *info = %s;" % pdata)
- setup.append("size_t count = *%s / sizeof(*info), i;" % psize)
- setup.append("for (i = 0; i < count; i++) {")
- setup.append(" %s(info[i].image, disp);" % method)
- setup.append(" %s(info[i].memory, disp);" % method)
- setup.append("}")
- else:
- obj_params = proto.object_out_params()
- for param in obj_params:
- setup.append("%s(*%s, disp);" % (method, param.name))
-
- if setup:
- joined = "\n ".join(setup)
- setup = []
- setup.append(" if (%s) {" % cond)
- setup.append(" " + joined)
- setup.append(" }")
-
- return "\n".join(setup)
-
- def _generate_loader_dispatch_entrypoints(self, qual=""):
- if qual:
- qual += " "
-
- funcs = []
- for proto in self.protos:
- if self._is_loader_non_trampoline_entrypoint(proto):
- continue
- func = []
-
- obj_setup = self._generate_object_setup(proto)
-
- func.append(qual + proto.c_func(prefix="vk", attr="VKAPI"))
- func.append("{")
-
- # declare local variables
- func.append(" const VkLayerDispatchTable *disp;")
- if proto.ret != 'void' and obj_setup:
- func.append(" VkResult res;")
- func.append("")
-
- # get dispatch table
- func.append(" disp = loader_get_dispatch(%s);" %
- proto.params[0].name)
- func.append("")
-
- # dispatch!
- dispatch = "disp->%s;" % proto.c_call()
- if proto.ret == 'void':
- func.append(" " + dispatch)
- elif not obj_setup:
- func.append(" return " + dispatch)
- else:
- func.append(" res = " + dispatch)
- func.append(obj_setup)
- func.append("")
- func.append(" return res;")
-
- func.append("}")
-
- funcs.append("\n".join(func))
-
- return "\n\n".join(funcs)
-
- def generate_body(self):
- body = [self._generate_loader_dispatch_entrypoints("LOADER_EXPORT")]
-
- return "\n\n".join(body)
-
class DispatchTableOpsSubcommand(Subcommand):
def run(self):
if len(self.argv) != 1:
@@ -372,65 +251,6 @@ class WinDefFileSubcommand(Subcommand):
return "\n".join(body)
-class LoaderGetProcAddrSubcommand(Subcommand):
- def run(self):
- self.prefix = "vk"
-
- # we could get the list from argv if wanted
- self.intercepted = [proto.name for proto in self.protos]
-
- for proto in self.protos:
- if proto.name == "GetDeviceProcAddr":
- self.gpa = proto
-
- super().run()
-
- def generate_header(self):
- return "\n".join(["#include <string.h>"])
-
- def generate_body(self):
- lookups = []
- for proto in self.protos:
- if proto.name not in self.intercepted:
- lookups.append("/* no %s%s */" % (self.prefix, proto.name))
- continue
-
- lookups.append("if (!strcmp(name, \"%s\"))" % proto.name)
- lookups.append(" return (%s) %s%s;" %
- (self.gpa.ret, self.prefix, proto.name))
-
- special_lookups = []
- for proto in self.protos:
- if self._is_loader_non_trampoline_entrypoint(proto) or self._requires_special_trampoline_code(proto.name):
- special_lookups.append("if (!strcmp(name, \"%s\"))" % proto.name)
- special_lookups.append(" return (%s) %s%s;" %
- (self.gpa.ret, self.prefix, proto.name))
- else:
- continue
- body = []
- body.append("static inline %s globalGetProcAddr(const char *name)" %
- self.gpa.ret)
- body.append("{")
- body.append(generate_get_proc_addr_check("name"))
- body.append("")
- body.append(" name += 2;")
- body.append(" %s" % "\n ".join(lookups))
- body.append("")
- body.append(" return NULL;")
- body.append("}")
- body.append("")
- body.append("static inline void *loader_non_passthrough_gpa(const char *name)")
- body.append("{")
- body.append(generate_get_proc_addr_check("name"))
- body.append("")
- body.append(" name += 2;")
- body.append(" %s" % "\n ".join(special_lookups))
- body.append("")
- body.append(" return NULL;")
- body.append("}")
-
- return "\n".join(body)
-
def main():
wsi = {
@@ -443,11 +263,8 @@ def main():
}
subcommands = {
- "dev-ext-trampoline": DevExtTrampolineSubcommand,
- "loader-entrypoints": LoaderEntrypointsSubcommand,
"dispatch-table-ops": DispatchTableOpsSubcommand,
"win-def-file": WinDefFileSubcommand,
- "loader-get-proc-addr": LoaderGetProcAddrSubcommand,
}
if len(sys.argv) < 3 or sys.argv[1] not in wsi or sys.argv[2] not in subcommands: