On 8 August 2018 at 00:14, Bas Nieuwenhuizen <[email protected]> wrote: > Replace some functions to use the anv idioms. However, I did not > introduce dispatch tables in the instance/device since that seemed > like overkill. like an overkill
> --- > src/amd/vulkan/Android.mk | 16 +- > src/amd/vulkan/Makefile.am | 29 +- > src/amd/vulkan/meson.build | 91 +++-- > src/amd/vulkan/radv_device.c | 56 ++- > src/amd/vulkan/radv_entrypoints_gen.py | 462 +------------------------ > src/amd/vulkan/radv_extensions.py | 236 +------------ > src/amd/vulkan/radv_extensions_gen.py | 44 +++ > src/amd/vulkan/radv_icd.py | 1 + > src/amd/vulkan/radv_private.h | 9 +- > src/amd/vulkan/radv_wsi.c | 6 +- > 10 files changed, 211 insertions(+), 739 deletions(-) > create mode 100644 src/amd/vulkan/radv_extensions_gen.py > Build system changes look fine. FWIW Reviewed-by: Emil Velikov <[email protected]> > @@ -2713,10 +2713,35 @@ PFN_vkVoidFunction radv_GetInstanceProcAddr( > { > RADV_FROM_HANDLE(radv_instance, instance, _instance); > > - return radv_lookup_entrypoint_checked(pName, > - instance ? instance->apiVersion > : 0, > - instance ? > &instance->enabled_extensions : NULL, > - NULL); > + /* The Vulkan 1.0 spec for vkGetInstanceProcAddr has a table of > exactly > + * when we have to return valid function pointers, NULL, or it's left > + * undefined. See the table for exact details. > + */ > + if (pName == NULL) > + return NULL; > + > +#define LOOKUP_RADV_ENTRYPOINT(entrypoint) \ > + if (strcmp(pName, "vk" #entrypoint) == 0) \ > + return (PFN_vkVoidFunction)radv_##entrypoint > + > + LOOKUP_RADV_ENTRYPOINT(EnumerateInstanceExtensionProperties); > + LOOKUP_RADV_ENTRYPOINT(EnumerateInstanceLayerProperties); > + LOOKUP_RADV_ENTRYPOINT(EnumerateInstanceVersion); > + LOOKUP_RADV_ENTRYPOINT(CreateInstance); > + > +#undef LOOKUP_RADV_ENTRYPOINT Thinking out loud: Might want to move this duplicated corner-case to the generators at some point. > --- a/src/amd/vulkan/radv_icd.py > +++ b/src/amd/vulkan/radv_icd.py > @@ -20,6 +20,7 @@ > # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE > # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. > > +import argparse > import json > import os.path > jfyi: Seems to be unrelated bugfix. Worth splitting out - leaning towards "no" HTH Emil _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
