载入中...
搜索中...
未找到
ComputePass.h
浏览该文件的文档.
1#pragma once
2
3#include "vkbuilder.hpp"
4
5#include <cstdint>
6#include <vector>
7
8namespace eve::graphics::vulkan {
9
18public:
20 ComputePass() = default;
21 ComputePass(const ComputePass &) = delete;
22 ComputePass &operator=(const ComputePass &) = delete;
24 ComputePass(ComputePass &&o) noexcept : device_(o.device_), pipeline_(o.pipeline_) {
25 o.device_ = nullptr;
26 o.pipeline_ = nullptr;
27 }
29 ComputePass &operator=(ComputePass &&o) noexcept;
32
34 bool create(vkb::Device &device, vk::PipelineLayout layout,
35 const std::vector<uint32_t> &spv);
36
38 void record(vk::CommandBuffer cb, uint32_t groupsX, uint32_t groupsY = 1,
39 uint32_t groupsZ = 1) const;
40
42 vk::Pipeline pipeline() const { return pipeline_; }
43
44private:
45 vkb::Device *device_ = nullptr;
46 vk::Pipeline pipeline_ = nullptr;
47};
48
49} // namespace eve::graphics::vulkan
50
std::string layout
vkb::Device & device
Minimal compute pipeline wrapper for in-frame compute sections.
Definition ComputePass.h:17
bool create(vkb::Device &device, vk::PipelineLayout layout, const std::vector< uint32_t > &spv)
Create from embedded SPIR-V words; layout must outlive the pass.
vk::Pipeline pipeline() const
Pipeline.
Definition ComputePass.h:42
ComputePass()=default
Constructs a ComputePass.
ComputePass(const ComputePass &)=delete
ComputePass & operator=(const ComputePass &)=delete
void record(vk::CommandBuffer cb, uint32_t groupsX, uint32_t groupsY=1, uint32_t groupsZ=1) const
Record one dispatch (local size baked into the shader).
ComputePass(ComputePass &&o) noexcept
Constructs a ComputePass.
Definition ComputePass.h:24
~ComputePass()
Releases ComputePass resources.