Merge pull request #3480 from ReinUsesLisp/vk-disabled-ubo
vk_rasterizer: Support disabled uniform buffers
This commit is contained in:
		| @@ -915,6 +915,13 @@ void RasterizerVulkan::SetupComputeImages(const ShaderEntries& entries) { | |||||||
|  |  | ||||||
| void RasterizerVulkan::SetupConstBuffer(const ConstBufferEntry& entry, | void RasterizerVulkan::SetupConstBuffer(const ConstBufferEntry& entry, | ||||||
|                                         const Tegra::Engines::ConstBufferInfo& buffer) { |                                         const Tegra::Engines::ConstBufferInfo& buffer) { | ||||||
|  |     if (!buffer.enabled) { | ||||||
|  |         // Set values to zero to unbind buffers | ||||||
|  |         update_descriptor_queue.AddBuffer(buffer_cache.GetEmptyBuffer(sizeof(float)), 0, | ||||||
|  |                                           sizeof(float)); | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     // Align the size to avoid bad std140 interactions |     // Align the size to avoid bad std140 interactions | ||||||
|     const std::size_t size = |     const std::size_t size = | ||||||
|         Common::AlignUp(CalculateConstBufferSize(entry, buffer), 4 * sizeof(float)); |         Common::AlignUp(CalculateConstBufferSize(entry, buffer), 4 * sizeof(float)); | ||||||
|   | |||||||
| @@ -73,7 +73,8 @@ VKBuffer* VKStagingBufferPool::TryGetReservedBuffer(std::size_t size, bool host_ | |||||||
| VKBuffer& VKStagingBufferPool::CreateStagingBuffer(std::size_t size, bool host_visible) { | VKBuffer& VKStagingBufferPool::CreateStagingBuffer(std::size_t size, bool host_visible) { | ||||||
|     const auto usage = |     const auto usage = | ||||||
|         vk::BufferUsageFlagBits::eTransferSrc | vk::BufferUsageFlagBits::eTransferDst | |         vk::BufferUsageFlagBits::eTransferSrc | vk::BufferUsageFlagBits::eTransferDst | | ||||||
|         vk::BufferUsageFlagBits::eStorageBuffer | vk::BufferUsageFlagBits::eIndexBuffer; |         vk::BufferUsageFlagBits::eUniformBuffer | vk::BufferUsageFlagBits::eStorageBuffer | | ||||||
|  |         vk::BufferUsageFlagBits::eIndexBuffer; | ||||||
|     const u32 log2 = Common::Log2Ceil64(size); |     const u32 log2 = Common::Log2Ceil64(size); | ||||||
|     const vk::BufferCreateInfo buffer_ci({}, 1ULL << log2, usage, vk::SharingMode::eExclusive, 0, |     const vk::BufferCreateInfo buffer_ci({}, 1ULL << log2, usage, vk::SharingMode::eExclusive, 0, | ||||||
|                                          nullptr); |                                          nullptr); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user