diff options
Diffstat (limited to 'src')
| -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 b402fb268..a2f508f86 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp | |||
| @@ -915,6 +915,13 @@ void RasterizerVulkan::SetupComputeImages(const ShaderEntries& entries) { | |||
| 915 | 915 | ||
| 916 | void RasterizerVulkan::SetupConstBuffer(const ConstBufferEntry& entry, | 916 | void RasterizerVulkan::SetupConstBuffer(const ConstBufferEntry& entry, |
| 917 | const Tegra::Engines::ConstBufferInfo& buffer) { | 917 | const Tegra::Engines::ConstBufferInfo& buffer) { |
| 918 | if (!buffer.enabled) { | ||
| 919 | // Set values to zero to unbind buffers | ||
| 920 | update_descriptor_queue.AddBuffer(buffer_cache.GetEmptyBuffer(sizeof(float)), 0, | ||
| 921 | sizeof(float)); | ||
| 922 | return; | ||
| 923 | } | ||
| 924 | |||
| 918 | // Align the size to avoid bad std140 interactions | 925 | // Align the size to avoid bad std140 interactions |
| 919 | const std::size_t size = | 926 | const std::size_t size = |
| 920 | Common::AlignUp(CalculateConstBufferSize(entry, buffer), 4 * sizeof(float)); | 927 | 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); |