Skip to content

Can we actually describe everything with positive capabilities and a few set constraints? #5

Description

@gfxstrand

Capbailities

My initial vision for memory allocation was to have independent blocks of capabilities where each block was fairly self-contained but could have complex interactions within it. This has the down-side that the driver has to be involved in the intersection process. The directions that @cubanismo was pushing was to have everything as small atomic capabilities. While this is less expressive, it's much simpler to perform an intersection operation. We need to double-check that everything needed is expressible this way.

Tentatively, we have said that the capabilities will be relative to the surface allocation parameters: width, weight, format, sample count, mip levels, array slices, etc. In other words, you don't have to worry about expressing every possible set of capabilities which could grow very large.

List of common capabilities (update as more common capabilities are found):

  • linear (pretty much needed for cross-vendor sharing)

Constraints:

Constraints are a bit special because it will take more care to union them properly. We've determined that these constraints will have to be understood by the allocation library (and therefore common) so that they can be combined properly.

List of common constraints (update if more constraints are needed):

  • Max pitch
  • Min pitch alignment
  • Start address alignment
  • Max width/height (Maybe handled by the app?)
  • dma mask/address range
  • YUV multiplanar - planar, where U and V need to be positive offsets from Y < 64MB
  • Need to have U and V in separate RAM banks.

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