Skip to content
GitLab
  • Menu
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 2,762
    • Issues 2,762
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 922
    • Merge requests 922
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Mesa
  • mesamesa
  • Merge requests
  • !3454

iris,anv: Properly set the URB deref block size on Gen12

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Jason Ekstrand requested to merge jekstrand/mesa:review/tgl-deref-block-size-wa into master Jan 17, 2020
  • Overview 23
  • Commits 16
  • Pipelines 10
  • Changes 25

There is a programming note in the BSpec for 3DSTATE_SF_BODY::"Deref BLock Size" which says:

Deref Block size depends on the last enabled shader and number of handles programmed for that shader

  1. For GS last shader enabled cases, the deref block is always set to a per poly(within hardware)

If the last enabled shader is VS or DS.

  1. If DS is last enabled shader then if the number of DS handles is less than 324, need to set per poly deref.

  2. If VS is last enabled shader then if the number of VS handles is less than 192, need to set per poly deref

This MR attempts to implement this programming restriction. In order to do so, we have to do an annoying amount of re-plumbing because this effectively moves a bit of URB config into 3DSTATE_SF:

  1. The first two patches just smash it to per-poly mode because it looks like that's probably safe all the time.
  2. Next is a bit of general code refactoring to clean some things up and get us to the point where BLORP is emitting its own URB config.
  3. Finally, we make gen_get_urb_config compute the deref block size and plumb that into 3DSTATE_SF on all the drivers.
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: review/tgl-deref-block-size-wa