Skip to content
GitLab
Projects Groups 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
    • Contributors
    • Graph
    • Compare
  • Issues 3,083
    • Issues 3,083
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1,001
    • Merge requests 1,001
  • 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

Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.

  • MesaMesa
  • mesamesa
  • Merge requests
  • !3033

iris: Create smaller program keys without legacy features

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Kenneth Graunke requested to merge kwg/mesa:iris-keys into master Dec 10, 2019
  • Overview 1
  • Commits 1
  • Pipelines 6
  • Changes 3

A lot of the brw_*_prog_key fields are for emulating features on legacy hardware that iris doesn't support. In particular, all of the texture swizzle fields take up a lot of space. These dead fields make hashing the shader keys more expensive than it ought to be.

We introduce iris-specific keys with only the information we need, and translate them to brw keys when actually compiling new variants. This way, key comparisons can use the small keys. The size reductions are:

  • VS: 328 bytes -> 8 bytes
  • TCS: 312 bytes -> 24 bytes
  • TES: 304 bytes -> 24 bytes
  • GS: 284 bytes -> 8 bytes
  • FS: 304 bytes -> 16 bytes
  • CS: 280 bytes -> 4 bytes

Scores for the Piglit drawoverhead microbenchmark case with a shader program change improve by roughly 30%.

Edited Dec 10, 2019 by Kenneth Graunke
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: iris-keys