Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • mesa mesa
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 3.2k
    • Issues 3.2k
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1k
    • Merge requests 1k
  • 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
  • !4995

WIP: anv: Use BINDING_TABLE_POOL_ALLOC instead of SBA on Gen11+

  • Review changes

  • Download
  • Patches
  • Plain diff
Open Faith Ekstrand requested to merge gfxstrand/mesa:review/anv-bt-pool-alloc into main May 11, 2020
  • Overview 7
  • Commits 8
  • Pipelines 13
  • Changes 7

On Gen11, they dropped the resource streamer hardware but left one very useful bit lying around: 3DSTATE_BINDING_TABLE_POOL_ALLOC. Prior to Gen11, binding table pools implied hardware binding tables which implied using the resource streamer. On Gen11, however, binding table pools simply mean a separate base address for binding tables which is what we've wanted for Vulkan all along.

Now, instead of having to set surface state base address to the start of the binding table block and offset all of our surface states, we can set surface state base address to the start of the surface states and the binding table pool address to the start of the binding table block. This lets us emit STATE_BASE_ADDRESS once at context creation rather than having to re-emit it in every batch. While this shouldn't have any performance implications (we still have to stall), it definitely makes the driver a lot cleaner on Gen11+.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: review/anv-bt-pool-alloc