diff options
| author | 2019-02-14 12:52:46 -0300 | |
|---|---|---|
| committer | 2019-02-14 18:36:15 -0300 | |
| commit | 33a4cebc225454dfd8dc9a7263fe1f4bfb8a9748 (patch) | |
| tree | 8fdddb7c7ac19f29a878b078a6de63a002bd0a3a | |
| parent | Merge pull request #2113 from ReinUsesLisp/vulkan-base (diff) | |
| download | yuzu-33a4cebc225454dfd8dc9a7263fe1f4bfb8a9748.tar.gz yuzu-33a4cebc225454dfd8dc9a7263fe1f4bfb8a9748.tar.xz yuzu-33a4cebc225454dfd8dc9a7263fe1f4bfb8a9748.zip | |
vk_resource_manager: Add VKResource interface
VKResource is an interface that gets signaled by a fence when it is free
to be reused.
| -rw-r--r-- | src/video_core/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_resource_manager.cpp | 14 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_resource_manager.h | 26 |
3 files changed, 43 insertions, 1 deletions
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt index d35a738d5..59319f206 100644 --- a/src/video_core/CMakeLists.txt +++ b/src/video_core/CMakeLists.txt | |||
| @@ -105,7 +105,9 @@ if (ENABLE_VULKAN) | |||
| 105 | target_sources(video_core PRIVATE | 105 | target_sources(video_core PRIVATE |
| 106 | renderer_vulkan/declarations.h | 106 | renderer_vulkan/declarations.h |
| 107 | renderer_vulkan/vk_device.cpp | 107 | renderer_vulkan/vk_device.cpp |
| 108 | renderer_vulkan/vk_device.h) | 108 | renderer_vulkan/vk_device.h |
| 109 | renderer_vulkan/vk_resource_manager.cpp | ||
| 110 | renderer_vulkan/vk_resource_manager.h) | ||
| 109 | 111 | ||
| 110 | target_include_directories(video_core PRIVATE ../../externals/Vulkan-Headers/include) | 112 | target_include_directories(video_core PRIVATE ../../externals/Vulkan-Headers/include) |
| 111 | target_compile_definitions(video_core PRIVATE HAS_VULKAN) | 113 | target_compile_definitions(video_core PRIVATE HAS_VULKAN) |
diff --git a/src/video_core/renderer_vulkan/vk_resource_manager.cpp b/src/video_core/renderer_vulkan/vk_resource_manager.cpp new file mode 100644 index 000000000..46563748e --- /dev/null +++ b/src/video_core/renderer_vulkan/vk_resource_manager.cpp | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | // Copyright 2018 yuzu Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include "video_core/renderer_vulkan/declarations.h" | ||
| 6 | #include "video_core/renderer_vulkan/vk_resource_manager.h" | ||
| 7 | |||
| 8 | namespace Vulkan { | ||
| 9 | |||
| 10 | VKResource::VKResource() = default; | ||
| 11 | |||
| 12 | VKResource::~VKResource() = default; | ||
| 13 | |||
| 14 | } // namespace Vulkan | ||
diff --git a/src/video_core/renderer_vulkan/vk_resource_manager.h b/src/video_core/renderer_vulkan/vk_resource_manager.h new file mode 100644 index 000000000..21a53abcd --- /dev/null +++ b/src/video_core/renderer_vulkan/vk_resource_manager.h | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | // Copyright 2018 yuzu Emulator Project | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include "video_core/renderer_vulkan/declarations.h" | ||
| 8 | |||
| 9 | namespace Vulkan { | ||
| 10 | |||
| 11 | class VKFence; | ||
| 12 | |||
| 13 | /// Interface for a Vulkan resource | ||
| 14 | class VKResource { | ||
| 15 | public: | ||
| 16 | explicit VKResource(); | ||
| 17 | virtual ~VKResource(); | ||
| 18 | |||
| 19 | /** | ||
| 20 | * Signals the object that an owning fence has been signaled. | ||
| 21 | * @param signaling_fence Fence that signals its usage end. | ||
| 22 | */ | ||
| 23 | virtual void OnFenceRemoval(VKFence* signaling_fence) = 0; | ||
| 24 | }; | ||
| 25 | |||
| 26 | } // namespace Vulkan | ||