Skip to content

Commit 435d014

Browse files
committed
Address video review feedback
1 parent 0bc7866 commit 435d014

12 files changed

Lines changed: 302 additions & 104 deletions

File tree

Include/Extensions/NRIVideo.h

Lines changed: 40 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,9 @@ NriEnum(VideoEncodeFrameType, uint8_t,
153153
);
154154

155155
NriEnum(VideoEncodeRateControlMode, uint8_t,
156-
CQP
156+
CQP,
157+
CBR,
158+
VBR
157159
);
158160

159161
NriEnum(VideoAV1ReferenceName, uint8_t,
@@ -286,6 +288,14 @@ NriStruct(VideoDecodePictureStates) {
286288
bool releaseAfterDecode; // if true, caller should record decodeWrite -> afterDecode on the video decode queue
287289
};
288290

291+
NriStruct(VideoEncodePictureStates) {
292+
Nri(AccessLayoutStage) encodeRead; // state required before CmdEncodeVideo reads the source picture
293+
Nri(AccessLayoutStage) encodeWrite; // state required before CmdEncodeVideo writes the reconstructed picture
294+
Nri(AccessLayoutStage) afterEncode; // optional state to transition to on the video encode queue after CmdEncodeVideo
295+
Nri(AccessLayoutStage) graphicsBefore; // state to use as "before" when the graphics queue consumes the reconstructed picture
296+
bool releaseAfterEncode; // if true, caller should record encodeWrite -> afterEncode on the video encode queue
297+
};
298+
289299
NriStruct(VideoH264SequenceParameterSetDesc) {
290300
Nri(VideoH264SequenceParameterSetBits) flags;
291301
uint8_t profileIdc;
@@ -318,9 +328,9 @@ NriStruct(VideoH264PictureParameterSetDesc) {
318328
};
319329

320330
NriStruct(VideoH264SessionParametersDesc) {
321-
NriOptional const NriPtr(VideoH264SequenceParameterSetDesc) sequenceParameterSets; // if provided, must include "sequenceParameterSetNum" entries
331+
const NriPtr(VideoH264SequenceParameterSetDesc) sequenceParameterSets;
322332
uint32_t sequenceParameterSetNum;
323-
NriOptional const NriPtr(VideoH264PictureParameterSetDesc) pictureParameterSets; // if provided, must include "pictureParameterSetNum" entries
333+
const NriPtr(VideoH264PictureParameterSetDesc) pictureParameterSets;
324334
uint32_t pictureParameterSetNum;
325335
NriOptional uint32_t maxSequenceParameterSetNum; // defaults to "sequenceParameterSetNum"
326336
NriOptional uint32_t maxPictureParameterSetNum; // defaults to "pictureParameterSetNum"
@@ -330,7 +340,6 @@ NriStruct(VideoH265ProfileTierLevelDesc) {
330340
Nri(VideoH265ProfileTierLevelBits) flags;
331341
uint8_t generalProfileIdc;
332342
uint8_t generalLevelIdc;
333-
uint16_t reserved;
334343
};
335344

336345
NriStruct(VideoH265DecPicBufMgrDesc) {
@@ -352,7 +361,6 @@ NriStruct(VideoH265ShortTermRefPicSetDesc) {
352361
Nri(VideoH265ShortTermRefPicSetBits) flags;
353362
uint8_t numNegativePics;
354363
uint8_t numPositivePics;
355-
uint8_t reserved;
356364
uint32_t deltaIdxMinus1;
357365
uint16_t useDeltaFlag;
358366
uint16_t absDeltaRpsMinus1;
@@ -372,7 +380,6 @@ NriStruct(VideoH265VideoParameterSetDesc) {
372380
Nri(VideoH265VideoParameterSetBits) flags;
373381
uint8_t videoParameterSetId;
374382
uint8_t maxSubLayersMinus1;
375-
uint16_t reserved;
376383
uint32_t numUnitsInTick;
377384
uint32_t timeScale;
378385
uint32_t numTicksPocDiffOneMinus1;
@@ -397,8 +404,6 @@ NriStruct(VideoH265SequenceParameterSetDesc) {
397404
uint8_t log2DiffMaxMinLumaTransformBlockSize;
398405
uint8_t maxTransformHierarchyDepthInter;
399406
uint8_t maxTransformHierarchyDepthIntra;
400-
uint8_t numShortTermRefPicSets;
401-
uint8_t numLongTermRefPicsSps;
402407
uint8_t pcmSampleBitDepthLumaMinus1;
403408
uint8_t pcmSampleBitDepthChromaMinus1;
404409
uint8_t log2MinPcmLumaCodingBlockSizeMinus3;
@@ -407,10 +412,12 @@ NriStruct(VideoH265SequenceParameterSetDesc) {
407412
uint32_t confWinRightOffset;
408413
uint32_t confWinTopOffset;
409414
uint32_t confWinBottomOffset;
415+
const NriPtr(VideoH265ShortTermRefPicSetDesc) shortTermRefPicSets;
416+
uint8_t numShortTermRefPicSets;
417+
uint8_t numLongTermRefPicsSps;
410418
Nri(VideoH265ProfileTierLevelDesc) profileTierLevel;
411419
Nri(VideoH265DecPicBufMgrDesc) decPicBufMgr;
412420
NriOptional const NriPtr(VideoH265ScalingListsDesc) scalingLists;
413-
NriOptional const NriPtr(VideoH265ShortTermRefPicSetDesc) shortTermRefPicSets; // if provided, must include "numShortTermRefPicSets" entries
414421
NriOptional const NriPtr(VideoH265LongTermRefPicsSpsDesc) longTermRefPicsSps;
415422
};
416423

@@ -431,18 +438,17 @@ NriStruct(VideoH265PictureParameterSetDesc) {
431438
uint8_t log2ParallelMergeLevelMinus2;
432439
uint8_t tileColumnNumMinus1;
433440
uint8_t tileRowNumMinus1;
434-
uint8_t reserved;
435441
uint16_t columnWidthMinus1[19];
436442
uint16_t rowHeightMinus1[21];
437443
NriOptional const NriPtr(VideoH265ScalingListsDesc) scalingLists;
438444
};
439445

440446
NriStruct(VideoH265SessionParametersDesc) {
441-
NriOptional const NriPtr(VideoH265VideoParameterSetDesc) videoParameterSets; // if provided, must include "videoParameterSetNum" entries
447+
const NriPtr(VideoH265VideoParameterSetDesc) videoParameterSets;
442448
uint32_t videoParameterSetNum;
443-
NriOptional const NriPtr(VideoH265SequenceParameterSetDesc) sequenceParameterSets; // if provided, must include "sequenceParameterSetNum" entries
449+
const NriPtr(VideoH265SequenceParameterSetDesc) sequenceParameterSets;
444450
uint32_t sequenceParameterSetNum;
445-
NriOptional const NriPtr(VideoH265PictureParameterSetDesc) pictureParameterSets; // if provided, must include "pictureParameterSetNum" entries
451+
const NriPtr(VideoH265PictureParameterSetDesc) pictureParameterSets;
446452
uint32_t pictureParameterSetNum;
447453
NriOptional uint32_t maxVideoParameterSetNum; // defaults to "videoParameterSetNum"
448454
NriOptional uint32_t maxSequenceParameterSetNum; // defaults to "sequenceParameterSetNum"
@@ -517,7 +523,6 @@ NriStruct(VideoH264ReferenceDesc) {
517523

518524
NriStruct(VideoH264DecodeReferenceDesc) {
519525
Nri(VideoH264DecodeReferenceBits) flags;
520-
uint8_t reserved;
521526
uint16_t frameNum;
522527
uint32_t slot;
523528
int32_t topFieldOrderCount;
@@ -532,10 +537,10 @@ NriStruct(VideoH264DecodePictureDesc) {
532537
uint16_t idrPictureId;
533538
int32_t topFieldOrderCount;
534539
int32_t bottomFieldOrderCount;
535-
NriOptional const uint32_t* sliceOffsets; // if provided, must include "sliceOffsetNum" entries
540+
const uint32_t* sliceOffsets;
536541
uint32_t sliceOffsetNum;
537542
uint32_t referenceSlot; // used when "flags" includes REFERENCE; falls back to VideoDecodeDesc::dstSlot when zero
538-
NriOptional const NriPtr(VideoH264DecodeReferenceDesc) references; // if provided, must include "referenceNum" entries
543+
const NriPtr(VideoH264DecodeReferenceDesc) references;
539544
uint32_t referenceNum;
540545
};
541546

@@ -555,11 +560,10 @@ NriStruct(VideoH265DecodePictureDesc) {
555560
uint8_t pictureParameterSetId;
556561
int32_t pictureOrderCount;
557562
uint8_t numDeltaPocsOfRefRpsIdx;
558-
uint8_t reserved;
559563
uint16_t numBitsForShortTermRefPicSetInSlice;
560-
NriOptional const uint32_t* sliceSegmentOffsets; // if provided, must include "sliceSegmentOffsetNum" entries
564+
const uint32_t* sliceSegmentOffsets;
561565
uint32_t sliceSegmentOffsetNum;
562-
NriOptional const NriPtr(VideoH265ReferenceDesc) references; // if provided, must include "referenceNum" entries
566+
const NriPtr(VideoH265ReferenceDesc) references;
563567
uint32_t referenceNum;
564568
};
565569

@@ -568,8 +572,15 @@ NriStruct(VideoEncodeRateControlDesc) {
568572
uint8_t qpI;
569573
uint8_t qpP;
570574
uint8_t qpB;
575+
NriOptional uint8_t qpMin;
576+
NriOptional uint8_t qpMax;
571577
uint32_t frameRateNumerator;
572578
uint32_t frameRateDenominator;
579+
uint64_t targetBitrate; // CBR target bitrate, or VBR average bitrate
580+
NriOptional uint64_t maxBitrate; // VBR peak bitrate; defaults to "targetBitrate"
581+
NriOptional uint64_t maxFrameBitSize;
582+
NriOptional uint32_t virtualBufferSizeMs;
583+
NriOptional uint32_t initialVirtualBufferSizeMs;
573584
};
574585

575586
NriStruct(VideoEncodePictureDesc) {
@@ -583,8 +594,7 @@ NriStruct(VideoEncodePictureDesc) {
583594
NriStruct(VideoH264PictureDesc) {
584595
uint8_t sequenceParameterSetId;
585596
uint8_t pictureParameterSetId;
586-
uint16_t reserved;
587-
NriOptional const NriPtr(VideoH264ReferenceDesc) references; // if provided, must include "referenceNum" entries
597+
const NriPtr(VideoH264ReferenceDesc) references;
588598
uint32_t referenceNum;
589599
};
590600

@@ -604,7 +614,6 @@ NriStruct(VideoAV1TileLayoutDesc) {
604614
uint8_t tileSizeBytesMinus1;
605615
uint8_t uniformSpacing;
606616
uint16_t contextUpdateTileId;
607-
uint16_t reserved;
608617
NriOptional const uint16_t* miColumnStarts; // if provided, must include "columnNum + 1" entries
609618
NriOptional const uint16_t* miRowStarts; // if provided, must include "rowNum + 1" entries
610619
NriOptional const uint16_t* widthInSuperblocksMinus1; // if provided, must include "columnNum" entries
@@ -622,7 +631,6 @@ NriStruct(VideoAV1QuantizationDesc) {
622631
uint8_t qmV;
623632
uint8_t usingQmatrix;
624633
uint8_t diffUvDelta;
625-
uint8_t reserved[2];
626634
};
627635

628636
NriStruct(VideoAV1LoopFilterDesc) {
@@ -633,7 +641,6 @@ NriStruct(VideoAV1LoopFilterDesc) {
633641
uint8_t updateModeDelta;
634642
int8_t refDeltas[8];
635643
int8_t modeDeltas[2];
636-
uint8_t reserved[2];
637644
};
638645

639646
NriStruct(VideoAV1CdefDesc) {
@@ -645,15 +652,13 @@ NriStruct(VideoAV1CdefDesc) {
645652

646653
NriStruct(VideoAV1SegmentationDesc) {
647654
uint8_t featureEnabled[8];
648-
uint8_t reserved[8];
649655
int16_t featureData[8][8];
650656
};
651657

652658
NriStruct(VideoAV1LoopRestorationDesc) {
653659
uint8_t frameRestorationType[3];
654660
uint8_t lrUnitShift;
655661
uint8_t lrUvShift;
656-
uint8_t reserved[3];
657662
};
658663

659664
NriStruct(VideoAV1GlobalMotionDesc) {
@@ -718,7 +723,7 @@ NriStruct(VideoAV1PictureDesc) {
718723
NriOptional const NriPtr(VideoAV1LoopRestorationDesc) loopRestoration;
719724
NriOptional const NriPtr(VideoAV1GlobalMotionDesc) globalMotion;
720725
NriOptional const uint8_t* orderHints; // if provided, must include 8 entries
721-
NriOptional const NriPtr(VideoAV1ReferenceDesc) references; // if provided, must include "referenceNum" DPB snapshot entries
726+
const NriPtr(VideoAV1ReferenceDesc) references;
722727
uint32_t referenceNum;
723728
};
724729

@@ -728,7 +733,6 @@ NriStruct(VideoAV1DecodeTileDesc) {
728733
uint16_t row;
729734
uint16_t column;
730735
uint8_t anchorFrame;
731-
uint8_t reserved[3];
732736
};
733737

734738
NriStruct(VideoAV1DecodePictureDesc) {
@@ -759,9 +763,9 @@ NriStruct(VideoAV1DecodePictureDesc) {
759763
NriOptional const NriPtr(VideoAV1GlobalMotionDesc) globalMotion;
760764
NriOptional const NriPtr(VideoAV1FilmGrainDesc) filmGrain;
761765
NriOptional const uint8_t* orderHints; // if provided, must include 8 entries
762-
NriOptional const NriPtr(VideoAV1DecodeTileDesc) tiles; // if provided, must include "tileNum" entries
766+
const NriPtr(VideoAV1DecodeTileDesc) tiles;
763767
uint32_t tileNum;
764-
NriOptional const NriPtr(VideoAV1ReferenceDesc) references; // if provided, must include "referenceNum" DPB snapshot entries
768+
const NriPtr(VideoAV1ReferenceDesc) references;
765769
uint32_t referenceNum;
766770
};
767771

@@ -771,10 +775,10 @@ NriStruct(VideoDecodeDesc) {
771775
Nri(VideoBitstreamRange) bitstream;
772776
NriPtr(VideoPicture) dstPicture;
773777
NriOptional NriPtr(VideoPicture) setupPicture; // if provided, used as the reconstructed/DPB setup reference instead of "dstPicture"
774-
NriOptional const NriPtr(VideoReference) references; // if provided, must include "referenceNum" entries
778+
const NriPtr(VideoReference) references;
775779
uint32_t referenceNum;
776780
uint32_t dstSlot;
777-
NriOptional const NriPtr(VideoDecodeArgument) arguments; // if provided, must include "argumentNum" entries
781+
const NriPtr(VideoDecodeArgument) arguments;
778782
uint32_t argumentNum;
779783
NriOptional const NriPtr(VideoH264DecodePictureDesc) h264PictureDesc;
780784
NriOptional const NriPtr(VideoH265DecodePictureDesc) h265PictureDesc;
@@ -836,12 +840,12 @@ NriStruct(VideoEncodeDesc) {
836840
uint64_t metadataOffset;
837841
NriOptional NriPtr(Buffer) resolvedMetadata; // If provided, contains "VideoEncodeFeedback" after execution.
838842
uint64_t resolvedMetadataOffset;
839-
NriOptional const NriPtr(VideoReference) references; // if provided, must include "referenceNum" entries
843+
const NriPtr(VideoReference) references;
840844
uint32_t referenceNum;
841845
uint32_t reconstructedSlot;
842846
NriOptional const NriPtr(VideoH264PictureDesc) h264PictureDesc;
843847
NriOptional const NriPtr(VideoAV1PictureDesc) av1PictureDesc;
844-
NriOptional const NriPtr(VideoH265ReferenceDesc) h265ReferenceDescs; // if provided, must include "referenceNum" entries
848+
const NriPtr(VideoH265ReferenceDesc) h265ReferenceDescs;
845849
};
846850

847851
// Threadsafe: no
@@ -857,6 +861,8 @@ NriStruct(VideoInterface) {
857861
void (NRI_CALL *DestroyVideoPicture) (NriPtr(VideoPicture) videoPicture);
858862
// Returns backend-specific states for explicit caller-recorded decode picture barriers.
859863
Nri(Result) (NRI_CALL *GetVideoDecodePictureStates) (const NriRef(VideoPicture) videoPicture, NriOut NriRef(VideoDecodePictureStates) states);
864+
// Returns backend-specific states for explicit caller-recorded encode picture barriers.
865+
Nri(Result) (NRI_CALL *GetVideoEncodePictureStates) (const NriRef(VideoPicture) videoPicture, NriOut NriRef(VideoEncodePictureStates) states);
860866
// Serializes H.264 SPS/PPS or H.265 VPS/SPS/PPS parameter sets to Annex-B bytes.
861867
// Pass "dst = nullptr" to query the required byte size in "writtenSize".
862868
Nri(Result) (NRI_CALL *WriteVideoAnnexBParameterSets) (NriRef(VideoAnnexBParameterSetsDesc) annexBParameterSetsDesc);

Include/Extensions/NRIWrapperD3D12.h

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// © 2026 NVIDIA Corporation
1+
// © 2021 NVIDIA Corporation
22

33
// Goal: wrapping native D3D12 objects into NRI objects
44

@@ -20,6 +20,20 @@ NonNriForwardStruct(ID3D12CommandQueue);
2020
NonNriForwardStruct(ID3D12DescriptorHeap);
2121
NonNriForwardStruct(ID3D12CommandAllocator);
2222
NonNriForwardStruct(ID3D12GraphicsCommandList);
23+
NonNriForwardStruct(ID3D12VideoDecoder);
24+
NonNriForwardStruct(ID3D12VideoEncoder);
25+
NonNriForwardStruct(ID3D12VideoEncoderHeap);
26+
NonNriForwardStruct(ID3D12VideoEncoderHeap1);
27+
NonNriForwardStruct(D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS);
28+
NonNriForwardStruct(D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS);
29+
NonNriForwardStruct(D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS);
30+
NonNriForwardStruct(D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS);
31+
NonNriForwardStruct(D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS);
32+
NonNriForwardStruct(D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS);
33+
NonNriForwardStruct(D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1);
34+
NonNriForwardStruct(D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1);
35+
NonNriForwardStruct(D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1);
36+
NonNriForwardStruct(D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1);
2337

2438
NriNamespaceBegin
2539

@@ -93,23 +107,23 @@ NriStruct(AccelerationStructureD3D12Desc) {
93107
};
94108

95109
NriStruct(VideoDecodeD3D12Desc) {
96-
void* d3d12Decoder; // ID3D12VideoDecoder*
97-
const void* d3d12OutputArguments; // D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS*
98-
const void* d3d12InputArguments; // D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS*
110+
ID3D12VideoDecoder* d3d12Decoder;
111+
const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS* d3d12OutputArguments;
112+
const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS* d3d12InputArguments;
99113
};
100114

101115
NriStruct(VideoEncodeD3D12Desc) {
102-
void* d3d12Encoder; // ID3D12VideoEncoder*
103-
void* d3d12Heap; // ID3D12VideoEncoderHeap*
104-
const void* d3d12InputArguments; // D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS*
105-
const void* d3d12OutputArguments; // D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS*
106-
const void* d3d12ResolveMetadataInputArguments; // optional D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS*
107-
const void* d3d12ResolveMetadataOutputArguments; // optional D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS*
108-
void* d3d12Heap1; // optional ID3D12VideoEncoderHeap1*
109-
const void* d3d12InputArguments1; // optional D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1*
110-
const void* d3d12OutputArguments1; // optional D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1*
111-
const void* d3d12ResolveMetadataInputArguments1; // optional D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1*
112-
const void* d3d12ResolveMetadataOutputArguments1; // optional D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1*
116+
ID3D12VideoEncoder* d3d12Encoder;
117+
ID3D12VideoEncoderHeap* d3d12Heap;
118+
const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS* d3d12InputArguments;
119+
const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS* d3d12OutputArguments;
120+
NriOptional const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS* d3d12ResolveMetadataInputArguments;
121+
NriOptional const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS* d3d12ResolveMetadataOutputArguments;
122+
NriOptional ID3D12VideoEncoderHeap1* d3d12Heap1;
123+
NriOptional const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1* d3d12InputArguments1;
124+
NriOptional const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1* d3d12OutputArguments1;
125+
NriOptional const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1* d3d12ResolveMetadataInputArguments1;
126+
NriOptional const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1* d3d12ResolveMetadataOutputArguments1;
113127
};
114128

115129
// Threadsafe: yes

Include/Extensions/NRIWrapperVK.h

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// © 2026 NVIDIA Corporation
1+
// © 2021 NVIDIA Corporation
22

33
// Goal: wrapping native VK objects into NRI objects
44

@@ -12,6 +12,9 @@ typedef void* VKHandle;
1212
typedef int32_t VKEnum;
1313
typedef uint32_t VKFlags;
1414
typedef uint64_t VKNonDispatchableHandle;
15+
NonNriForwardStruct(VkVideoDecodeInfoKHR);
16+
NonNriForwardStruct(VkVideoEncodeInfoKHR);
17+
NonNriForwardStruct(VkVideoSessionParametersCreateInfoKHR);
1518

1619
NriNamespaceBegin
1720

@@ -113,16 +116,16 @@ NriStruct(AccelerationStructureVKDesc) {
113116
};
114117

115118
NriStruct(VideoDecodeVKDesc) {
116-
const void* vkDecodeInfo; // VkVideoDecodeInfoKHR*
119+
const VkVideoDecodeInfoKHR* vkDecodeInfo;
117120
};
118121

119122
NriStruct(VideoEncodeVKDesc) {
120-
const void* vkEncodeInfo; // VkVideoEncodeInfoKHR*
123+
const VkVideoEncodeInfoKHR* vkEncodeInfo;
121124
};
122125

123126
NriStruct(VideoSessionParametersVKDesc) {
124127
NriPtr(VideoSession) session;
125-
const void* vkSessionParametersCreateInfo; // VkVideoSessionParametersCreateInfoKHR::pNext
128+
const VkVideoSessionParametersCreateInfoKHR* vkSessionParametersCreateInfo;
126129
};
127130

128131
// Threadsafe: yes

0 commit comments

Comments
 (0)