Blender V5.0
blender::gpu::VKStreamingBuffer Class Reference

#include <vk_streaming_buffer.hh>

Public Member Functions

 VKStreamingBuffer (VKBuffer &buffer, VkDeviceSize min_offset_alligment)
 ~VKStreamingBuffer ()
VkDeviceSize update (VKContext &context, const void *data, size_t data_size)
VkBuffer vk_buffer_dst ()

Detailed Description

Streaming buffer to improve performance of GPU_USAGE_STREAM.

GPU_USAGE_STREAM is used for buffers that are uploaded once, and used a few times before being rewritten. This class improves the performance by buffering the data in a single host transfer buffer. This reduces barriers and more rendering can be performed between data transfers.

Definition at line 26 of file vk_streaming_buffer.hh.

Constructor & Destructor Documentation

◆ VKStreamingBuffer()

blender::gpu::VKStreamingBuffer::VKStreamingBuffer ( VKBuffer & buffer,
VkDeviceSize min_offset_alligment )

Definition at line 14 of file vk_streaming_buffer.cc.

◆ ~VKStreamingBuffer()

blender::gpu::VKStreamingBuffer::~VKStreamingBuffer ( )

Definition at line 21 of file vk_streaming_buffer.cc.

Member Function Documentation

◆ update()

VkDeviceSize blender::gpu::VKStreamingBuffer::update ( VKContext & context,
const void * data,
size_t data_size )

Add 'data_size' bytes from 'data' to the streaming buffer. Returns the offset in the device buffer where the data is stored.

Definition at line 26 of file vk_streaming_buffer.cc.

References ceil_to_multiple_ul(), blender::gpu::VKBuffer::create(), data, blender::gpu::VKBuffer::mapped_memory_get(), blender::gpu::render_graph::VKCopyBufferData::region, vk_buffer_dst(), and blender::gpu::VKBuffer::vk_handle().

Referenced by blender::gpu::VKStorageBuffer::update().

◆ vk_buffer_dst()

VkBuffer blender::gpu::VKStreamingBuffer::vk_buffer_dst ( )
inline

Definition at line 54 of file vk_streaming_buffer.hh.

Referenced by update().


The documentation for this class was generated from the following files: