Vulkan 计算缓冲区实现(storage/vertex buffer + device memory)。 更多...
#include <VulkanGpuBuffer.h>
Public 成员函数 | |
| ~VulkanGpuBuffer () override | |
| Releases VulkanGpuBuffer resources. | |
| int | getSize () const override |
| 缓冲区字节数 / 用途。 | |
| std::string | getUsage () const override |
| Returns the usage. | |
| void | writeData (data::ByteData *data, int dstOffset=0) override |
| 读写数据(ByteData / 浮点 / 原始字节)。 | |
| data::ByteData * | readData (int srcOffset=0, int size=-1) override |
| Reads data. | |
| void | writeFloat32 (int floatIndex, float value) override |
| Writes float 32. | |
| float | readFloat32 (int floatIndex) override |
| Reads float 32. | |
| void | fillFloat32 (float value) override |
| Fill float 32. | |
| void | writeFloat32s (const float *data, int count, int startIndex=0) override |
| Writes float 32 s. | |
| void | readFloat32s (float *out, int count, int startIndex=0) const override |
| Reads float 32 s. | |
| void | uploadBytes (const void *src, uint64_t nbytes, uint64_t dstOffset=0) override |
| Uploads bytes. | |
| void | downloadBytes (void *dst, uint64_t nbytes, uint64_t srcOffset=0) const override |
| Downloads bytes. | |
| GpuResidentBufferView | residentView () const override |
| Resident view. | |
Public 成员函数 继承自 eve::gpgpu::GpuBuffer | |
| GpuBuffer ()=default | |
| Constructs a GpuBuffer. | |
| virtual | ~GpuBuffer ()=default |
| Releases GpuBuffer resources. | |
| GpuBuffer (const GpuBuffer &)=delete | |
| GpuBuffer & | operator= (const GpuBuffer &)=delete |
Public 属性 | |
| vkb::Device * | device_ = nullptr |
| vk::Buffer | buffer_ {} |
| vk::DeviceMemory | memory_ {} |
| vk::DeviceSize | size_ = 0 |
| std::string | usage_ = "storage" |
| bool | hostVisible_ = false |
详细描述
Vulkan 计算缓冲区实现(storage/vertex buffer + device memory)。
在文件 VulkanGpuBuffer.h 第 11 行定义.
构造及析构函数说明
◆ ~VulkanGpuBuffer()
|
override |
Releases VulkanGpuBuffer resources.
在文件 VulkanGpuBuffer.cpp 第 25 行定义.
成员函数说明
◆ downloadBytes()
|
overridevirtual |
Downloads bytes.
在文件 VulkanGpuBuffer.cpp 第 88 行定义.
引用了 eve::gpgpu::computeCommandPool(), eve::gpgpu::computeQueue(), ptr , 以及 eve::gpgpu::requireVulkanGraphics().
◆ fillFloat32()
|
overridevirtual |
◆ getSize()
|
inlineoverridevirtual |
◆ getUsage()
|
inlineoverridevirtual |
◆ readData()
|
overridevirtual |
◆ readFloat32()
|
overridevirtual |
◆ readFloat32s()
|
overridevirtual |
◆ residentView()
|
overridevirtual |
◆ uploadBytes()
|
overridevirtual |
Uploads bytes.
在文件 VulkanGpuBuffer.cpp 第 48 行定义.
引用了 buffer_, eve::gpgpu::computeCommandPool(), eve::gpgpu::computeQueue(), device_, hostVisible_, memory_, ptr, eve::gpgpu::requireVulkanGraphics() , 以及 size_.
◆ writeData()
|
overridevirtual |
◆ writeFloat32()
|
overridevirtual |
◆ writeFloat32s()
|
overridevirtual |
类成员变量说明
◆ buffer_
| vk::Buffer eve::gpgpu::VulkanGpuBuffer::buffer_ {} |
在文件 VulkanGpuBuffer.h 第 43 行定义.
被这些函数引用 eve::gpgpu::VulkanComputeShader::flushDescriptors(), residentView(), uploadBytes() , 以及 ~VulkanGpuBuffer().
◆ device_
| vkb::Device* eve::gpgpu::VulkanGpuBuffer::device_ = nullptr |
在文件 VulkanGpuBuffer.h 第 42 行定义.
被这些函数引用 uploadBytes() , 以及 ~VulkanGpuBuffer().
◆ hostVisible_
| bool eve::gpgpu::VulkanGpuBuffer::hostVisible_ = false |
在文件 VulkanGpuBuffer.h 第 50 行定义.
被这些函数引用 uploadBytes().
◆ memory_
| vk::DeviceMemory eve::gpgpu::VulkanGpuBuffer::memory_ {} |
在文件 VulkanGpuBuffer.h 第 44 行定义.
被这些函数引用 uploadBytes() , 以及 ~VulkanGpuBuffer().
◆ size_
| vk::DeviceSize eve::gpgpu::VulkanGpuBuffer::size_ = 0 |
在文件 VulkanGpuBuffer.h 第 48 行定义.
被这些函数引用 getSize(), residentView() , 以及 uploadBytes().
◆ usage_
| std::string eve::gpgpu::VulkanGpuBuffer::usage_ = "storage" |
在文件 VulkanGpuBuffer.h 第 49 行定义.
被这些函数引用 getUsage().
该类的文档由以下文件生成:
- src/modules/gpgpu/vulkan/VulkanGpuBuffer.h
- src/modules/gpgpu/vulkan/VulkanGpuBuffer.cpp
Public 成员函数 继承自