vk_resource_manager: Add VKResource interface

VKResource is an interface that gets signaled by a fence when it is free
to be reused.
master
ReinUsesLisp 2019-02-14 12:52:46 +07:00
parent fcc3aa0bbf
commit 33a4cebc22
3 changed files with 43 additions and 1 deletions

@ -105,7 +105,9 @@ if (ENABLE_VULKAN)
target_sources(video_core PRIVATE
renderer_vulkan/declarations.h
renderer_vulkan/vk_device.cpp
renderer_vulkan/vk_device.h)
renderer_vulkan/vk_device.h
renderer_vulkan/vk_resource_manager.cpp
renderer_vulkan/vk_resource_manager.h)
target_include_directories(video_core PRIVATE ../../externals/Vulkan-Headers/include)
target_compile_definitions(video_core PRIVATE HAS_VULKAN)

@ -0,0 +1,14 @@
// Copyright 2018 yuzu Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#include "video_core/renderer_vulkan/declarations.h"
#include "video_core/renderer_vulkan/vk_resource_manager.h"
namespace Vulkan {
VKResource::VKResource() = default;
VKResource::~VKResource() = default;
} // namespace Vulkan

@ -0,0 +1,26 @@
// Copyright 2018 yuzu Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#pragma once
#include "video_core/renderer_vulkan/declarations.h"
namespace Vulkan {
class VKFence;
/// Interface for a Vulkan resource
class VKResource {
public:
explicit VKResource();
virtual ~VKResource();
/**
* Signals the object that an owning fence has been signaled.
* @param signaling_fence Fence that signals its usage end.
*/
virtual void OnFenceRemoval(VKFence* signaling_fence) = 0;
};
} // namespace Vulkan