diff options
Diffstat (limited to 'src/vulkan/pipeline.h')
-rw-r--r-- | src/vulkan/pipeline.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/vulkan/pipeline.h b/src/vulkan/pipeline.h index 98b0c2a..1f85cb6 100644 --- a/src/vulkan/pipeline.h +++ b/src/vulkan/pipeline.h @@ -27,6 +27,7 @@ #include "src/vulkan/buffer_backed_descriptor.h" #include "src/vulkan/command_buffer.h" #include "src/vulkan/push_constant.h" +#include "src/vulkan/resource.h" namespace amber { @@ -59,6 +60,11 @@ class Pipeline { /// buffer data object and put it into buffer data queue in host. Result ReadbackDescriptorsToHostDataQueue(); + std::unordered_map<Buffer*, std::unique_ptr<Resource>>& + GetDescriptorTransferResources() { + return descriptor_transfer_resources_; + } + void SetEntryPointName(VkShaderStageFlagBits stage, const std::string& entry) { entry_points_[stage] = entry; @@ -115,10 +121,17 @@ class Pipeline { Result CreateDescriptorSetLayouts(); Result CreateDescriptorPools(); Result CreateDescriptorSets(); + /// Adds a buffer used by a descriptor. The added buffers are be stored in + /// |descriptor_buffers_| vector in the order they are added. + Result AddDescriptorBuffer(Buffer* amber_buffer); PipelineType pipeline_type_; std::vector<DescriptorSetInfo> descriptor_set_info_; std::vector<VkPipelineShaderStageCreateInfo> shader_stage_info_; + std::unordered_map<Buffer*, std::unique_ptr<Resource>> + descriptor_transfer_resources_; + /// Buffers used by descriptors (buffer descriptors and image descriptors). + std::vector<Buffer*> descriptor_buffers_; uint32_t fence_timeout_ms_ = 1000; bool descriptor_related_objects_already_created_ = false; |