Constraints on BufferCollection parameters. These constraints can be
specified per-participant. The sysmem service implements aggregation of
constraints from multiple participants.
Describes how the pixels within an image are meant to be presented.
Simple color spaces need only a type.
Parametric color spaces may require additional properties.
After the initial buffer allocation, it’s allowed to close old buffers and
allocate new buffers. When a new buffer is allocated its settings can
differ from the rest of the buffers in the collection, and the single
buffer’s settings are delivered via OnSingleBufferAllocated() using this
struct:
Inaccessible is only for cases where there is no CPU-based access to the
buffers. A secure_required buffer can still have CoherencyDomain Cpu or
Ram even if the secure_required buffer can only be accessed by the CPU when
the CPU is running in secure mode (or similar). In contrast, device-local
memory that isn’t reachable from the CPU is CoherencyDomain Inaccessible,
even if it’s possible to cause a device (physical or virtual) to copy the
data from the Inaccessible buffers to buffers that are visible to the CPU.
Actually creating this many children isn’t recommended in most typical
scenarios, but isn’t prevented, for testing reasons, and just in case an
unusual scenario needs it. Mitigation of potentially high time complexity
in sysmem will limit the actual number of group child combinations
considered in aggregation attempts to a separate maximum that is not
settable via these protocols. The maximum number of total nodes in a sysmem
token tree is limited to a separate maximum that is not settable via these
protocols.