diff options
author | dan sinclair <dj2@everburning.com> | 2019-02-20 19:59:18 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-20 19:59:18 -0500 |
commit | 198777a4ef5d14364a736d9b4b8df61a84614fc3 (patch) | |
tree | 6a86772947d1a4a428903c8f7176704ed0ae1125 /src | |
parent | 72837666c311762c16a9746657f2a72676979b11 (diff) | |
download | amber-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.cc | 8 | ||||
-rw-r--r-- | src/vulkan/push_constant.h | 2 |
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 |