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.
This commit is contained in:
Lynne 2020-05-15 00:16:58 +01:00
parent 98405422be
commit 2c6366590e
No known key found for this signature in database
GPG Key ID: A2FEA5F03F034464
2 changed files with 4 additions and 3 deletions

View File

@ -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,

View File

@ -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;
/**