## C Specification

Bits which may be set in VkVideoEncodeH265CapabilitiesEXT::inputModeFlags, indicating the commmand buffer input granularities supported by the implementation, are:

// Provided by VK_EXT_video_encode_h265
typedef enum VkVideoEncodeH265InputModeFlagBitsEXT {
VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT = 0x00000001,
VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0x00000002,
VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT = 0x00000004,
} VkVideoEncodeH265InputModeFlagBitsEXT;

## Description

• VK_VIDEO_ENCODE_H265_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 if VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT is not supported.

• VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT indicates that a single command buffer must at least encode a single slice segment. Any non-VCL NALUs must be encoded using the same command buffer as the first slice segment of the frame if VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT is not supported.

• VK_VIDEO_ENCODE_H265_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_H265_INPUT_MODE_FRAME_BIT_EXT or VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT.

If VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT is not supported, the following two additional restrictions apply for frames encoded with multiple slice segments. First, all frame slice segments must have the same pReferenceFinalLists. Second, the order in which slice segments appear in VkVideoEncodeH265VclFrameInfoEXT::pNaluSliceSegmentEntries or in the command buffer must match the placement order of the slice segments in the frame.