载入中...
搜索中...
未找到
eve::gpgpu::ComputeShader类 参考abstract

Backend-agnostic compute program. Bind storage buffers then dispatch via Gpgpu::dispatch. Push constants: float[32] (same size as graphics::Shader). 更多...

#include <ComputeShader.h>

类 eve::gpgpu::ComputeShader 继承关系图:
eve::gpgpu::VulkanComputeShader eve::gpgpu::WebGpuComputeShader

Public 成员函数

 ComputeShader ()=default
 
virtual ~ComputeShader ()=default
 
 ComputeShader (const ComputeShader &)=delete
 
ComputeShaderoperator= (const ComputeShader &)=delete
 
virtual void bindBuffer (int binding, GpuBuffer *buffer)=0
 Bind a storage buffer to set=0 binding. binding in [0, kMaxBindings).
 
virtual GpuBuffergetBoundBuffer (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, kMaxFloatspush_ {}
 

详细描述

Backend-agnostic compute program. Bind storage buffers then dispatch via Gpgpu::dispatch. Push constants: float[32] (same size as graphics::Shader).

在文件 ComputeShader.h15 行定义.

构造及析构函数说明

◆ ComputeShader() [1/2]

eve::gpgpu::ComputeShader::ComputeShader ( )
default

◆ ~ComputeShader()

virtual eve::gpgpu::ComputeShader::~ComputeShader ( )
virtualdefault

◆ ComputeShader() [2/2]

eve::gpgpu::ComputeShader::ComputeShader ( const ComputeShader )
delete

成员函数说明

◆ bindBuffer()

virtual void eve::gpgpu::ComputeShader::bindBuffer ( int  binding,
GpuBuffer buffer 
)
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()

virtual void eve::gpgpu::ComputeShader::clearBindings ( )
pure virtual

◆ getBoundBuffer()

virtual GpuBuffer * eve::gpgpu::ComputeShader::getBoundBuffer ( int  binding) const
pure virtual

◆ getFloat()

virtual float eve::gpgpu::ComputeShader::getFloat ( int  index) const
pure virtual

◆ operator=()

ComputeShader & eve::gpgpu::ComputeShader::operator= ( const ComputeShader )
delete

◆ pushConstantData()

const float * eve::gpgpu::ComputeShader::pushConstantData ( ) const
inline

在文件 ComputeShader.h36 行定义.

引用了 push_.

◆ setFloat()

virtual void eve::gpgpu::ComputeShader::setFloat ( int  index,
float  value 
)
pure virtual

类成员变量说明

◆ kMaxBindings

◆ kMaxFloats

constexpr int eve::gpgpu::ComputeShader::kMaxFloats = 32
staticconstexpr

◆ kPushConstantBytes

constexpr uint32_t eve::gpgpu::ComputeShader::kPushConstantBytes = uint32_t(kMaxFloats * sizeof(float))
staticconstexpr

◆ push_


该类的文档由以下文件生成: