SleakEngine 1.0.0
C++23 multi-backend game engine
Loading...
Searching...
No Matches
VulkanBuffer.cpp File Reference
#include <vulkan/vulkan.h>
#include <vma/vk_mem_alloc.h>
#include "../../include/private/Graphics/Vulkan/VulkanBuffer.hpp"
#include <Core/Logger.hpp>
#include <cstring>
#include <stdexcept>

Go to the source code of this file.

Namespaces

namespace  Sleak
 Root namespace for everything the engine exposes.
namespace  Sleak::RenderEngine
 Backend-facing rendering layer shared by the four graphics backends.

Macros

#define VMA_DYNAMIC_VULKAN_FUNCTIONS   0
#define VMA_IMPLEMENTATION
#define VMA_STATIC_VULKAN_FUNCTIONS   1

Functions

static VkDeviceSize Sleak::RenderEngine::BucketSize (VkDeviceSize s)
 Rounds a size up to the nearest pool bucket so similar-sized buffers can share slots.
static bool Sleak::RenderEngine::IsRecyclable (VkBufferUsageFlags usage, VkMemoryPropertyFlags props)
 True when a buffer is both device-local and a recyclable usage, the pool's eligibility gate.
static bool Sleak::RenderEngine::UsageIsRecyclable (VkBufferUsageFlags usage)
 True for vertex/index usages, the only kinds worth pooling for reuse.

Variables

static uint32_t Sleak::RenderEngine::g_idleFrames = 0
static uint64_t Sleak::RenderEngine::g_lastPoolWarnFrame = UINT64_MAX
static uint64_t Sleak::RenderEngine::g_lastReclaimWarnFrame = UINT64_MAX
static uint32_t Sleak::RenderEngine::g_maxFramesInFlight = 3
static constexpr uint32_t Sleak::RenderEngine::kIdleFramesBeforeTrim = 120
static constexpr size_t Sleak::RenderEngine::kIdleTrimPerFrame = 8
static constexpr size_t Sleak::RenderEngine::kMaxDeletesPerFrame = 64
static constexpr VkDeviceSize Sleak::RenderEngine::kPoolBucket = 64 * 1024

Macro Definition Documentation

◆ VMA_DYNAMIC_VULKAN_FUNCTIONS

#define VMA_DYNAMIC_VULKAN_FUNCTIONS   0

Definition at line 4 of file VulkanBuffer.cpp.

◆ VMA_IMPLEMENTATION

#define VMA_IMPLEMENTATION

Definition at line 5 of file VulkanBuffer.cpp.

◆ VMA_STATIC_VULKAN_FUNCTIONS

#define VMA_STATIC_VULKAN_FUNCTIONS   1

Definition at line 3 of file VulkanBuffer.cpp.