C Specification
The inputModeFlags
field reports the various commmand buffer input
granularities supported by the implementation as follows:
// Provided by VK_EXT_video_encode_h264
typedef enum VkVideoEncodeH264InputModeFlagBitsEXT {
VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0x00000001,
VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0x00000002,
VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
} VkVideoEncodeH264InputModeFlagBitsEXT;
Description
-
VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT
indicates that a single command buffer must at least encode an entire frame. Any non-VCL NALUs must be encoded using the same command buffer as the frame ifVK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT
is not supported. -
VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT
indicates that a single command buffer must at least encode a single slice. Any non-VCL NALUs must be encoded using the same command buffer as the first slice of the frame ifVK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT
is not supported. -
VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT
indicates that a single command buffer may encode a non-VCL NALU by itself.
An implementation must support at least one of
VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT
or
VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT
.
If VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT
is not supported, the
following two additional restrictions apply for frames encoded with multiple
slices.
First, all frame slices must have the same pRefList0ModOperations and the
same pRefList1ModOperations.
Second, the order in which slices appear in
VkVideoEncodeH264VclFrameInfoEXT::pNaluSliceEntries
or in the
command buffer must match the placement order of the slices in the frame.
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.