KhronosGroup / KhronosGroup/Vulkan-Docs
VK_EXT_video_encode_queue: question about active DPB slots
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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