Blender V4.5
vk_immediate.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
10
11#pragma once
12
13#include "MEM_guardedalloc.h"
14
17
18#include "vk_buffer.hh"
19#include "vk_data_conversion.hh"
20#include "vk_mem_alloc.h"
23
24namespace blender::gpu {
25
26class VKDevice;
27
28/* Size of internal buffer. */
29constexpr size_t DEFAULT_INTERNAL_BUFFER_SIZE = 4 * 1024 * 1024;
30
31class VKImmediate : public Immediate {
32 private:
33 VKVertexAttributeObject vertex_attributes_;
34
35 VkDeviceSize buffer_offset_ = 0;
36 VkDeviceSize current_subbuffer_len_ = 0;
37
38 std::optional<VKBuffer> active_buffer_;
39
40 public:
41 uchar *begin() override;
42 void end() override;
43
45
46 private:
47 VKBufferWithOffset active_buffer() const;
48 VkDeviceSize buffer_bytes_free();
49
50 VKBuffer &ensure_space(VkDeviceSize bytes_needed, VkDeviceSize offset_alignment);
51};
52
53} // namespace blender::gpu
unsigned char uchar
Read Guarded memory(de)allocation.
uchar * begin() override
friend class VKVertexAttributeObject
constexpr size_t DEFAULT_INTERNAL_BUFFER_SIZE