diff options
author | Paul Thomson <paulthomson@google.com> | 2021-10-12 13:38:21 +0100 |
---|---|---|
committer | Paul Thomson <paulthomson@google.com> | 2021-10-12 13:38:42 +0100 |
commit | f3b1d8fd9a3dfb99df5b8ba7900b3493ee0329a8 (patch) | |
tree | 17024a345cc88eba5ba0a838d8fd11af3aef8350 /src/vulkan/pipeline.cc | |
parent | 69207cd4d09b81e2b6d350d8a7a929904e4aa66f (diff) | |
parent | 8797ee109e7a6ea4d1f58f387f757545fa35325b (diff) | |
download | amber-f3b1d8fd9a3dfb99df5b8ba7900b3493ee0329a8.tar.gz |
Merge commit '8797ee109e7a6ea4d1f58f387f757545fa35325b' into master
Bug: b/201652781
Change-Id: Ibb8fbe9137d18fa6f6109ad5f51ec8e7c5f9cfbb
Diffstat (limited to 'src/vulkan/pipeline.cc')
-rw-r--r-- | src/vulkan/pipeline.cc | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/vulkan/pipeline.cc b/src/vulkan/pipeline.cc index e0b875c..259f375 100644 --- a/src/vulkan/pipeline.cc +++ b/src/vulkan/pipeline.cc @@ -322,6 +322,7 @@ Result Pipeline::AddBufferDescriptor(const BufferCommand* cmd) { cmd->GetDescriptorSet(), cmd->GetBinding()); if (cmd->IsCombinedImageSampler()) image_desc->SetAmberSampler(cmd->GetSampler()); + descriptors.push_back(std::move(image_desc)); } else { auto buffer_desc = MakeUnique<BufferDescriptor>( @@ -336,18 +337,18 @@ Result Pipeline::AddBufferDescriptor(const BufferCommand* cmd) { "Descriptors bound to the same binding needs to have matching " "descriptor types"); } - // Check that the buffer is not added already. - const auto& buffers = desc->AsBufferBackedDescriptor()->GetAmberBuffers(); - if (std::find(buffers.begin(), buffers.end(), cmd->GetBuffer()) != - buffers.end()) { - return Result("Buffer has been added already"); - } desc->AsBufferBackedDescriptor()->AddAmberBuffer(cmd->GetBuffer()); } if (cmd->IsUniformDynamic() || cmd->IsSSBODynamic()) desc->AsBufferDescriptor()->AddDynamicOffset(cmd->GetDynamicOffset()); + if (cmd->IsUniform() || cmd->IsUniformDynamic() || cmd->IsSSBO() || + cmd->IsSSBODynamic()) { + desc->AsBufferDescriptor()->AddDescriptorOffset(cmd->GetDescriptorOffset()); + desc->AsBufferDescriptor()->AddDescriptorRange(cmd->GetDescriptorRange()); + } + if (cmd->IsSSBO() && !desc->IsStorageBuffer()) { return Result( "Vulkan::AddBufferDescriptor BufferCommand for SSBO uses wrong " |