Blender
V4.5
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_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
38
std::optional<VKBuffer> active_buffer_;
39
40
public
:
41
uchar
*
begin
()
override
;
42
void
end
()
override
;
43
44
friend
class
VKVertexAttributeObject
;
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
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:164
blender::gpu::VKImmediate
Definition
vk_immediate.hh:31
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:44
gpu_immediate_private.hh
gpu_vertex_format_private.hh
blender::gpu
Definition
blf_internal_types.hh:31
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:156
vk_buffer.hh
vk_data_conversion.hh
vk_resource_tracker.hh
vk_vertex_attribute_object.hh
Generated on
for Blender by
doxygen
1.16.1