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 | int use_ded_mem; | 989 | int use_ded_mem; |
| 990 | FFVulkanFunctions *vk = &s->vkfn; | 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 | VkBufferCreateInfo buf_spawn = { | 1002 | VkBufferCreateInfo buf_spawn = { |
| 993 | .sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, | 1003 | .sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, |
| 994 | .pNext = pNext, | 1004 | .pNext = pNext, |