Blender V5.0
vk_streaming_buffer.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2022 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
12#include "vk_common.hh"
13#include "vk_staging_buffer.hh"
14
15namespace blender::gpu {
16class VKBuffer;
17class VKContext;
18
28 std::optional<std::unique_ptr<VKBuffer>> host_buffer_;
31 VkDeviceSize min_offset_alignment_;
33 VkBuffer vk_buffer_dst_;
35 VkDeviceSize vk_buffer_size_;
37 VkDeviceSize offset_ = 0;
42 render_graph::NodeHandle copy_buffer_handle_ = 0;
43
44 public:
45 VKStreamingBuffer(VKBuffer &buffer, VkDeviceSize min_offset_alligment);
47
52 VkDeviceSize update(VKContext &context, const void *data, size_t data_size);
53
54 VkBuffer vk_buffer_dst()
55 {
56 return vk_buffer_dst_;
57 }
58};
59} // namespace blender::gpu
BMesh const char void * data
VKStreamingBuffer(VKBuffer &buffer, VkDeviceSize min_offset_alligment)
VkDeviceSize update(VKContext &context, const void *data, size_t data_size)