aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan sinclair <dj2@everburning.com>2019-02-20 19:59:18 -0500
committerGitHub <noreply@github.com>2019-02-20 19:59:18 -0500
commit198777a4ef5d14364a736d9b4b8df61a84614fc3 (patch)
tree6a86772947d1a4a428903c8f7176704ed0ae1125 /src
parent72837666c311762c16a9746657f2a72676979b11 (diff)
downloadamber-198777a4ef5d14364a736d9b4b8df61a84614fc3.tar.gz
Convert PushConstant to use a vector. (#305)
Instead of allocating an array of uint8_t's and storing into a unique_ptr, this CL changes the PushConstant code to have a std::vector<uint8_t> instead. Issue #277.
Diffstat (limited to 'src')
-rw-r--r--src/vulkan/push_constant.cc8
-rw-r--r--src/vulkan/push_constant.h2
2 files changed, 5 insertions, 5 deletions
diff --git a/src/vulkan/push_constant.cc b/src/vulkan/push_constant.cc
index 53140ca..e54254c 100644
--- a/src/vulkan/push_constant.cc
+++ b/src/vulkan/push_constant.cc
@@ -27,9 +27,9 @@ PushConstant::PushConstant(Device* device, uint32_t max_push_constant_size)
: Resource(device,
max_push_constant_size,
VkPhysicalDeviceMemoryProperties()),
- max_push_constant_size_(max_push_constant_size),
- memory_(std::unique_ptr<uint8_t>(new uint8_t[max_push_constant_size])) {
- SetMemoryPtr(static_cast<void*>(memory_.get()));
+ max_push_constant_size_(max_push_constant_size) {
+ memory_.resize(max_push_constant_size_);
+ SetMemoryPtr(static_cast<void*>(memory_.data()));
}
PushConstant::~PushConstant() = default;
@@ -98,7 +98,7 @@ Result PushConstant::RecordPushConstantVkCommand(
device_->GetPtrs()->vkCmdPushConstants(
command_buffer, pipeline_layout, VK_SHADER_STAGE_ALL,
push_const_range.offset, push_const_range.size,
- memory_.get() + push_const_range.offset);
+ memory_.data() + push_const_range.offset);
return {};
}
diff --git a/src/vulkan/push_constant.h b/src/vulkan/push_constant.h
index 77c8515..63f218e 100644
--- a/src/vulkan/push_constant.h
+++ b/src/vulkan/push_constant.h
@@ -75,7 +75,7 @@ class PushConstant : public Resource {
// if address ranges overlap, then the later values take effect.
std::vector<BufferInput> push_constant_data_;
- std::unique_ptr<uint8_t> memory_;
+ std::vector<uint8_t> memory_;
};
} // namespace vulkan