[FFmpeg-devel] [PATCH] lavu/vulkan: fix handle type for 32-bit targets
Martin Storsjö
martin at martin.st
Mon Mar 6 11:00:33 EET 2023
On Thu, 2 Mar 2023, Kacper Michajłow wrote:
> Fixes compilation with clang which errors out on Wint-conversion.
>
> Signed-off-by: Kacper Michajłow <kasper93 at gmail.com>
> ---
> libavutil/hwcontext_vulkan.c | 2 +-
> libavutil/vulkan.h | 4 ++++
> 2 files changed, 5 insertions(+), 1 deletion(-)
Minor context; it's only recent Clang that treats this issue as an error
by default - iirc it changed sometime last year, so possibly since Clang
15 or so.
>
> diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
> index 2a9b5f4aac..b3eccea7af 100644
> --- a/libavutil/hwcontext_vulkan.c
> +++ b/libavutil/hwcontext_vulkan.c
> @@ -1149,7 +1149,7 @@ static void free_exec_ctx(AVHWFramesContext *hwfc, VulkanExecCtx *cmd)
>
> av_freep(&cmd->queues);
> av_freep(&cmd->bufs);
> - cmd->pool = NULL;
> + cmd->pool = VK_NULL_HANDLE;
> }
This LGTM - I had run into the same issue and tried to fix this issue
differently, but this looks better to me.
> static VkCommandBuffer get_buf_exec_ctx(AVHWFramesContext *hwfc, VulkanExecCtx *cmd)
> diff --git a/libavutil/vulkan.h b/libavutil/vulkan.h
> index d1ea1e24fb..90922c6cf3 100644
> --- a/libavutil/vulkan.h
> +++ b/libavutil/vulkan.h
> @@ -122,7 +122,11 @@ typedef struct FFVulkanPipeline {
> VkDescriptorSetLayout *desc_layout;
> VkDescriptorPool desc_pool;
> VkDescriptorSet *desc_set;
> +#if VK_USE_64_BIT_PTR_DEFINES == 1
> void **desc_staging;
> +#else
> + uint64_t *desc_staging;
> +#endif
> VkDescriptorSetLayoutBinding **desc_binding;
> VkDescriptorUpdateTemplate *desc_template;
> int *desc_set_initialized;
> --
> 2.34.1
What issue does this fix? I don't run into any errors relating to this,
when building with Clang for Windows on i386 or armv7. I think the fix is
correct though, the vulkan data types are a bit hard to get a grip of.
// Martin
More information about the ffmpeg-devel
mailing list