[Mesa-dev] [PATCH 02/13] anv: Use python style in anv_entrypoints_gen.py
Jason Ekstrand
jason at jlekstrand.net
Wed Feb 22 23:28:50 UTC 2017
On Wed, Feb 22, 2017 at 3:15 PM, Dylan Baker <dylan at pnwbakers.com> wrote:
> These are all fairly small cleanups/tweaks that don't really deserve
> their own patch.
>
> - Prefer comprehensions to map() and filter(), since they're faster
> - replace unused variables with _
> - Use 4 spaces of indent
> - drop semicolons from the end of lines
> - Don't use parens around if conditions
> - don't put spaces around brackets
> - don't import modules as caps (ET -> et)
> - Use docstrings instead of comments
>
> Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
> ---
> src/intel/vulkan/anv_entrypoints_gen.py | 63
> ++++++++++++++++++---------------
> 1 file changed, 34 insertions(+), 29 deletions(-)
>
> diff --git a/src/intel/vulkan/anv_entrypoints_gen.py
> b/src/intel/vulkan/anv_entrypoints_gen.py
> index 3f7a1ce294..358cf1e1e2 100644
> --- a/src/intel/vulkan/anv_entrypoints_gen.py
> +++ b/src/intel/vulkan/anv_entrypoints_gen.py
> @@ -24,20 +24,20 @@
>
> import sys
> import textwrap
> -import xml.etree.ElementTree as ET
> +import xml.etree.ElementTree as et
>
> max_api_version = 1.0
>
> supported_extensions = [
> - 'VK_KHR_get_physical_device_properties2',
> - 'VK_KHR_maintenance1',
> - 'VK_KHR_sampler_mirror_clamp_to_edge',
> - 'VK_KHR_shader_draw_parameters',
> - 'VK_KHR_surface',
> - 'VK_KHR_swapchain',
> - 'VK_KHR_wayland_surface',
> - 'VK_KHR_xcb_surface',
> - 'VK_KHR_xlib_surface',
> + 'VK_KHR_get_physical_device_properties2',
> + 'VK_KHR_maintenance1',
> + 'VK_KHR_sampler_mirror_clamp_to_edge',
> + 'VK_KHR_shader_draw_parameters',
> + 'VK_KHR_surface',
> + 'VK_KHR_swapchain',
> + 'VK_KHR_wayland_surface',
> + 'VK_KHR_xcb_surface',
> + 'VK_KHR_xlib_surface',
> ]
>
> # We generate a static hash table for entry point lookup
> @@ -53,33 +53,37 @@ hash_mask = hash_size - 1
> prime_factor = 5024183
> prime_step = 19
>
> +opt_header = False
> +opt_code = False
> +
> +if sys.argv[1] == "header":
> + opt_header = True
> + sys.argv.pop()
> +elif sys.argv[1] == "code":
> + opt_code = True
> + sys.argv.pop()
> +
> +
> def hash(name):
> - h = 0;
> + h = 0
> for c in name:
> h = (h * prime_factor + ord(c)) & u32_mask
>
> return h
>
> +
> def print_guard_start(guard):
> if guard is not None:
> print "#ifdef {0}".format(guard)
>
> +
> def print_guard_end(guard):
> if guard is not None:
> print "#endif // {0}".format(guard)
>
> -opt_header = False
> -opt_code = False
>
> -if (sys.argv[1] == "header"):
> - opt_header = True
> - sys.argv.pop()
> -elif (sys.argv[1] == "code"):
> - opt_code = True
> - sys.argv.pop()
> -
> -# Extract the entry points from the registry
> def get_entrypoints(doc, entrypoints_to_defines):
> + """Extract the entry points from the registry."""
> entrypoints = []
>
> enabled_commands = set()
> @@ -108,7 +112,7 @@ def get_entrypoints(doc, entrypoints_to_defines):
> continue
>
> shortname = fullname[2:]
> - params = map(lambda p: "".join(p.itertext()),
> command.findall('./param'))
> + params = (''.join(p.itertext()) for p in
> command.findall('./param'))
> params = ', '.join(params)
> if fullname in entrypoints_to_defines:
> guard = entrypoints_to_defines[fullname]
> @@ -119,8 +123,9 @@ def get_entrypoints(doc, entrypoints_to_defines):
>
> return entrypoints
>
> -# Maps entry points to extension defines
> +
> def get_entrypoints_defines(doc):
> + """Maps entry points to extension defines."""
> entrypoints_to_defines = {}
> extensions = doc.findall('./extensions/extension')
> for extension in extensions:
> @@ -133,7 +138,7 @@ def get_entrypoints_defines(doc):
>
>
> def main():
> - doc = ET.parse(sys.stdin)
> + doc = et.parse(sys.stdin)
> entrypoints = get_entrypoints(doc, get_entrypoints_defines(doc))
>
> # Manually add CreateDmaBufImageINTEL for which we don't have an
> extension
> @@ -225,7 +230,7 @@ def main():
> static const char strings[] =""")
>
> offsets = []
> - i = 0;
> + i = 0
> for type, name, args, num, h, guard in entrypoints:
> print " \"vk%s\\0\"" % name
> offsets.append(i)
> @@ -247,7 +252,7 @@ def main():
> */
> """)
>
> - for layer in [ "anv", "gen7", "gen75", "gen8", "gen9" ]:
> + for layer in ["anv", "gen7", "gen75", "gen8", "gen9"]:
> for type, name, args, num, h, guard in entrypoints:
> print_guard_start(guard)
> print "%s %s_%s(%s) __attribute__ ((weak));" % (type, layer,
> name, args)
> @@ -295,8 +300,8 @@ def main():
> # uint16_t table of entry point indices. We use 0xffff to indicate an
> entry
> # in the hash table is empty.
>
> - map = [none for f in xrange(hash_size)]
> - collisions = [0 for f in xrange(10)]
> + map = [none for _ in xrange(hash_size)]
> + collisions = [0 for _ in xrange(10)]
>
Aren't these just "[none] * hash_size" and "[0] * 10"?
> for type, name, args, num, h, guard in entrypoints:
> level = 0
> while map[h & hash_mask] != none:
> @@ -312,7 +317,7 @@ def main():
> print " * size %d entries" % hash_size
> print " * collisions entries"
> for i in xrange(10):
> - if (i == 9):
> + if i == 9:
> plus = "+"
> else:
> plus = " "
> --
> 2.11.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170222/019b2abf/attachment-0001.html>
More information about the mesa-dev
mailing list