diff options
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.cpp | 7 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 3fe28c204..9d7f5831b 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp | |||
| @@ -909,6 +909,13 @@ void RasterizerVulkan::SetupComputeImages(const ShaderEntries& entries) { | |||
| 909 | 909 | ||
| 910 | void RasterizerVulkan::SetupConstBuffer(const ConstBufferEntry& entry, | 910 | void RasterizerVulkan::SetupConstBuffer(const ConstBufferEntry& entry, |
| 911 | const Tegra::Engines::ConstBufferInfo& buffer) { | 911 | const Tegra::Engines::ConstBufferInfo& buffer) { |
| 912 | if (!buffer.enabled) { | ||
| 913 | // Set values to zero to unbind buffers | ||
| 914 | update_descriptor_queue.AddBuffer(buffer_cache.GetEmptyBuffer(sizeof(float)), 0, | ||
| 915 | sizeof(float)); | ||
| 916 | return; | ||
| 917 | } | ||
| 918 | |||
| 912 | // Align the size to avoid bad std140 interactions | 919 | // Align the size to avoid bad std140 interactions |
| 913 | const std::size_t size = | 920 | const std::size_t size = |
| 914 | Common::AlignUp(CalculateConstBufferSize(entry, buffer), 4 * sizeof(float)); | 921 | Common::AlignUp(CalculateConstBufferSize(entry, buffer), 4 * sizeof(float)); |
diff --git a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp index 171d78afc..d9ea3cc21 100644 --- a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp +++ b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp | |||
| @@ -73,7 +73,8 @@ VKBuffer* VKStagingBufferPool::TryGetReservedBuffer(std::size_t size, bool host_ | |||
| 73 | VKBuffer& VKStagingBufferPool::CreateStagingBuffer(std::size_t size, bool host_visible) { | 73 | VKBuffer& VKStagingBufferPool::CreateStagingBuffer(std::size_t size, bool host_visible) { |
| 74 | const auto usage = | 74 | const auto usage = |
| 75 | vk::BufferUsageFlagBits::eTransferSrc | vk::BufferUsageFlagBits::eTransferDst | | 75 | vk::BufferUsageFlagBits::eTransferSrc | vk::BufferUsageFlagBits::eTransferDst | |
| 76 | vk::BufferUsageFlagBits::eStorageBuffer | vk::BufferUsageFlagBits::eIndexBuffer; | 76 | vk::BufferUsageFlagBits::eUniformBuffer | vk::BufferUsageFlagBits::eStorageBuffer | |
| 77 | vk::BufferUsageFlagBits::eIndexBuffer; | ||
| 77 | const u32 log2 = Common::Log2Ceil64(size); | 78 | const u32 log2 = Common::Log2Ceil64(size); |
| 78 | const vk::BufferCreateInfo buffer_ci({}, 1ULL << log2, usage, vk::SharingMode::eExclusive, 0, | 79 | const vk::BufferCreateInfo buffer_ci({}, 1ULL << log2, usage, vk::SharingMode::eExclusive, 0, |
| 79 | nullptr); | 80 | nullptr); |