Browse Source

vk_resource_manager: Add VKResource interface

VKResource is an interface that gets signaled by a fence when it is free
to be reused.
nce_cpp
ReinUsesLisp 7 years ago
parent
commit
87b7e95181
  1. 4
      src/video_core/CMakeLists.txt
  2. 14
      src/video_core/renderer_vulkan/vk_resource_manager.cpp
  3. 26
      src/video_core/renderer_vulkan/vk_resource_manager.h

4
src/video_core/CMakeLists.txt

@ -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)

14
src/video_core/renderer_vulkan/vk_resource_manager.cpp

@ -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

@ -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…
Cancel
Save