#include "gpu/vulkan/vulkan_fence_helper.h"
#include "base/functional/bind.h"
#include "base/logging.h"
#include "gpu/vulkan/vulkan_device_queue.h"
#include "gpu/vulkan/vulkan_function_pointers.h"
namespace gpu {
VulkanFenceHelper::FenceHandle::FenceHandle() = default;
VulkanFenceHelper::FenceHandle::FenceHandle(VkFence fence,
uint64_t generation_id)
: … { … }
VulkanFenceHelper::FenceHandle::FenceHandle(const FenceHandle& other) = default;
VulkanFenceHelper::FenceHandle& VulkanFenceHelper::FenceHandle::operator=(
const FenceHandle& other) = default;
VulkanFenceHelper::VulkanFenceHelper(VulkanDeviceQueue* device_queue)
: … { … }
VulkanFenceHelper::~VulkanFenceHelper() { … }
void VulkanFenceHelper::Destroy() { … }
VkResult VulkanFenceHelper::GetFence(VkFence* fence) { … }
VulkanFenceHelper::FenceHandle VulkanFenceHelper::EnqueueFence(VkFence fence) { … }
bool VulkanFenceHelper::Wait(FenceHandle handle,
uint64_t timeout_in_nanoseconds) { … }
bool VulkanFenceHelper::HasPassed(FenceHandle handle) { … }
void VulkanFenceHelper::EnqueueCleanupTaskForSubmittedWork(CleanupTask task) { … }
void VulkanFenceHelper::ProcessCleanupTasks(uint64_t retired_generation_id) { … }
VulkanFenceHelper::FenceHandle VulkanFenceHelper::GenerateCleanupFence() { … }
base::OnceClosure VulkanFenceHelper::CreateExternalCallback() { … }
void VulkanFenceHelper::EnqueueSemaphoreCleanupForSubmittedWork(
VkSemaphore semaphore) { … }
void VulkanFenceHelper::EnqueueSemaphoresCleanupForSubmittedWork(
std::vector<VkSemaphore> semaphores) { … }
void VulkanFenceHelper::EnqueueImageCleanupForSubmittedWork(
VkImage image,
VkDeviceMemory memory) { … }
void VulkanFenceHelper::EnqueueBufferCleanupForSubmittedWork(
VkBuffer buffer,
VmaAllocation allocation) { … }
void VulkanFenceHelper::PerformImmediateCleanup() { … }
VulkanFenceHelper::TasksForFence::TasksForFence(FenceHandle handle,
std::vector<CleanupTask> tasks)
: … { … }
VulkanFenceHelper::TasksForFence::TasksForFence(uint64_t generation_id,
std::vector<CleanupTask> tasks)
: … { … }
VulkanFenceHelper::TasksForFence::~TasksForFence() = default;
VulkanFenceHelper::TasksForFence::TasksForFence(TasksForFence&& other) =
default;
}