On 14 July 2017 at 07:14, Jason Ekstrand <[email protected]> wrote: > As time goes on, extension advertising is going to get more complex. > Today, we either implement an extension or we don't. However, in the > future, whether or not we advertise an extension will depend on kernel > or hardware features. This commit introduces a python codegen framework > that generates the anv_EnumerateFooExtensionProperties functions as well > as a pair of anv_foo_extension_supported functions for querying for the > support of a given extension string. Each extension has an "enable" > predicate that is any valid C expression. For device extensions, the > physical device is available as "device" so the expression could be > something such as "device->has_kernel_feature". For instance > extensions, the only option is VK_USE_PLATFORM defines. > > This mechanism also means that we have a single one-line-per-entry table > for all extension declarations instead of the two tables we had in > anv_device.c and the one we had in anv_entrypoints_gen.py. The Python > code is smart and uses the XML to determine whether an extension is an > instance extension or device extension. > --- > src/intel/Android.vulkan.mk | 8 ++ > src/intel/Makefile.sources | 3 +- > src/intel/Makefile.vulkan.am | 5 ++ > src/intel/vulkan/anv_device.c | 149 > +------------------------------------ > src/intel/vulkan/anv_extensions.py | 118 +++++++++++++++++++++++++++++ > src/intel/vulkan/anv_private.h | 4 + > 6 files changed, 141 insertions(+), 146 deletions(-) > > diff --git a/src/intel/Android.vulkan.mk b/src/intel/Android.vulkan.mk > index 398f2e7..f93d71f 100644 > --- a/src/intel/Android.vulkan.mk > +++ b/src/intel/Android.vulkan.mk > @@ -25,6 +25,8 @@ include $(LOCAL_PATH)/Makefile.sources > > VK_ENTRYPOINTS_SCRIPT := $(MESA_PYTHON2) > $(LOCAL_PATH)/vulkan/anv_entrypoints_gen.py > > +VK_EXTENSIONS_SCRIPT := $(MESA_PYTHON2) > $(LOCAL_PATH)/vulkan/anv_extensions.py > + > VULKAN_COMMON_INCLUDES := \ > $(MESA_TOP)/src/mapi \ > $(MESA_TOP)/src/gallium/auxiliary \ > @@ -213,6 +215,12 @@ $(intermediates)/vulkan/anv_entrypoints.c: > --xml $(MESA_TOP)/src/vulkan/registry/vk.xml \ > --outdir $(dir $@) > Add the following line otherwise the file won't be in the binary.
LOCAL_GENERATED_SOURCES += $(intermediates)/vulkan/anv_extensions.c With the above nit Reviewed-by: Emil Velikov <[email protected]> -Emil _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
