blob: 4c77f4fa088faa1317bd66c1708c5cc770168e06 [file] [log] [blame]
/*
* Copyright 2024 Google LLC.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef skgpu_VulkanMemoryAllocatorUtil_DEFINED
#define skgpu_VulkanMemoryAllocatorUtil_DEFINED
#include "include/core/SkRefCnt.h"
#include "include/gpu/GpuTypes.h"
#include "include/private/base/SkAPI.h"
#include "include/private/gpu/vk/SkiaVulkan.h"
#include <optional>
namespace skgpu {
struct VulkanBackendContext;
class VulkanExtensions;
class VulkanMemoryAllocator;
enum class ThreadSafe : bool;
namespace VulkanMemoryAllocators {
// Returns a concrete implementation of a memory allocator. Because this has settings
// which are done at compile time, we cannot really expose this to clients in a meaningful way.
sk_sp<VulkanMemoryAllocator> Make(const skgpu::VulkanBackendContext&,
ThreadSafe,
std::optional<VkDeviceSize> blockSize);
} // namespace VulkanMemoryAllocators
} // namespace skgpu
#endif // skgpu_VulkanMemoryAllocatorUtil_DEFINED