Blender
V5.0
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
10
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_vertex_attribute_object.hh
"
22
23
namespace
blender::gpu
{
24
25
class
VKDevice
;
26
27
/* Size of internal buffer. */
28
constexpr
size_t
DEFAULT_INTERNAL_BUFFER_SIZE
= 4 * 1024 * 1024;
29
30
class
VKImmediate
:
public
Immediate
{
31
private
:
32
VKVertexAttributeObject
vertex_attributes_;
33
34
VkDeviceSize buffer_offset_ = 0;
35
VkDeviceSize current_subbuffer_len_ = 0;
36
37
std::optional<VKBuffer> active_buffer_;
38
39
public
:
40
uchar
*
begin
()
override
;
41
void
end
()
override
;
42
43
friend
class
VKVertexAttributeObject
;
44
45
private
:
46
VKBufferWithOffset
active_buffer()
const
;
47
VkDeviceSize buffer_bytes_free();
48
49
VKBuffer
&ensure_space(VkDeviceSize bytes_needed, VkDeviceSize offset_alignment);
50
};
51
52
}
// namespace blender::gpu
uchar
unsigned char uchar
Definition
BLI_sys_types.h:67
MEM_guardedalloc.h
Read Guarded memory(de)allocation.
blender::gpu::Immediate::Immediate
Immediate()=default
blender::gpu::VKBuffer
Definition
vk_buffer.hh:23
blender::gpu::VKDevice
Definition
vk_device.hh:135
blender::gpu::VKImmediate
Definition
vk_immediate.hh:30
blender::gpu::VKImmediate::begin
uchar * begin() override
Definition
vk_immediate.cc:26
blender::gpu::VKImmediate::end
void end() override
Definition
vk_immediate.cc:44
blender::gpu::VKImmediate::VKVertexAttributeObject
friend class VKVertexAttributeObject
Definition
vk_immediate.hh:43
gpu_immediate_private.hh
gpu_vertex_format_private.hh
blender::gpu
Definition
blf_internal_types.hh:32
blender::gpu::DEFAULT_INTERNAL_BUFFER_SIZE
constexpr size_t DEFAULT_INTERNAL_BUFFER_SIZE
Definition
vk_immediate.hh:28
blender::gpu::VKBufferWithOffset
Definition
vk_buffer.hh:155
vk_buffer.hh
vk_data_conversion.hh
vk_vertex_attribute_object.hh
Generated on
for Blender by
doxygen
1.16.1