@@ -199,6 +199,39 @@ typedef struct {
199
199
} mfxSurfaceD3D12Tex2D ;
200
200
MFX_PACK_END ()
201
201
202
+ MFX_PACK_BEGIN_STRUCT_W_PTR ()
203
+ /*!
204
+ Optional extension buffer, which can be attached to mfxSurfaceHeader::ExtParam
205
+ (second parameter of mfxFrameSurfaceInterface::Export) in order to pass Vulkan parameters
206
+ during mfxFrameSurface1 exporting to Vulkan surface.
207
+ If buffer is not provided all resources will be created by oneAPI Video Processing Library (oneVPL) RT internally.
208
+ */
209
+ typedef struct {
210
+ mfxExtBuffer Header ; /*!< Extension buffer header. Header.BufferId must be equal to MFX_EXTBUFF_EXPORT_SHARING_DESC_VULKAN. */
211
+
212
+ mfxHDL instance ; /*!< Pointer to Vulkan instance, type VkInstance */
213
+ mfxHDL physicalDevice ; /*!< Pointer to Vulkan physical device, type VkPhysicalDevice */
214
+ mfxHDL device ; /*!< Pointer to Vulkan device, type VkDevice */
215
+
216
+ mfxHDL reserved [7 ];
217
+ } mfxExtSurfaceVulkanImg2DExportDescription ;
218
+ MFX_PACK_END ()
219
+
220
+ MFX_PACK_BEGIN_STRUCT_W_PTR ()
221
+ typedef struct {
222
+ mfxSurfaceInterface SurfaceInterface ;
223
+
224
+ mfxHDL instance ; /*!< Pointer to Vulkan instance, type VkInstance */
225
+ mfxHDL physicalDevice ; /*!< Pointer to Vulkan physical device, type VkPhysicalDevice */
226
+ mfxHDL device ; /*!< Pointer to Vulkan device, type VkDevice */
227
+
228
+ mfxHDL image2D ; /*!< Pointer to Vulkan 2D images, type VkImage */
229
+ mfxHDL image2DMemory ; /*!< Pointer to Vulkan device memory, VkDeviceMemory*/
230
+
231
+ mfxHDL reserved [10 ];
232
+ } mfxSurfaceVulkanImg2D ;
233
+ MFX_PACK_END ()
234
+
202
235
/*! The mfxSurfaceComponent enumerator specifies the internal surface pool to use when importing surfaces. */
203
236
typedef enum {
204
237
MFX_SURFACE_COMPONENT_UNKNOWN = 0 , /*!< Unknown surface component. */
0 commit comments