KhronosGroup / KhronosGroup/Vulkan-Docs

VK_EXT_video_encode_queue: question about active DPB slots

Open
#2,282 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Video
Dominant language
JavaScript
Stars
3.3k
Forks
549
Avg merge
5d 5h
Merged PRs (30d)
2

Description

The spec says, about adding DPB references to the VkVideoEncodeInfoKHR structure: (section 42.13.5):

pSetupReferenceSlot->slotIndex specifies the slot index number to use as a target for producing the Reconstructed (DPB) data. pSetupReferenceSlot must be one of the entries provided in VkVideoBeginCodingInfoKHR via the pReferenceSlots within the vkCmdBeginVideoCodingKHR command that established the Vulkan Video Encode Context for this command.

My understanding of that is that you attach a slot as the reference slot if you want to generate a DPB picture while also generating the output frame. However, I'd like to draw attention to the latter requirement, that the same slot also be provided to BeginVideoCoding.

For that function, there's also VUID-vkCmdBeginVideoCodingKHR-slotIndex-07239:

If the slotIndex member of any element of pBeginInfo->pReferenceSlots is not negative, then it must specify the index of a DPB slot that is in the active state in pBeginInfo->videoSession at the time the command is executed on the device.

As I understand the active/inactive thing, the slot becomes active once an encode operation has succeeded and the DPB slot has been written to. Since BeginVideoCoding precedes Encode, on the first keyframe, the slot is not yet active, so I can't attach it to BeginVideoCoding. Am I misunderstanding or should that requirement only apply to reference picture slots, not the "setup" slot?

The nature of "must be one of the entries" is also unclear. I assumed that to mean "having the the same slotIndex as". Is that correct?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with Vulkan Video sections 42.13.5, VkVideoBeginCodingInfoKHR, VkVideoEncodeInfoKHR, and VUID-vkCmdBeginVideoCodingKHR-slotIndex-07239. Trace the DPB slot active-state lifecycle and the meaning of “one of the entries”; done means the specification resolves whether setup slots are subject to the stated requirement and defines the matching rule.

Written by the indexing model from the issue text.

Assessment

Domain
computer-graphics, documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.