VkVideoEncodePerPartitionFeedbackFlagBitsKHR
Bits which can be set in
VkQueryPoolVideoEncodePerPartitionFeedbackCreateInfoKHR::perPartitionEncodeFeedbackFlags
for video encode feedback query pools are:
typedef enum VkVideoEncodePerPartitionFeedbackFlagBitsKHR {
VK_VIDEO_ENCODE_PER_PARTITION_FEEDBACK_STATUS_BIT_KHR = 0x00000001,
VK_VIDEO_ENCODE_PER_PARTITION_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000002,
VK_VIDEO_ENCODE_PER_PARTITION_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000004,
} VkVideoEncodePerPartitionFeedbackFlagBitsKHR;
pub struct VideoEncodePerPartitionFeedbackFlagBitsKHR(u32);
impl VideoEncodePerPartitionFeedbackFlagBitsKHR {
pub const STATUS: Self = 0x00000001;
pub const BITSTREAM_BUFFER_OFFSET: Self = 0x00000002;
pub const BITSTREAM_BYTES_WRITTEN: Self = 0x00000004;
}
VK_VIDEO_ENCODE_PER_PARTITION_FEEDBACK_STATUS_BIT_KHRspecifies that queries managed by the pool will capture the result status of each encoded picture partition. These result status values are reported as VkQueryResultStatusKHR values, similar to result status queries but indicate the result status of the encoding of individual picture partitions instead of that of the whole video encode operation.VK_VIDEO_ENCODE_PER_PARTITION_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHRspecifies that queries managed by the pool will capture the byte offset of the bitstream data of the corresponding picture partition written to the bitstream buffer specified in VkVideoEncodeInfoKHR::dstBufferrelative to the offset specified in VkVideoEncodeInfoKHR::dstBufferOffset.VK_VIDEO_ENCODE_PER_PARTITION_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHRspecifies that queries managed by the pool will capture the number of bytes written by the video encode operation for the corresponding picture partition to the bitstream buffer specified in VkVideoEncodeInfoKHR::dstBuffer.
The bitstream offsets reported for subsequent picture partitions are always monotonically increasing and the bitstream buffer ranges corresponding to individual picture partitions do not overlap.
VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR and
VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR feedback
values may contain additional data such as frame headers.
In addition, certain implementations or video compression standards may have
additional payloads in between subsequent picture partitions.
For example, AV1 bitstreams contain the tile_size_minus_1 syntax
element in between subsequent tiles that are not part of the actual tile
data.
Therefore the specification only guarantees monotonically increasing offsets
and non-overlapping ranges for picture partitions but does not guarantee
that the picture partition ranges are tightly packed or that the union of
the picture partition ranges covers the entire range of the bitstream
output.When retrieving the results of video encode feedback queries with per picture partition video encode feedback values, the values corresponding to each enabled per picture partition video encode feedback are written for each encoded picture partition in the order of the bits defined above, in picture-partition-major order.
If the video encode operation results in more encoded picture partitions
than the maxPerPartitionFeedbackEntries specified in the
VkQueryPoolVideoEncodePerPartitionFeedbackCreateInfoKHR structure the
query pool was created with, then the per picture partition feedback values
corresponding to additional picture partitions are not available for
retrieval.
If the per picture partition feedback status is negative, then all other per
partition feedback values corresponding to that picture partition will be
undefined.
Specifically, implementations may report a per picture partition feedback
status of
VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR for the
picture partition(s) whose encoded bitstream data no longer fit into the
destination video bitstream buffer range.