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,085
    • Issues 3,085
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 1,018
    • Merge requests 1,018
  • 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
  • !20706

panfrost: Use meta operations for streamout

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Alyssa Rosenzweig requested to merge alyssa/mesa:panfrost/xfb-meta into main Jan 14, 2023
  • Overview 4
  • Commits 1
  • Pipelines 6
  • Changes 4

Currently, we implement transform feedback by dispatching specialized "transform feedback" programs at draw time. This decouples transform feedback from regular vertex shaders, allowing our usual IDVS tricks to work ok there.

That works ok and is not changed here. The problem with the previous implementation is the mechanism of dispatch. In the old implementation, we had a special launch path that is compiled per-gen and does architecture-specific dispatch of a compute/vertex shader. The code-complexity is O(N) to the number of architectures we support. Every time Mali dispatch changes, that needs a new code path duplicating the new code path added to pipe->draw_vbo and pipe->launch_grid. With the incoming CSF support, we will have another (dramatically different) dispatch mechanism.

What we really want is a generic dispatch that reuses the pipe->draw_vbo or pipe->launch_grid machinery, to avoid open-coding the hardware structures in another place. That generic routine would not need specialization based on architecture, which is cleaner.

This is an application of a general best practice: don't open-code your dispatch in multiple places, use meta operations instead. If panvk1 followed that, maybe we could've supported v9 in a sane way...

Cc @italove @bbrezillon

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: panfrost/xfb-meta