Browse Source
Merge pull request #3480 from ReinUsesLisp/vk-disabled-ubo
vk_rasterizer: Support disabled uniform buffers
pull/15/merge
Fernando Sahmkow
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
9 additions and
1 deletions
-
src/video_core/renderer_vulkan/vk_rasterizer.cpp
-
src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
|
|
|
@ -915,6 +915,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)); |
|
|
|
|
|
|
|
@ -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); |
|
|
|
|