summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-03-06 09:08:16 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-03-06 22:47:51 +0100
commite4f9ce0379aed68efa73669b836b1d5818883419 (patch)
tree74e0714699c78d5178de289b0f7af1ba1cf9f5ce /src/video_core/renderer_vulkan
parentMerge pull request #3479 from jroweboy/dont-log-on-no-input (diff)
downloadyuzu-e4f9ce0379aed68efa73669b836b1d5818883419.tar
yuzu-e4f9ce0379aed68efa73669b836b1d5818883419.tar.gz
yuzu-e4f9ce0379aed68efa73669b836b1d5818883419.tar.bz2
yuzu-e4f9ce0379aed68efa73669b836b1d5818883419.tar.lz
yuzu-e4f9ce0379aed68efa73669b836b1d5818883419.tar.xz
yuzu-e4f9ce0379aed68efa73669b836b1d5818883419.tar.zst
yuzu-e4f9ce0379aed68efa73669b836b1d5818883419.zip
Diffstat (limited to 'src/video_core/renderer_vulkan')
-rw-r--r--src/video_core/renderer_vulkan/vk_rasterizer.cpp7
-rw-r--r--src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp3
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) {
void RasterizerVulkan::SetupConstBuffer(const ConstBufferEntry& entry,
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
const std::size_t size =
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_
VKBuffer& VKStagingBufferPool::CreateStagingBuffer(std::size_t size, bool host_visible) {
const auto usage =
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 vk::BufferCreateInfo buffer_ci({}, 1ULL << log2, usage, vk::SharingMode::eExclusive, 0,
nullptr);