summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLynne <dev@lynne.ee>2020-05-15 00:16:58 +0100
committerLynne <dev@lynne.ee>2020-05-23 19:07:41 +0100
commit2c6366590e912714913680af8ea628262975755c (patch)
tree8e27653d7a58ebff9256055ecce02ba4842f0e21
parent98405422be81f007bcfd04b29bde8b6a94ab36f7 (diff)
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.
-rw-r--r--libavutil/hwcontext_vulkan.c3
-rw-r--r--libavutil/hwcontext_vulkan.h4
2 files changed, 4 insertions, 3 deletions
diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
index 47feff43dc..9374b86632 100644
--- a/libavutil/hwcontext_vulkan.c
+++ b/libavutil/hwcontext_vulkan.c
@@ -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,
diff --git a/libavutil/hwcontext_vulkan.h b/libavutil/hwcontext_vulkan.h
index 656411e0a8..0ac34658b2 100644
--- a/libavutil/hwcontext_vulkan.h
+++ b/libavutil/hwcontext_vulkan.h
@@ -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;
/**