hwcontext_vulkan: do not OR the user-specified usage with our default flags

Some users may need special formats that aren't available when the STORAGE
flag bit is set, which would result in allocations failing.
pull/338/head
Lynne 5 years ago
parent 98405422be
commit 2c6366590e
No known key found for this signature in database
GPG Key ID: A2FEA5F03F034464
  1. 3
      libavutil/hwcontext_vulkan.c
  2. 4
      libavutil/hwcontext_vulkan.h

@ -1703,7 +1703,8 @@ static int vulkan_frames_init(AVHWFramesContext *hwfc)
hwctx->tiling = hwctx->tiling ? hwctx->tiling : p->use_linear_images ?
VK_IMAGE_TILING_LINEAR : VK_IMAGE_TILING_OPTIMAL;
hwctx->usage |= DEFAULT_USAGE_FLAGS;
if (!hwctx->usage)
hwctx->usage = DEFAULT_USAGE_FLAGS;
err = create_exec_ctx(hwfc->device_ctx, &fp->conv_ctx,
dev_hwctx->queue_family_comp_index,

@ -112,8 +112,8 @@ typedef struct AVVulkanFramesContext {
*/
VkImageTiling tiling;
/**
* Defines extra usage of output frames. This is bitwise OR'd with the
* standard usage flags (SAMPLED, STORAGE, TRANSFER_SRC and TRANSFER_DST).
* Defines extra usage of output frames. If left as 0, the following bits
* are set: TRANSFER_SRC, TRANSFER_DST. SAMPLED and STORAGE.
*/
VkImageUsageFlagBits usage;
/**

Loading…
Cancel
Save