renderer_vulkan: Don't add transform feedback flag if unsupported
This commit is contained in:
		| @@ -590,7 +590,8 @@ void BufferCacheRuntime::ReserveNullBuffer() { | ||||
|         .pNext = nullptr, | ||||
|         .flags = 0, | ||||
|         .size = 4, | ||||
|         .usage = VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT, | ||||
|         .usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT | | ||||
|                  VK_BUFFER_USAGE_TRANSFER_DST_BIT, | ||||
|         .sharingMode = VK_SHARING_MODE_EXCLUSIVE, | ||||
|         .queueFamilyIndexCount = 0, | ||||
|         .pQueueFamilyIndices = nullptr, | ||||
|   | ||||
| @@ -38,18 +38,20 @@ size_t Region(size_t iterator) noexcept { | ||||
| StagingBufferPool::StagingBufferPool(const Device& device_, MemoryAllocator& memory_allocator_, | ||||
|                                      Scheduler& scheduler_) | ||||
|     : device{device_}, memory_allocator{memory_allocator_}, scheduler{scheduler_} { | ||||
|     const VkBufferCreateInfo stream_ci = { | ||||
|     VkBufferCreateInfo stream_ci = { | ||||
|         .sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, | ||||
|         .pNext = nullptr, | ||||
|         .flags = 0, | ||||
|         .size = STREAM_BUFFER_SIZE, | ||||
|         .usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | | ||||
|                  VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | | ||||
|                  VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT, | ||||
|                  VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, | ||||
|         .sharingMode = VK_SHARING_MODE_EXCLUSIVE, | ||||
|         .queueFamilyIndexCount = 0, | ||||
|         .pQueueFamilyIndices = nullptr, | ||||
|     }; | ||||
|     if (device.IsExtTransformFeedbackSupported()) { | ||||
|         stream_ci.usage |= VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT; | ||||
|     } | ||||
|     stream_buffer = memory_allocator.CreateBuffer(stream_ci, MemoryUsage::Stream); | ||||
|     if (device.HasDebuggingToolAttached()) { | ||||
|         stream_buffer.SetObjectNameEXT("Stream Buffer"); | ||||
| @@ -164,19 +166,21 @@ std::optional<StagingBufferRef> StagingBufferPool::TryGetReservedBuffer(size_t s | ||||
| StagingBufferRef StagingBufferPool::CreateStagingBuffer(size_t size, MemoryUsage usage, | ||||
|                                                         bool deferred) { | ||||
|     const u32 log2 = Common::Log2Ceil64(size); | ||||
|     const VkBufferCreateInfo buffer_ci = { | ||||
|     VkBufferCreateInfo buffer_ci = { | ||||
|         .sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, | ||||
|         .pNext = nullptr, | ||||
|         .flags = 0, | ||||
|         .size = 1ULL << log2, | ||||
|         .usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT | | ||||
|                  VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | | ||||
|                  VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | | ||||
|                  VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT, | ||||
|                  VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, | ||||
|         .sharingMode = VK_SHARING_MODE_EXCLUSIVE, | ||||
|         .queueFamilyIndexCount = 0, | ||||
|         .pQueueFamilyIndices = nullptr, | ||||
|     }; | ||||
|     if (device.IsExtTransformFeedbackSupported()) { | ||||
|         buffer_ci.usage |= VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT; | ||||
|     } | ||||
|     vk::Buffer buffer = memory_allocator.CreateBuffer(buffer_ci, usage); | ||||
|     if (device.HasDebuggingToolAttached()) { | ||||
|         ++buffer_index; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user