Skip to content

Hardware bandwidth limits are subtle and tricky to understand/predict #3

@egnor

Description

@egnor

(splitting off from @pinballpower's comments in #1 (comment))

The Pi hardware (as driven by the Linux kernel) has limits on its ability to do hardware composition. These limits are not simple, it's nothing as basic as a count of layers or pixels, it has to do with memory bandwidth and certain intermediate buffers (such as LBM, the Line Buffer Memory). See some discussion here: https://forums.raspberrypi.com/viewtopic.php?p=1996346#p1996346

This of course makes it tricky to use pivid since there's a certain amount of guesswork in figuring out what you can do. (This applies to anything else using the hardware compositor, it's not pivid-specific.) There is an attempt to predict these load factors in the code here:

virtual DisplayCost predict_cost(DisplayFrame const& frame) const final {

However, it's still difficult to work with. If nothing else, we should try to document our best understanding of the limits, and encourage the Pi folks to give some sort of semi-official spec. @pinballpower, was the code successful in issuing warnings coincident with the times you were seeing blank screens? If not, it would be great to figure out what limits are being exceeded that the model is missing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions