[Mesa-dev] [PATCH 4/4] radv: Return NULL for entrypoints when not supported.

Emil Velikov emil.l.velikov at gmail.com
Mon Feb 12 16:50:16 UTC 2018


Hi Bas,

On 11 February 2018 at 15:29, Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl> wrote:
> This implements strict checking for the entrypoint ProcAddr
> functions.
>
>  - InstanceProcAddr with instance = NULL, only returns the 3 allowed
>    entrypoints.
>  - DeviceProcAddr does not return any instance entrypoints.
>  - InstanceProcAddr does not return non-supported or disabled
>    instance entrypoints.
>  - DeviceProcAddr does not return non-supported or disabled device
>    entrypoints.
>  - InstanceProcAddr still returns non-supported device entrypoints.
> ---
>  src/amd/vulkan/radv_device.c           | 18 +++++++---
>  src/amd/vulkan/radv_entrypoints_gen.py | 66 ++++++++++++++++++++++++++++++++--
>  src/amd/vulkan/radv_private.h          |  6 +++-
>  src/amd/vulkan/radv_wsi.c              |  2 +-
>  4 files changed, 83 insertions(+), 9 deletions(-)
>
Have you thought about splitting out the device specifics* and sharing the rest.
It should save you all the cross-porting, plus it'll add things like
radv_entrypoint_is_enabled NULL instance handling back to ANV.

Quick looks flags the following as device specific:
*_extensions.py
 - MAX_API_VERSION(?)
 - EXTENSIONS and respective extension structs/enums/data names

*_entrypoints_gen.py
 - LAYERS
 - dispatch table struct/enum/data names
 - *_resolve_entrypoint()
 - *_private.h

-Emil


More information about the mesa-dev mailing list