[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