aboutsummaryrefslogtreecommitdiff
path: root/src/vulkan/pipeline.cc
diff options
context:
space:
mode:
authorPaul Thomson <paulthomson@google.com>2021-10-12 13:38:21 +0100
committerPaul Thomson <paulthomson@google.com>2021-10-12 13:38:42 +0100
commitf3b1d8fd9a3dfb99df5b8ba7900b3493ee0329a8 (patch)
tree17024a345cc88eba5ba0a838d8fd11af3aef8350 /src/vulkan/pipeline.cc
parent69207cd4d09b81e2b6d350d8a7a929904e4aa66f (diff)
parent8797ee109e7a6ea4d1f58f387f757545fa35325b (diff)
downloadamber-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.cc13
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 "