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

Backend-agnostic GPU buffer for compute (storage) or CPU staging transfers. Squirrel-owned; derived class destroys GPU resources in destructor. 更多...

#include <GpuBuffer.h>

类 eve::gpgpu::GpuBuffer 继承关系图:
eve::gpgpu::VulkanGpuBuffer eve::gpgpu::WebGpuGpuBuffer

Public 成员函数

 GpuBuffer ()=default
 
virtual ~GpuBuffer ()=default
 
 GpuBuffer (const GpuBuffer &)=delete
 
GpuBufferoperator= (const GpuBuffer &)=delete
 
virtual int getSize () const =0
 
virtual std::string getUsage () const =0
 
virtual void writeData (data::ByteData *data, int dstOffset=0)=0
 
virtual data::ByteDatareadData (int srcOffset=0, int size=-1)=0
 
virtual void writeFloat32 (int floatIndex, float value)=0
 
virtual float readFloat32 (int floatIndex)=0
 
virtual void fillFloat32 (float value)=0
 
virtual void writeFloat32s (const float *data, int count, int startIndex=0)=0
 Bulk float upload/download (one transfer). startIndex is in floats.
 
virtual void readFloat32s (float *out, int count, int startIndex=0) const =0
 
virtual void uploadBytes (const void *src, uint64_t nbytes, uint64_t dstOffset=0)=0
 
virtual void downloadBytes (void *dst, uint64_t nbytes, uint64_t srcOffset=0) const =0
 

详细描述

Backend-agnostic GPU buffer for compute (storage) or CPU staging transfers. Squirrel-owned; derived class destroys GPU resources in destructor.

在文件 GpuBuffer.h16 行定义.

构造及析构函数说明

◆ GpuBuffer() [1/2]

eve::gpgpu::GpuBuffer::GpuBuffer ( )
default

◆ ~GpuBuffer()

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

◆ GpuBuffer() [2/2]

eve::gpgpu::GpuBuffer::GpuBuffer ( const GpuBuffer )
delete

成员函数说明

◆ downloadBytes()

virtual void eve::gpgpu::GpuBuffer::downloadBytes ( void *  dst,
uint64_t  nbytes,
uint64_t  srcOffset = 0 
) const
pure virtual

◆ fillFloat32()

virtual void eve::gpgpu::GpuBuffer::fillFloat32 ( float  value)
pure virtual

◆ getSize()

virtual int eve::gpgpu::GpuBuffer::getSize ( ) const
pure virtual

◆ getUsage()

virtual std::string eve::gpgpu::GpuBuffer::getUsage ( ) const
pure virtual

◆ operator=()

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

◆ readData()

virtual data::ByteData * eve::gpgpu::GpuBuffer::readData ( int  srcOffset = 0,
int  size = -1 
)
pure virtual

◆ readFloat32()

virtual float eve::gpgpu::GpuBuffer::readFloat32 ( int  floatIndex)
pure virtual

◆ readFloat32s()

virtual void eve::gpgpu::GpuBuffer::readFloat32s ( float *  out,
int  count,
int  startIndex = 0 
) const
pure virtual

◆ uploadBytes()

virtual void eve::gpgpu::GpuBuffer::uploadBytes ( const void *  src,
uint64_t  nbytes,
uint64_t  dstOffset = 0 
)
pure virtual

◆ writeData()

virtual void eve::gpgpu::GpuBuffer::writeData ( data::ByteData data,
int  dstOffset = 0 
)
pure virtual

◆ writeFloat32()

virtual void eve::gpgpu::GpuBuffer::writeFloat32 ( int  floatIndex,
float  value 
)
pure virtual

◆ writeFloat32s()

virtual void eve::gpgpu::GpuBuffer::writeFloat32s ( const float *  data,
int  count,
int  startIndex = 0 
)
pure virtual

Bulk float upload/download (one transfer). startIndex is in floats.

eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 内被实现.

被这些函数引用 eve::gpgpu::packScriptEntityFloats() , 以及 eve::gpgpu::ShaderSystem::upload().


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