anv: Return trampoline entrypoints from GetInstanceProcAddr
authorJason Ekstrand <jason.ekstrand@intel.com>
Sat, 20 Jan 2018 18:39:16 +0000 (10:39 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 23 Jan 2018 08:15:40 +0000 (00:15 -0800)
commitde00e8227b00740e3fe91c5c8fd0b2498751606c
tree3658a0db8123e86fb22b4a92aeab22d860b31375
parenteac29f3a6dc7f2659cdb34301a57b2618db1ed12
anv: Return trampoline entrypoints from GetInstanceProcAddr

Technically, the Vulkan spec requires that we return valid entrypoints
for all core functionality and any available device extensions.  This
means that, for gen-specific functions, we need to return a trampoline
which looks at the device and calls the right device function.  In 99%
of cases, the loader will do this for us but, aparently, we're supposed
to do it too.  It's a tiny increase in binary size for us to carry this
around but really not bad.

Before:
       text    data   bss      dec     hex  filename
    3541775  204112  6136  3752023  394057  libvulkan_intel.so

After:
       text    data   bss      dec     hex  filename
    3551463  205632  6136  3763231  396c1f  libvulkan_intel.so

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
src/intel/vulkan/anv_device.c
src/intel/vulkan/anv_entrypoints_gen.py