FFmpeg has patches which add support for it.
Unified · Split
| @@ -185,6 +185,7 @@ pl_vulkan mppl_create_vulkan(struct vulkan_opts *opts, · 184 unmodified lines | ||
| 185 | 185 | const char *opt_extensions[] = { |
| 186 | 186 | VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME, |
| 187 | 187 | VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME, |
| 188 | + VK_EXT_SHADER_OBJECT_EXTENSION_NAME, | |
| 188 | 189 | VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME, |
| 189 | 190 | VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME, |
| 190 | 191 | VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME, |
| @@ -192,9 +193,15 @@ pl_vulkan mppl_create_vulkan(struct vulkan_opts *opts, · 1 unmodified line | ||
| 192 | 193 | "VK_KHR_video_decode_av1", /* VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME */ |
| 193 | 194 | }; |
| 194 | 195 | |
| 196 | + VkPhysicalDeviceShaderObjectFeaturesEXT shader_object_feature = { | |
| 197 | + .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT, | |
| 198 | + .pNext = NULL, | |
| 199 | + .shaderObject = true, | |
| 200 | + }; | |
| 201 | + | |
| 195 | 202 | VkPhysicalDeviceDescriptorBufferFeaturesEXT descriptor_buffer_feature = { |
| 196 | 203 | .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT, |
| 197 | − .pNext = NULL, | |
| 204 | + .pNext = &shader_object_feature, | |
| 198 | 205 | .descriptorBuffer = true, |
| 199 | 206 | .descriptorBufferPushDescriptors = true, |
| 200 | 207 | }; |