载入中...
搜索中...
未找到
ShaderSystem.cpp
浏览该文件的文档.
Definition Exception.h:14
Backend-agnostic compute program. Bind storage buffers then dispatch via Gpgpu::dispatch....
Definition ComputeShader.h:15
virtual void setFloat(int index, float value)=0
virtual float getFloat(int index) const =0
virtual void bindBuffer(int binding, GpuBuffer *buffer)=0
Bind a storage buffer to set=0 binding. binding in [0, kMaxBindings).
GPGPU module — compute shaders + storage buffers via the active Graphics backend. Uses the graphics q...
Definition Gpgpu.h:20
ComputeShader * newShader(const std::string &source)
Compile compute source for the active backend (Vulkan: GLSL via glslc).
Definition Gpgpu.cpp:48
void dispatch(ComputeShader *shader, int groupsX, int groupsY=1, int groupsZ=1)
Record + submit a compute dispatch and wait for completion (sync). groups*: workgroup counts (not thr...
Definition Gpgpu.cpp:116
GpuBuffer * newBuffer(int byteSize, const std::string &usage="storage")
Allocate a GPU buffer. usage: "storage" (SSBO, device-local) | "staging" (host-visible transfer).
Definition Gpgpu.cpp:92
Backend-agnostic GPU buffer for compute (storage) or CPU staging transfers. Squirrel-owned; derived c...
Definition GpuBuffer.h:16
virtual void writeFloat32s(const float *data, int count, int startIndex=0)=0
Bulk float upload/download (one transfer). startIndex is in floats.
virtual int getSize() const =0
virtual void readFloat32s(float *out, int count, int startIndex=0) const =0
GpuBuffer * getBuffer(int binding) const
Definition ShaderSystem.cpp:61
void upload(int binding, const float *data, int floatCount)
Definition ShaderSystem.cpp:66
GpuBuffer * ensureBuffer(int binding, int floatCount)
Definition ShaderSystem.cpp:44
void dispatch(int entityCount, float dt=0.f)
Definition ShaderSystem.cpp:100
static constexpr int kDefaultLocalSize
Definition ShaderSystem.h:33
void download(int binding, float *out, int floatCount) const
Definition ShaderSystem.cpp:72
void setFloat(int index, float value)
Definition ShaderSystem.cpp:90
void setShaderSource(const std::string &glsl)
Definition ShaderSystem.cpp:23
void setLocalSize(int localSize)
Definition ShaderSystem.cpp:40
void setShader(ComputeShader *shader, bool takeOwnership=false)
Definition ShaderSystem.cpp:31
Definition ComputeShader.cpp:3