What are Inline Uniform Block, Image creation flag DISJOINT_BIT

I’ve been digging through the Spec and there are these terms that I’m struggling to understand

  1. What is the Descriptor Type Inline Uniform Block.
    Most of the time the Spec refers to this I’m struggling to understand what it actually is. I think at one point it’s described as a direct access to buffer memory, and all references to Descriptor count of that type speak of count as size in bytes.

  2. What feature is enabled with the flag VK_IMAGE_CREATE_DISJOINT_BIT in the Image Create Info?

  1. It’s exactly what the spec says:

An inline uniform block (VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK) is almost identical to a uniform buffer, and differs only in taking its storage directly from the encompassing descriptor set instead of being backed by buffer memory

It’s a uniform block whose storage lives in the descriptor set.

  1. An image plane is a contiguous region of image memory which provides the data for a subsection of the image’s components. A single-planar image is one where all components are stored in the same contiguous region. Multi-planar images store different sets of components in different regions (typically because the component occur at different frequencies, such as YUV442 or somesuch). However, the planes themselves are contiguous for a particular image subresource.

    A disjoint multi-planar is a multiplanar image where each plane in an image subresource gets to have its own separate region of memory that can be bound independently of the others. That is, the planes can be… disjoint.

So… from what I understood from reading about descriptors, they are allocated by a pool like command buffers and this is done because the recording of command buffers require memory to write to. In the case of Descriptors I would imagine that Vulkan allocates memory for us to write to with the update function? Or the memory allocated is just for the Descriptors which act like pointers? So INLINE_UNIFORM_BLOCK uses directly this memory allocated by the Pool? Rather than making a “port” where we could hook up a VkBuffer?
Thus will INLINE_UNIFORM_BLOCK consume more or less memory?

I see, I think I get it now, it’s related to multt-planar images. Thanks

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.