diff options
| author | 2020-01-16 22:54:15 -0300 | |
|---|---|---|
| committer | 2020-01-16 22:54:15 -0300 | |
| commit | 38e789c761e6443bda33d55ae5b3c06802e33ca0 (patch) | |
| tree | 21073489cdd1e644bb50bfa4939c9d4acff66ae0 | |
| parent | Merge pull request #3300 from ReinUsesLisp/vk-texture-cache (diff) | |
| download | yuzu-38e789c761e6443bda33d55ae5b3c06802e33ca0.tar.gz yuzu-38e789c761e6443bda33d55ae5b3c06802e33ca0.tar.xz yuzu-38e789c761e6443bda33d55ae5b3c06802e33ca0.zip | |
renderer_vulkan: Add header as placeholder
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/renderer_vulkan.h | 72 |
2 files changed, 73 insertions, 0 deletions
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt index 729ee4a01..d7719eed9 100644 --- a/src/video_core/CMakeLists.txt +++ b/src/video_core/CMakeLists.txt | |||
| @@ -153,6 +153,7 @@ if (ENABLE_VULKAN) | |||
| 153 | renderer_vulkan/fixed_pipeline_state.h | 153 | renderer_vulkan/fixed_pipeline_state.h |
| 154 | renderer_vulkan/maxwell_to_vk.cpp | 154 | renderer_vulkan/maxwell_to_vk.cpp |
| 155 | renderer_vulkan/maxwell_to_vk.h | 155 | renderer_vulkan/maxwell_to_vk.h |
| 156 | renderer_vulkan/renderer_vulkan.h | ||
| 156 | renderer_vulkan/vk_buffer_cache.cpp | 157 | renderer_vulkan/vk_buffer_cache.cpp |
| 157 | renderer_vulkan/vk_buffer_cache.h | 158 | renderer_vulkan/vk_buffer_cache.h |
| 158 | renderer_vulkan/vk_compute_pass.cpp | 159 | renderer_vulkan/vk_compute_pass.cpp |
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.h b/src/video_core/renderer_vulkan/renderer_vulkan.h new file mode 100644 index 000000000..a472c5dc9 --- /dev/null +++ b/src/video_core/renderer_vulkan/renderer_vulkan.h | |||
| @@ -0,0 +1,72 @@ | |||
| 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 <optional> | ||
| 8 | #include <vector> | ||
| 9 | #include "video_core/renderer_base.h" | ||
| 10 | #include "video_core/renderer_vulkan/declarations.h" | ||
| 11 | |||
| 12 | namespace Core { | ||
| 13 | class System; | ||
| 14 | } | ||
| 15 | |||
| 16 | namespace Vulkan { | ||
| 17 | |||
| 18 | class VKBlitScreen; | ||
| 19 | class VKDevice; | ||
| 20 | class VKFence; | ||
| 21 | class VKMemoryManager; | ||
| 22 | class VKResourceManager; | ||
| 23 | class VKSwapchain; | ||
| 24 | class VKScheduler; | ||
| 25 | class VKImage; | ||
| 26 | |||
| 27 | struct VKScreenInfo { | ||
| 28 | VKImage* image{}; | ||
| 29 | u32 width{}; | ||
| 30 | u32 height{}; | ||
| 31 | bool is_srgb{}; | ||
| 32 | }; | ||
| 33 | |||
| 34 | class RendererVulkan final : public VideoCore::RendererBase { | ||
| 35 | public: | ||
| 36 | explicit RendererVulkan(Core::Frontend::EmuWindow& window, Core::System& system); | ||
| 37 | ~RendererVulkan() override; | ||
| 38 | |||
| 39 | /// Swap buffers (render frame) | ||
| 40 | void SwapBuffers(const Tegra::FramebufferConfig* framebuffer) override; | ||
| 41 | |||
| 42 | /// Initialize the renderer | ||
| 43 | bool Init() override; | ||
| 44 | |||
| 45 | /// Shutdown the renderer | ||
| 46 | void ShutDown() override; | ||
| 47 | |||
| 48 | private: | ||
| 49 | std::optional<vk::DebugUtilsMessengerEXT> CreateDebugCallback( | ||
| 50 | const vk::DispatchLoaderDynamic& dldi); | ||
| 51 | |||
| 52 | bool PickDevices(const vk::DispatchLoaderDynamic& dldi); | ||
| 53 | |||
| 54 | void Report() const; | ||
| 55 | |||
| 56 | Core::System& system; | ||
| 57 | |||
| 58 | vk::Instance instance; | ||
| 59 | vk::SurfaceKHR surface; | ||
| 60 | |||
| 61 | VKScreenInfo screen_info; | ||
| 62 | |||
| 63 | UniqueDebugUtilsMessengerEXT debug_callback; | ||
| 64 | std::unique_ptr<VKDevice> device; | ||
| 65 | std::unique_ptr<VKSwapchain> swapchain; | ||
| 66 | std::unique_ptr<VKMemoryManager> memory_manager; | ||
| 67 | std::unique_ptr<VKResourceManager> resource_manager; | ||
| 68 | std::unique_ptr<VKScheduler> scheduler; | ||
| 69 | std::unique_ptr<VKBlitScreen> blit_screen; | ||
| 70 | }; | ||
| 71 | |||
| 72 | } // namespace Vulkan | ||