[Mesa-dev] [PATCH 4/4] radv: Integrate with common generators.

Emil Velikov emil.l.velikov at gmail.com
Wed Aug 8 10:53:07 UTC 2018


On 8 August 2018 at 00:14, Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl> 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 <emil.velikov at collabora.com>


> @@ -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


More information about the mesa-dev mailing list