Backend-agnostic compute program. Bind storage buffers then dispatch via Gpgpu::dispatch. Push constants: float[32] (same size as graphics::Shader). 更多...
#include <ComputeShader.h>
Public 成员函数 | |
| ComputeShader ()=default | |
| virtual | ~ComputeShader ()=default |
| ComputeShader (const ComputeShader &)=delete | |
| ComputeShader & | operator= (const ComputeShader &)=delete |
| virtual void | bindBuffer (int binding, GpuBuffer *buffer)=0 |
| Bind a storage buffer to set=0 binding. binding in [0, kMaxBindings). | |
| virtual GpuBuffer * | getBoundBuffer (int binding) const =0 |
| virtual void | setFloat (int index, float value)=0 |
| virtual float | getFloat (int index) const =0 |
| virtual void | clearBindings ()=0 |
| const float * | pushConstantData () const |
静态 Public 属性 | |
| static constexpr int | kMaxBindings = 8 |
| static constexpr int | kMaxFloats = 32 |
| static constexpr uint32_t | kPushConstantBytes = uint32_t(kMaxFloats * sizeof(float)) |
Protected 属性 | |
| std::array< float, kMaxFloats > | push_ {} |
详细描述
Backend-agnostic compute program. Bind storage buffers then dispatch via Gpgpu::dispatch. Push constants: float[32] (same size as graphics::Shader).
在文件 ComputeShader.h 第 15 行定义.
构造及析构函数说明
◆ ComputeShader() [1/2]
|
default |
◆ ~ComputeShader()
|
virtualdefault |
◆ ComputeShader() [2/2]
|
delete |
成员函数说明
◆ bindBuffer()
|
pure virtual |
Bind a storage buffer to set=0 binding. binding in [0, kMaxBindings).
在 eve::gpgpu::VulkanComputeShader , 以及 eve::gpgpu::WebGpuComputeShader 内被实现.
被这些函数引用 eve::gpgpu::ShaderSystem::dispatch().
◆ clearBindings()
|
pure virtual |
◆ getBoundBuffer()
|
pure virtual |
◆ getFloat()
|
pure virtual |
◆ operator=()
|
delete |
◆ pushConstantData()
|
inline |
在文件 ComputeShader.h 第 36 行定义.
引用了 push_.
◆ setFloat()
|
pure virtual |
类成员变量说明
◆ kMaxBindings
|
staticconstexpr |
在文件 ComputeShader.h 第 17 行定义.
被这些函数引用 eve::gpgpu::VulkanComputeShader::bindBuffer(), eve::gpgpu::WebGpuComputeShader::bindBuffer(), eve::gpgpu::VulkanComputeShader::flushDescriptors(), eve::gpgpu::VulkanComputeShader::getBoundBuffer(), eve::gpgpu::WebGpuComputeShader::getBoundBuffer(), eve::gpgpu::vulkanNewShaderFromSpirv(), eve::gpgpu::webgpuDispatch() , 以及 eve::gpgpu::webgpuNewShaderFromWgsl().
◆ kMaxFloats
|
staticconstexpr |
◆ kPushConstantBytes
|
staticconstexpr |
◆ push_
|
protected |
该类的文档由以下文件生成:
- src/modules/gpgpu/ComputeShader.h