Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • pipewire pipewire
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 680
    • Issues 680
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 18
    • Merge requests 18
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

Admin message

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.

  • PipeWirePipeWire
  • pipewirepipewire
  • Issues
  • #1055

No way for source node to know whether sink node interacts with DMA buffers the right way

An application can ask for a DMA buffer, and then attempt to use DMA_BUF_IOCTL_SYNC and mmap() to download it. However, often for GPU memory, mmap() will either result in very very slow access (e.g. when using AMD gpus). On the other hand, for other types of DMA buffer, the same issue does not apply, for example for v4l2 DMA buffers. A sink node application can ask for "DMA buffer", but the source node does not know whether this implemented using a potentially very inefficient mmap() or using some adequate method for downloading GPU memory (i.e. glReadPixels()).

One could expand the documentation for accessing DMA Buffers to never mmap() them directly, to avoid accidentally getting very slow access, but that would require unnecessary restrictions on e.g. v4l2-only sink nodes, that will work well by mmap():ing.

Related: #1054 (closed)

Assignee
Assign to
Time tracking