Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • wlroots wlroots
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 344
    • Issues 344
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 139
    • Merge requests 139
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • 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.

  • wlrootswlroots
  • wlrootswlroots
  • Merge requests
  • !3975

Vulkan: increase max stage size to support large buffers

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Brett Ernst requested to merge clamps/wlroots:vulkan-increase-max-stage-size into master Jan 19, 2023
  • Overview 2
  • Commits 1
  • Pipelines 1
  • Changes 1

The Vulkan renderer currently sets a max stage size of 64MB which appears to prevent larger buffers from being uploaded to textures. A 64MB max is enough to upload two 4K displays' worth of pixels, but there are some configurations which exceed this. For example, a large video player that covers an array of displays fails when it exceeds this limit, causing a warning "vulkan stage buffers have reached max size" followed by other Vulkan errors. This same configuration works in the GLES2 renderer.

My test cases were a 11520x2160 video played across three 4K screens, and a 11520x1080 video played across six HD screens into wlr_buffers filled by gstreamer. I've confirmed that these test cases work in the Vulkan renderer after increasing the max stage size.

A new max size of 256MB is proposed because many modern GPUs support texture sizes up to 16K x 16K. Because this is only an increase on the max size, I don't think there would be any change in behavior for those who didn't exceed the old max size.

I am by no means a Vulkan expert, so I of course welcome any feedback.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: vulkan-increase-max-stage-size