We require this internally when using descriptor buffers, so it makes sense to enable it internally, also.
Unified · Split
| @@ -989,6 +989,16 @@ int ff_vk_create_buf(FFVulkanContext *s, FFVkBuffer *buf, size_t size, · 988 unmodified lines | ||
| 989 | 989 | int use_ded_mem; |
| 990 | 990 | FFVulkanFunctions *vk = &s->vkfn; |
| 991 | 991 | |
| 992 | + /* Buffer usage flags corresponding to buffer descriptor types */ | |
| 993 | + const VkBufferUsageFlags desc_usage = | |
| 994 | + VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | | |
| 995 | + VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | | |
| 996 | + VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT | | |
| 997 | + VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT; | |
| 998 | + | |
| 999 | + if ((s->extensions & FF_VK_EXT_DESCRIPTOR_BUFFER) && (usage & desc_usage)) | |
| 1000 | + usage |= VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT; | |
| 1001 | + | |
| 992 | 1002 | VkBufferCreateInfo buf_spawn = { |
| 993 | 1003 | .sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, |
| 994 | 1004 | .pNext = pNext, |