载入中...
搜索中...
未找到
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
 Constructs a GpuBuffer.
 
virtual ~GpuBuffer ()=default
 Releases GpuBuffer resources.
 
 GpuBuffer (const GpuBuffer &)=delete
 
GpuBuffer & operator= (const GpuBuffer &)=delete
 
virtual int getSize () const =0
 Byte length of the owned buffer.
 
virtual std::string getUsage () const =0
 Returns the usage.
 
virtual void writeData (data::ByteData *data, int dstOffset=0)=0
 Writes data.
 
virtual data::ByteData * readData (int srcOffset=0, int size=-1)=0
 Reads data.
 
virtual void writeFloat32 (int floatIndex, float value)=0
 Writes float 32.
 
virtual float readFloat32 (int floatIndex)=0
 Reads float 32.
 
virtual void fillFloat32 (float value)=0
 Fill float 32.
 
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
 Reads float 32 s.
 
virtual void uploadBytes (const void *src, uint64_t nbytes, uint64_t dstOffset=0)=0
 Uploads bytes.
 
virtual void downloadBytes (void *dst, uint64_t nbytes, uint64_t srcOffset=0) const =0
 Downloads bytes.
 
virtual GpuResidentBufferView residentView () const
 Return a transient non-owning native view for same-device rendering. Unsupported/test buffers return an Unknown view. The buffer owns the handle and must outlive every frame command that consumes the returned view.
 

详细描述

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

在文件 GpuBuffer.h 第 18 行定义.

构造及析构函数说明

◆ GpuBuffer() [1/2]

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

Constructs a GpuBuffer.

◆ ~GpuBuffer()

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

Releases GpuBuffer resources.

◆ 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

Downloads bytes.

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

◆ fillFloat32()

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

Fill float 32.

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

被这些函数引用 eve::virtualgeometry::vgUpdate().

◆ getSize()

◆ getUsage()

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

Returns the usage.

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

◆ 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

Reads data.

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

◆ readFloat32()

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

Reads float 32.

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

◆ readFloat32s()

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

◆ residentView()

virtual GpuResidentBufferView eve::gpgpu::GpuBuffer::residentView ( ) const
inlinevirtual

Return a transient non-owning native view for same-device rendering. Unsupported/test buffers return an Unknown view. The buffer owns the handle and must outlive every frame command that consumes the returned view.

被 eve::gpgpu::VulkanGpuBuffer , 以及 eve::gpgpu::WebGpuGpuBuffer 重载.

在文件 GpuBuffer.h 第 60 行定义.

被这些函数引用 eve::fluids::FluidSurfaceRenderer::copyToTexture().

◆ uploadBytes()

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

Uploads bytes.

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

◆ writeData()

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

Writes data.

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

◆ writeFloat32()

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

Writes float 32.

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

◆ 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::packScriptEntityFloatsRange(), eve::gpgpu::ShaderSystem::upload() , 以及 eve::gpgpu::ShaderSystem::uploadRange().


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