Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
mesa
mesa
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2,372
    • Issues 2,372
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 662
    • Merge Requests 662
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Mesa
  • mesamesa
  • Merge Requests
  • !8676

Merged
Opened Jan 24, 2021 by Jason Ekstrand@jekstrandOwner

vulkan: Add a common dispatch framework

  • Overview 91
  • Commits 57
  • Pipelines 79
  • Changes 91

We've got 5 different Vulkan drivers in the tree these days and every single one of them has it's own modified copy of anv_entrypoints_gen.py, none of which are quite identical. It's time we quit messing around with copying and pasting code and start actually unifying things.

This commit adds new vk_instance and vk_physical_device base structs and moves all the extension and entrypoint handling code from ANV into them. Drivers provide dispatch tables and tables of supported extensions at init time and the core code takes care of the rest. It handles extension verification, filling out dispatch tables, and provides helpers for implementing Get*ProcAddr. The last few patches also demonstrate how this can be used to provide 100% common implementations of certain extensions where all the driver has to do is advertise the extension.

I'd like to also convert VK_EXT_debug_report and VK_deferred_host_operations but I'd like to wait until RADV and others are converted so that we can straight-up implement the entrypoints instead of adding unnecessary wrappers.

Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Reference: mesa/mesa!8676
Source branch: review/vulkan-common-dispatch