From a0d14a610fab9608956ff9f36284b086eba93ef6 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Tue, 11 Oct 2016 09:17:57 -0600 Subject: loader: Remove dead code from loader gen script Change-Id: Ie6ad81c1f0097b93c3006a737d57a69d81ee70e8 --- loader/vk-loader-generate.py | 183 ------------------------------------------- 1 file changed, 183 deletions(-) (limited to 'loader') 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 "]) - - 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: -- cgit v1.2.3