|
FFmpeg
|
Main Vulkan context, allocated as AVHWDeviceContext.hwctx. More...
#include <hwcontext_vulkan.h>
Data Fields | |
| const VkAllocationCallbacks * | alloc |
| Custom memory allocator, else NULL. More... | |
| PFN_vkGetInstanceProcAddr | get_proc_addr |
| Pointer to a vkGetInstanceProcAddr loading function. More... | |
| VkInstance | inst |
| Vulkan instance. More... | |
| VkPhysicalDevice | phys_dev |
| Physical device. More... | |
| VkDevice | act_dev |
| Active device. More... | |
| VkPhysicalDeviceFeatures2 | device_features |
| This structure should be set to the set of features that present and enabled during device creation. More... | |
| const char *const * | enabled_inst_extensions |
| Enabled instance extensions. More... | |
| int | nb_enabled_inst_extensions |
| const char *const * | enabled_dev_extensions |
| Enabled device extensions. More... | |
| int | nb_enabled_dev_extensions |
| attribute_deprecated void(* | lock_queue )(struct AVHWDeviceContext *ctx, uint32_t queue_family, uint32_t index) |
| Locks a queue, preventing other threads from submitting any command buffers to this queue. More... | |
| attribute_deprecated void(* | unlock_queue )(struct AVHWDeviceContext *ctx, uint32_t queue_family, uint32_t index) |
| Similar to lock_queue(), unlocks a queue. More... | |
| AVVulkanDeviceQueueFamily | qf [64] |
| Queue families used. More... | |
| int | nb_qf |
| VkDeviceQueueCreateFlags | queue_flags |
Main Vulkan context, allocated as AVHWDeviceContext.hwctx.
All of these can be set before init to change what the context uses
Definition at line 59 of file hwcontext_vulkan.h.
| const VkAllocationCallbacks* AVVulkanDeviceContext::alloc |
Custom memory allocator, else NULL.
Definition at line 63 of file hwcontext_vulkan.h.
Referenced by alloc_mem(), chromaber_vulkan_uninit(), create_frame(), create_instance(), ff_vk_decode_free_frame(), interlace_vulkan_uninit(), scale_vulkan_uninit(), uninit(), v360_vulkan_uninit(), vulkan_device_create_internal(), vulkan_device_free(), and vulkan_frame_free().
| PFN_vkGetInstanceProcAddr AVVulkanDeviceContext::get_proc_addr |
Pointer to a vkGetInstanceProcAddr loading function.
If unset, will dynamically load and use libvulkan.
Definition at line 69 of file hwcontext_vulkan.h.
Referenced by create_instance(), cuda_device_derive(), ff_vk_load_functions(), init_vulkan(), and load_libvulkan().
| VkInstance AVVulkanDeviceContext::inst |
Vulkan instance.
Must be at least version 1.3.
Definition at line 74 of file hwcontext_vulkan.h.
Referenced by create_instance(), cuda_device_derive(), ff_vk_load_functions(), find_device(), init_vulkan(), and vulkan_device_free().
| VkPhysicalDevice AVVulkanDeviceContext::phys_dev |
Physical device.
Definition at line 79 of file hwcontext_vulkan.h.
Referenced by check_extensions(), cuda_device_derive(), ff_vk_filter_init_context(), find_device(), init_vulkan(), setup_queue_families(), try_export_flags(), vkfmt_from_pixfmt2(), vulkan_decode_get_profile(), vulkan_device_create_internal(), vulkan_device_init(), vulkan_frames_init(), and vulkan_setup_profile().
| VkDevice AVVulkanDeviceContext::act_dev |
Active device.
Definition at line 84 of file hwcontext_vulkan.h.
Referenced by alloc_bind_mem(), alloc_mem(), chromaber_vulkan_uninit(), create_frame(), ff_vk_decode_free_frame(), ff_vk_load_functions(), get_packet(), init_vulkan(), interlace_vulkan_uninit(), scale_vulkan_uninit(), uninit(), v360_vulkan_uninit(), vk_ffv1_free_frame_priv(), vulkan_device_create_internal(), vulkan_device_free(), vulkan_frame_free(), vulkan_frames_init(), and vulkan_transfer_host().
| VkPhysicalDeviceFeatures2 AVVulkanDeviceContext::device_features |
This structure should be set to the set of features that present and enabled during device creation.
When a device is created by FFmpeg, it will default to enabling all that are present of the shaderImageGatherExtended, fragmentStoresAndAtomics, shaderInt64 and vertexPipelineStoresAndAtomics features.
Definition at line 92 of file hwcontext_vulkan.h.
Referenced by init_vulkan(), and vulkan_device_create_internal().
| const char* const * AVVulkanDeviceContext::enabled_inst_extensions |
Enabled instance extensions.
If supplying your own device context, set this to an array of strings, with each entry containing the specified Vulkan extension string to enable. Duplicates are possible and accepted. If no extensions are enabled, set these fields to NULL, and 0 respectively. av_vk_get_optional_instance_extensions() can be used to enumerate extensions that FFmpeg may use if enabled.
Definition at line 103 of file hwcontext_vulkan.h.
Referenced by create_instance(), ff_vk_filter_init_context(), and vulkan_device_free().
| int AVVulkanDeviceContext::nb_enabled_inst_extensions |
Definition at line 104 of file hwcontext_vulkan.h.
Referenced by create_instance(), ff_vk_filter_init_context(), and vulkan_device_free().
| const char* const * AVVulkanDeviceContext::enabled_dev_extensions |
Enabled device extensions.
By default, VK_KHR_external_memory_fd, VK_EXT_external_memory_dma_buf, VK_EXT_image_drm_format_modifier, VK_KHR_external_semaphore_fd and VK_EXT_external_memory_host are enabled if found. If supplying your own device context, these fields takes the same format as the above fields, with the same conditions that duplicates are possible and accepted, and that NULL and 0 respectively means no extensions are enabled. av_vk_get_optional_device_extensions() can be used to enumerate extensions that FFmpeg may use if enabled.
Definition at line 116 of file hwcontext_vulkan.h.
Referenced by ff_vk_filter_init_context(), init_vulkan(), vulkan_decode_bootstrap(), vulkan_device_create_internal(), vulkan_device_free(), and vulkan_device_init().
| int AVVulkanDeviceContext::nb_enabled_dev_extensions |
Definition at line 117 of file hwcontext_vulkan.h.
Referenced by ff_vk_filter_init_context(), init_vulkan(), vulkan_decode_bootstrap(), vulkan_device_create_internal(), vulkan_device_free(), and vulkan_device_init().
| attribute_deprecated void(* AVVulkanDeviceContext::lock_queue) (struct AVHWDeviceContext *ctx, uint32_t queue_family, uint32_t index) |
Locks a queue, preventing other threads from submitting any command buffers to this queue.
If set to NULL, will be set to lavu-internal functions that utilize a mutex.
Deprecated: use VK_KHR_internally_synchronized_queues.
Definition at line 129 of file hwcontext_vulkan.h.
Referenced by lock_queue(), and vulkan_device_init().
| attribute_deprecated void(* AVVulkanDeviceContext::unlock_queue) (struct AVHWDeviceContext *ctx, uint32_t queue_family, uint32_t index) |
Similar to lock_queue(), unlocks a queue.
Must only be called after locking.
Deprecated: use VK_KHR_internally_synchronized_queues.
Definition at line 137 of file hwcontext_vulkan.h.
Referenced by unlock_queue(), and vulkan_device_init().
| AVVulkanDeviceQueueFamily AVVulkanDeviceContext::qf[64] |
Queue families used.
Must be preferentially ordered. List may contain duplicates.
For compatibility reasons, all the enabled queue families listed above (queue_family_(tx/comp/encode/decode)_index) must also be included in this list until they're removed after deprecation.
Definition at line 148 of file hwcontext_vulkan.h.
Referenced by init_vulkan(), setup_queue_families(), and vulkan_device_init().
| int AVVulkanDeviceContext::nb_qf |
Definition at line 149 of file hwcontext_vulkan.h.
Referenced by init_vulkan(), setup_queue_families(), and vulkan_device_init().
| VkDeviceQueueCreateFlags AVVulkanDeviceContext::queue_flags |
Definition at line 152 of file hwcontext_vulkan.h.
Referenced by copy_pl_queue(), and setup_queue_families().
1.8.17