vk_rasterizer: Support disabled uniform buffers
This commit is contained in:
parent
4a8fe67964
commit
e4f9ce0379
@ -909,6 +909,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);
|
||||||
|
Loading…
Reference in New Issue
Block a user