Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • mesa mesa
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,049
    • Issues 3,049
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 995
    • Merge requests 995
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • MesaMesa
  • mesamesa
  • Merge requests
  • !8792

anv: Move extension tables to C code

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Jason Ekstrand requested to merge jekstrand/mesa:wip/anv-c-extensions into master Jan 30, 2021
  • Overview 24
  • Commits 6
  • Pipelines 20
  • Changes 19

This is based on !8676 (merged) and will be rebased once it lands.

Back in the day, when we first set up our Vulkan driver, we decided to do extensions in python. This seemed like a good idea at the time because it allowed our python code-gen to be extension-aware. This had a few advantages:

  1. Dispatch tables were smaller because they only included supported extensions
  2. Gave us flexibility in how we handled extension support conditions and we could use them for more than just vkEnumerate*ExtensionProperties
  3. intel_icd.x86_84.json could use the same max API version as everything else

However, it comes with a giant disadvantage: python code-gen is always fragile. It's complex and hard to understand and no one knows how to get the meson dependencies for it right. It's also totally unnecessary if we're a bit more careful about how we structure things.

This MR moves us over declaring those extension tables in C and completely eliminating the last of the python code-gen from the ANV source directory. The one sticky bit here is that we need a different solution for extension disables on Android but that's not too hard to do.

Edited Feb 01, 2021 by Jason Ekstrand
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: wip/anv-c-extensions