mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-12-23 17:00:57 +01:00
vk_resource_manager: Add VKResource interface
VKResource is an interface that gets signaled by a fence when it is free to be reused.
This commit is contained in:
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
|
target_sources(video_core PRIVATE
|
||||||
renderer_vulkan/declarations.h
|
renderer_vulkan/declarations.h
|
||||||
renderer_vulkan/vk_device.cpp
|
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_include_directories(video_core PRIVATE ../../externals/Vulkan-Headers/include)
|
||||||
target_compile_definitions(video_core PRIVATE HAS_VULKAN)
|
target_compile_definitions(video_core PRIVATE HAS_VULKAN)
|
||||||
|
|
14
src/video_core/renderer_vulkan/vk_resource_manager.cpp
Normal file
14
src/video_core/renderer_vulkan/vk_resource_manager.cpp
Normal file
|
@ -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
|
26
src/video_core/renderer_vulkan/vk_resource_manager.h
Normal file
26
src/video_core/renderer_vulkan/vk_resource_manager.h
Normal file
|
@ -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
|
Loading…
Reference in a new issue