Nebula
Toggle main menu visibility
Loading...
Searching...
No Matches
vkbuffer.h
Go to the documentation of this file.
1
#pragma once
2
//------------------------------------------------------------------------------
9
//------------------------------------------------------------------------------
10
#include "
ids/idallocator.h
"
11
#include "
coregraphics/config.h
"
12
#include "
coregraphics/buffer.h
"
13
#include "
coregraphics/memory.h
"
14
15
namespace
Vulkan
16
{
17
18
struct
VkBufferLoadInfo
19
{
20
VkDevice
dev
;
21
CoreGraphics::Alloc
mem
;
22
CoreGraphics::BufferAccessMode
mode
;
23
uint64_t
size
;
24
uint64_t
elementSize
;
25
uint64_t
byteSize
;
26
Ids::Id32
sparseExtension
;
27
};
28
29
struct
VkBufferRuntimeInfo
30
{
31
VkBuffer
buf
;
32
CoreGraphics::BufferUsage
usageFlags
;
33
};
34
35
struct
VkBufferMapInfo
36
{
37
void
*
mappedMemory
;
38
};
39
40
enum
41
{
42
Buffer_LoadInfo
,
43
Buffer_RuntimeInfo
,
44
Buffer_MapInfo
,
45
};
46
47
48
typedef
Ids::IdAllocatorSafe
<
49
0xFFFF
50
, VkBufferLoadInfo
51
, VkBufferRuntimeInfo
52
, VkBufferMapInfo
53
>
VkBufferAllocator
;
54
extern
VkBufferAllocator
bufferAllocator
;
55
56
57
struct
BufferSparsePageTable
58
{
59
Util::Array<CoreGraphics::BufferSparsePage>
pages
;
60
Util::Array<VkSparseMemoryBind>
pageBindings
;
61
uint32_t
bindCounts
;
62
VkMemoryRequirements
memoryReqs
;
63
};
64
65
enum
66
{
67
BufferExtension_SparsePageTable
,
68
BufferExtension_SparsePendingBinds
,
69
};
70
typedef
Ids::IdAllocatorSafe
<
71
0xFF
72
, BufferSparsePageTable
73
,
Util::Array<VkSparseMemoryBind>
74
>
VkBufferSparseExtensionAllocator
;
75
extern
VkBufferSparseExtensionAllocator
bufferSparseExtensionAllocator
;
76
78
VkBuffer
BufferGetVk
(
const
CoreGraphics::BufferId
id
);
80
VkDeviceMemory
BufferGetVkMemory
(
const
CoreGraphics::BufferId
id
);
82
VkDevice
BufferGetVkDevice
(
const
CoreGraphics::BufferId
id
);
83
84
85
}
// namespace Vulkan
buffer.h
Ids::IdAllocatorSafe
Definition
idallocator.h:105
Util::Array
Nebula's dynamic array class.
Definition
array.h:61
idallocator.h
CoreGraphics::BufferUsage
BufferUsage
Definition
buffer.h:35
CoreGraphics::BufferAccessMode
BufferAccessMode
Definition
buffer.h:27
Ids::Id32
uint32_t Id32
Definition
id.h:138
Vulkan
Vulkan implementation of GPU acceleration structure.
Definition
vkaccelerationstructure.cc:15
Vulkan::VkBufferAllocator
Ids::IdAllocatorSafe< 0xFFFF, VkBufferLoadInfo, VkBufferRuntimeInfo, VkBufferMapInfo > VkBufferAllocator
Definition
vkbuffer.h:53
Vulkan::VkBufferSparseExtensionAllocator
Ids::IdAllocatorSafe< 0xFF, BufferSparsePageTable, Util::Array< VkSparseMemoryBind > > VkBufferSparseExtensionAllocator
Definition
vkbuffer.h:74
Vulkan::BufferGetVk
VkBuffer BufferGetVk(const CoreGraphics::BufferId id)
get buffer object
Definition
vkbuffer.cc:18
Vulkan::BufferExtension_SparsePendingBinds
@ BufferExtension_SparsePendingBinds
Definition
vkbuffer.h:68
Vulkan::BufferExtension_SparsePageTable
@ BufferExtension_SparsePageTable
Definition
vkbuffer.h:67
Vulkan::bufferAllocator
VkBufferAllocator bufferAllocator
Definition
vkbuffer.cc:11
Vulkan::BufferGetVkDevice
VkDevice BufferGetVkDevice(const CoreGraphics::BufferId id)
get buffer device
Definition
vkbuffer.cc:36
Vulkan::bufferSparseExtensionAllocator
VkBufferSparseExtensionAllocator bufferSparseExtensionAllocator
Definition
vkbuffer.cc:12
Vulkan::BufferGetVkMemory
VkDeviceMemory BufferGetVkMemory(const CoreGraphics::BufferId id)
get buffer memory
Definition
vkbuffer.cc:27
Vulkan::Buffer_MapInfo
@ Buffer_MapInfo
Definition
vkbuffer.h:44
Vulkan::Buffer_RuntimeInfo
@ Buffer_RuntimeInfo
Definition
vkbuffer.h:43
Vulkan::Buffer_LoadInfo
@ Buffer_LoadInfo
Definition
vkbuffer.h:42
config.h
Compile time configuration options for the CoreGraphics subsystem.
memory.h
Graphics memory interface.
CoreGraphics::Alloc
Definition
memory.h:41
CoreGraphics::BufferId
Definition
buffer.h:23
Vulkan::BufferSparsePageTable
Definition
vkbuffer.h:58
Vulkan::BufferSparsePageTable::pages
Util::Array< CoreGraphics::BufferSparsePage > pages
Definition
vkbuffer.h:59
Vulkan::BufferSparsePageTable::pageBindings
Util::Array< VkSparseMemoryBind > pageBindings
Definition
vkbuffer.h:60
Vulkan::BufferSparsePageTable::memoryReqs
VkMemoryRequirements memoryReqs
Definition
vkbuffer.h:62
Vulkan::BufferSparsePageTable::bindCounts
uint32_t bindCounts
Definition
vkbuffer.h:61
Vulkan::VkBufferLoadInfo
Definition
vkbuffer.h:19
Vulkan::VkBufferLoadInfo::size
uint64_t size
Definition
vkbuffer.h:23
Vulkan::VkBufferLoadInfo::dev
VkDevice dev
Definition
vkbuffer.h:20
Vulkan::VkBufferLoadInfo::mem
CoreGraphics::Alloc mem
Definition
vkbuffer.h:21
Vulkan::VkBufferLoadInfo::mode
CoreGraphics::BufferAccessMode mode
Definition
vkbuffer.h:22
Vulkan::VkBufferLoadInfo::sparseExtension
Ids::Id32 sparseExtension
Definition
vkbuffer.h:26
Vulkan::VkBufferLoadInfo::elementSize
uint64_t elementSize
Definition
vkbuffer.h:24
Vulkan::VkBufferLoadInfo::byteSize
uint64_t byteSize
Definition
vkbuffer.h:25
Vulkan::VkBufferMapInfo
Definition
vkbuffer.h:36
Vulkan::VkBufferMapInfo::mappedMemory
void * mappedMemory
Definition
vkbuffer.h:37
Vulkan::VkBufferRuntimeInfo
Definition
vkbuffer.h:30
Vulkan::VkBufferRuntimeInfo::usageFlags
CoreGraphics::BufferUsage usageFlags
Definition
vkbuffer.h:32
Vulkan::VkBufferRuntimeInfo::buf
VkBuffer buf
Definition
vkbuffer.h:31
code
render
coregraphics
vk
vkbuffer.h
Generated on
for Nebula. Dark theme by
Tilen Majerle
. All rights reserved.