载入中...
搜索中...
未找到
Sequence.h
浏览该文件的文档.
1#pragma once
2
3#include <cstdint>
4
5namespace eve::gpgpu {
6
7class ComputeShader;
8class GpuBuffer;
9
32class Sequence {
33public:
34 Sequence();
35 ~Sequence();
36
37 Sequence(const Sequence &) = delete;
38 Sequence &operator=(const Sequence &) = delete;
39
41 bool isAvailable() const;
42
44 void begin();
45
51 void recordUpload(GpuBuffer *dst, const void *src, uint64_t nbytes,
52 uint64_t dstOffset = 0);
53
58 void recordDownload(GpuBuffer *src, GpuBuffer *staging, uint64_t nbytes,
59 uint64_t srcOffset = 0);
60
62 void recordDispatch(ComputeShader *shader, int groupsX, int groupsY = 1,
63 int groupsZ = 1);
64
66 void submit();
67
68private:
69 struct Impl;
70 Impl *impl_ = nullptr;
71};
72
73} // namespace eve::gpgpu
Shader * shader
Backend-agnostic compute program. Bind storage buffers then dispatch via Gpgpu::dispatch....
Backend-agnostic GPU buffer for compute (storage) or CPU staging transfers. Squirrel-owned; derived c...
Definition GpuBuffer.h:16
Sequence(const Sequence &)=delete
Sequence & operator=(const Sequence &)=delete
void recordUpload(GpuBuffer *dst, const void *src, uint64_t nbytes, uint64_t dstOffset=0)
Definition Sequence.cpp:66
void recordDownload(GpuBuffer *src, GpuBuffer *staging, uint64_t nbytes, uint64_t srcOffset=0)
Definition Sequence.cpp:71
void recordDispatch(ComputeShader *shader, int groupsX, int groupsY=1, int groupsZ=1)
Definition Sequence.cpp:76
bool isAvailable() const
Definition Sequence.cpp:55