Blender
V4.3
source
blender
gpu
vulkan
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
11
#pragma once
12
13
#include "
MEM_guardedalloc.h
"
14
15
#include "
gpu_immediate_private.hh
"
16
#include "
gpu_vertex_format_private.hh
"
17
18
#include "
vk_buffer.hh
"
19
#include "
vk_data_conversion.hh
"
20
#include "vk_mem_alloc.h"
21
#include "
vk_resource_tracker.hh
"
22
#include "
vk_vertex_attribute_object.hh
"
23
24
namespace
blender::gpu
{
25
26
class
VKDevice;
27
28
/* Size of internal buffer. */
29
constexpr
size_t
DEFAULT_INTERNAL_BUFFER_SIZE
= 4 * 1024 * 1024;
30
31
class
VKImmediate
:
public
Immediate
{
32
private
:
33
VKVertexAttributeObject
vertex_attributes_;
34
35
VkDeviceSize buffer_offset_ = 0;
36
VkDeviceSize current_subbuffer_len_ = 0;
37
VertexFormatConverter
vertex_format_converter;
38
39
Vector<std::unique_ptr<VKBuffer>
> active_buffers_;
40
Vector<std::unique_ptr<VKBuffer>
> recycling_buffers_;
41
42
public
:
43
VKImmediate
();
44
virtual
~VKImmediate
();
45
void
deinit
(
VKDevice
&device);
46
47
void
reset
();
48
49
uchar
*
begin
()
override
;
50
void
end
()
override
;
51
52
friend
class
VKVertexAttributeObject
;
53
54
private
:
55
VKBufferWithOffset
active_buffer()
const
;
56
VkDeviceSize buffer_bytes_free();
57
58
VKBuffer
&ensure_space(
size_t
bytes_needed);
59
};
60
61
}
// namespace blender::gpu
uchar
unsigned char uchar
Definition
BLI_sys_types.h:71
MEM_guardedalloc.h
Read Guarded memory(de)allocation.
blender::Vector
Definition
BLI_vector.hh:65
blender::gpu::Immediate
Definition
gpu_immediate_private.hh:22
blender::gpu::VKBuffer
Definition
vk_buffer.hh:23
blender::gpu::VKDevice
Definition
vk_device.hh:125
blender::gpu::VKImmediate
Definition
vk_immediate.hh:31
blender::gpu::VKImmediate::begin
uchar * begin() override
Definition
vk_immediate.cc:47
blender::gpu::VKImmediate::VKImmediate
VKImmediate()
Definition
vk_immediate.cc:24
blender::gpu::VKImmediate::reset
void reset()
Definition
vk_immediate.cc:142
blender::gpu::VKImmediate::~VKImmediate
virtual ~VKImmediate()
Definition
vk_immediate.cc:25
blender::gpu::VKImmediate::end
void end() override
Definition
vk_immediate.cc:60
blender::gpu::VKImmediate::deinit
void deinit(VKDevice &device)
Definition
vk_immediate.cc:33
blender::gpu::VKVertexAttributeObject
Definition
vk_vertex_attribute_object.hh:31
gpu_immediate_private.hh
gpu_vertex_format_private.hh
blender::gpu
Definition
blf_internal_types.hh:23
blender::gpu::DEFAULT_INTERNAL_BUFFER_SIZE
constexpr size_t DEFAULT_INTERNAL_BUFFER_SIZE
Definition
vk_immediate.hh:29
blender::gpu::VKBufferWithOffset
Definition
vk_buffer.hh:97
blender::gpu::VertexFormatConverter
Definition
vk_data_conversion.hh:100
vk_buffer.hh
vk_data_conversion.hh
vk_resource_tracker.hh
vk_vertex_attribute_object.hh
Generated on Thu Feb 6 2025 07:36:39 for Blender by
doxygen
1.11.0