diff options
Diffstat (limited to 'src')
35 files changed, 110 insertions, 111 deletions
diff --git a/src/video_core/renderer_vulkan/blit_image.cpp b/src/video_core/renderer_vulkan/blit_image.cpp index 5d35366f7..3f2b139e0 100644 --- a/src/video_core/renderer_vulkan/blit_image.cpp +++ b/src/video_core/renderer_vulkan/blit_image.cpp | |||
| @@ -349,7 +349,7 @@ VkExtent2D GetConversionExtent(const ImageView& src_image_view) { | |||
| 349 | } | 349 | } |
| 350 | } // Anonymous namespace | 350 | } // Anonymous namespace |
| 351 | 351 | ||
| 352 | BlitImageHelper::BlitImageHelper(const Device& device_, VKScheduler& scheduler_, | 352 | BlitImageHelper::BlitImageHelper(const Device& device_, Scheduler& scheduler_, |
| 353 | StateTracker& state_tracker_, DescriptorPool& descriptor_pool) | 353 | StateTracker& state_tracker_, DescriptorPool& descriptor_pool) |
| 354 | : device{device_}, scheduler{scheduler_}, state_tracker{state_tracker_}, | 354 | : device{device_}, scheduler{scheduler_}, state_tracker{state_tracker_}, |
| 355 | one_texture_set_layout(device.GetLogical().CreateDescriptorSetLayout( | 355 | one_texture_set_layout(device.GetLogical().CreateDescriptorSetLayout( |
diff --git a/src/video_core/renderer_vulkan/blit_image.h b/src/video_core/renderer_vulkan/blit_image.h index 21e9d7d69..5df679fb4 100644 --- a/src/video_core/renderer_vulkan/blit_image.h +++ b/src/video_core/renderer_vulkan/blit_image.h | |||
| @@ -16,7 +16,7 @@ class Device; | |||
| 16 | class Framebuffer; | 16 | class Framebuffer; |
| 17 | class ImageView; | 17 | class ImageView; |
| 18 | class StateTracker; | 18 | class StateTracker; |
| 19 | class VKScheduler; | 19 | class Scheduler; |
| 20 | 20 | ||
| 21 | struct BlitImagePipelineKey { | 21 | struct BlitImagePipelineKey { |
| 22 | constexpr auto operator<=>(const BlitImagePipelineKey&) const noexcept = default; | 22 | constexpr auto operator<=>(const BlitImagePipelineKey&) const noexcept = default; |
| @@ -27,7 +27,7 @@ struct BlitImagePipelineKey { | |||
| 27 | 27 | ||
| 28 | class BlitImageHelper { | 28 | class BlitImageHelper { |
| 29 | public: | 29 | public: |
| 30 | explicit BlitImageHelper(const Device& device, VKScheduler& scheduler, | 30 | explicit BlitImageHelper(const Device& device, Scheduler& scheduler, |
| 31 | StateTracker& state_tracker, DescriptorPool& descriptor_pool); | 31 | StateTracker& state_tracker, DescriptorPool& descriptor_pool); |
| 32 | ~BlitImageHelper(); | 32 | ~BlitImageHelper(); |
| 33 | 33 | ||
| @@ -82,7 +82,7 @@ private: | |||
| 82 | vk::ShaderModule& module); | 82 | vk::ShaderModule& module); |
| 83 | 83 | ||
| 84 | const Device& device; | 84 | const Device& device; |
| 85 | VKScheduler& scheduler; | 85 | Scheduler& scheduler; |
| 86 | StateTracker& state_tracker; | 86 | StateTracker& state_tracker; |
| 87 | 87 | ||
| 88 | vk::DescriptorSetLayout one_texture_set_layout; | 88 | vk::DescriptorSetLayout one_texture_set_layout; |
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.h b/src/video_core/renderer_vulkan/renderer_vulkan.h index 17a16e275..bd254c45e 100644 --- a/src/video_core/renderer_vulkan/renderer_vulkan.h +++ b/src/video_core/renderer_vulkan/renderer_vulkan.h | |||
| @@ -65,12 +65,12 @@ private: | |||
| 65 | vk::DebugUtilsMessenger debug_callback; | 65 | vk::DebugUtilsMessenger debug_callback; |
| 66 | vk::SurfaceKHR surface; | 66 | vk::SurfaceKHR surface; |
| 67 | 67 | ||
| 68 | VKScreenInfo screen_info; | 68 | ScreenInfo screen_info; |
| 69 | 69 | ||
| 70 | Device device; | 70 | Device device; |
| 71 | MemoryAllocator memory_allocator; | 71 | MemoryAllocator memory_allocator; |
| 72 | StateTracker state_tracker; | 72 | StateTracker state_tracker; |
| 73 | VKScheduler scheduler; | 73 | Scheduler scheduler; |
| 74 | VKSwapchain swapchain; | 74 | VKSwapchain swapchain; |
| 75 | BlitScreen blit_screen; | 75 | BlitScreen blit_screen; |
| 76 | RasterizerVulkan rasterizer; | 76 | RasterizerVulkan rasterizer; |
diff --git a/src/video_core/renderer_vulkan/vk_blit_screen.cpp b/src/video_core/renderer_vulkan/vk_blit_screen.cpp index 462e8f86b..ea0b15b78 100644 --- a/src/video_core/renderer_vulkan/vk_blit_screen.cpp +++ b/src/video_core/renderer_vulkan/vk_blit_screen.cpp | |||
| @@ -120,8 +120,8 @@ struct BlitScreen::BufferData { | |||
| 120 | 120 | ||
| 121 | BlitScreen::BlitScreen(Core::Memory::Memory& cpu_memory_, Core::Frontend::EmuWindow& render_window_, | 121 | BlitScreen::BlitScreen(Core::Memory::Memory& cpu_memory_, Core::Frontend::EmuWindow& render_window_, |
| 122 | const Device& device_, MemoryAllocator& memory_allocator_, | 122 | const Device& device_, MemoryAllocator& memory_allocator_, |
| 123 | VKSwapchain& swapchain_, VKScheduler& scheduler_, | 123 | VKSwapchain& swapchain_, Scheduler& scheduler_, |
| 124 | const VKScreenInfo& screen_info_) | 124 | const ScreenInfo& screen_info_) |
| 125 | : cpu_memory{cpu_memory_}, render_window{render_window_}, device{device_}, | 125 | : cpu_memory{cpu_memory_}, render_window{render_window_}, device{device_}, |
| 126 | memory_allocator{memory_allocator_}, swapchain{swapchain_}, scheduler{scheduler_}, | 126 | memory_allocator{memory_allocator_}, swapchain{swapchain_}, scheduler{scheduler_}, |
| 127 | image_count{swapchain.GetImageCount()}, screen_info{screen_info_} { | 127 | image_count{swapchain.GetImageCount()}, screen_info{screen_info_} { |
diff --git a/src/video_core/renderer_vulkan/vk_blit_screen.h b/src/video_core/renderer_vulkan/vk_blit_screen.h index 3ed1a9537..322af27e1 100644 --- a/src/video_core/renderer_vulkan/vk_blit_screen.h +++ b/src/video_core/renderer_vulkan/vk_blit_screen.h | |||
| @@ -35,10 +35,10 @@ struct ScreenInfo; | |||
| 35 | class Device; | 35 | class Device; |
| 36 | class FSR; | 36 | class FSR; |
| 37 | class RasterizerVulkan; | 37 | class RasterizerVulkan; |
| 38 | class VKScheduler; | 38 | class Scheduler; |
| 39 | class VKSwapchain; | 39 | class VKSwapchain; |
| 40 | 40 | ||
| 41 | struct VKScreenInfo { | 41 | struct ScreenInfo { |
| 42 | VkImageView image_view{}; | 42 | VkImageView image_view{}; |
| 43 | u32 width{}; | 43 | u32 width{}; |
| 44 | u32 height{}; | 44 | u32 height{}; |
| @@ -49,8 +49,8 @@ class BlitScreen { | |||
| 49 | public: | 49 | public: |
| 50 | explicit BlitScreen(Core::Memory::Memory& cpu_memory, Core::Frontend::EmuWindow& render_window, | 50 | explicit BlitScreen(Core::Memory::Memory& cpu_memory, Core::Frontend::EmuWindow& render_window, |
| 51 | const Device& device, MemoryAllocator& memory_manager, | 51 | const Device& device, MemoryAllocator& memory_manager, |
| 52 | VKSwapchain& swapchain, VKScheduler& scheduler, | 52 | VKSwapchain& swapchain, Scheduler& scheduler, |
| 53 | const VKScreenInfo& screen_info); | 53 | const ScreenInfo& screen_info); |
| 54 | ~BlitScreen(); | 54 | ~BlitScreen(); |
| 55 | 55 | ||
| 56 | void Recreate(); | 56 | void Recreate(); |
| @@ -109,9 +109,9 @@ private: | |||
| 109 | const Device& device; | 109 | const Device& device; |
| 110 | MemoryAllocator& memory_allocator; | 110 | MemoryAllocator& memory_allocator; |
| 111 | VKSwapchain& swapchain; | 111 | VKSwapchain& swapchain; |
| 112 | VKScheduler& scheduler; | 112 | Scheduler& scheduler; |
| 113 | const std::size_t image_count; | 113 | const std::size_t image_count; |
| 114 | const VKScreenInfo& screen_info; | 114 | const ScreenInfo& screen_info; |
| 115 | 115 | ||
| 116 | vk::ShaderModule vertex_shader; | 116 | vk::ShaderModule vertex_shader; |
| 117 | vk::ShaderModule fxaa_vertex_shader; | 117 | vk::ShaderModule fxaa_vertex_shader; |
diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp b/src/video_core/renderer_vulkan/vk_buffer_cache.cpp index 450905197..2e7f3e595 100644 --- a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_buffer_cache.cpp | |||
| @@ -124,7 +124,7 @@ VkBufferView Buffer::View(u32 offset, u32 size, VideoCore::Surface::PixelFormat | |||
| 124 | } | 124 | } |
| 125 | 125 | ||
| 126 | BufferCacheRuntime::BufferCacheRuntime(const Device& device_, MemoryAllocator& memory_allocator_, | 126 | BufferCacheRuntime::BufferCacheRuntime(const Device& device_, MemoryAllocator& memory_allocator_, |
| 127 | VKScheduler& scheduler_, StagingBufferPool& staging_pool_, | 127 | Scheduler& scheduler_, StagingBufferPool& staging_pool_, |
| 128 | VKUpdateDescriptorQueue& update_descriptor_queue_, | 128 | VKUpdateDescriptorQueue& update_descriptor_queue_, |
| 129 | DescriptorPool& descriptor_pool) | 129 | DescriptorPool& descriptor_pool) |
| 130 | : device{device_}, memory_allocator{memory_allocator_}, scheduler{scheduler_}, | 130 | : device{device_}, memory_allocator{memory_allocator_}, scheduler{scheduler_}, |
diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.h b/src/video_core/renderer_vulkan/vk_buffer_cache.h index 6fa618f18..a1e56940e 100644 --- a/src/video_core/renderer_vulkan/vk_buffer_cache.h +++ b/src/video_core/renderer_vulkan/vk_buffer_cache.h | |||
| @@ -16,7 +16,7 @@ namespace Vulkan { | |||
| 16 | 16 | ||
| 17 | class Device; | 17 | class Device; |
| 18 | class DescriptorPool; | 18 | class DescriptorPool; |
| 19 | class VKScheduler; | 19 | class Scheduler; |
| 20 | 20 | ||
| 21 | class BufferCacheRuntime; | 21 | class BufferCacheRuntime; |
| 22 | 22 | ||
| @@ -58,7 +58,7 @@ class BufferCacheRuntime { | |||
| 58 | 58 | ||
| 59 | public: | 59 | public: |
| 60 | explicit BufferCacheRuntime(const Device& device_, MemoryAllocator& memory_manager_, | 60 | explicit BufferCacheRuntime(const Device& device_, MemoryAllocator& memory_manager_, |
| 61 | VKScheduler& scheduler_, StagingBufferPool& staging_pool_, | 61 | Scheduler& scheduler_, StagingBufferPool& staging_pool_, |
| 62 | VKUpdateDescriptorQueue& update_descriptor_queue_, | 62 | VKUpdateDescriptorQueue& update_descriptor_queue_, |
| 63 | DescriptorPool& descriptor_pool); | 63 | DescriptorPool& descriptor_pool); |
| 64 | 64 | ||
| @@ -124,7 +124,7 @@ private: | |||
| 124 | 124 | ||
| 125 | const Device& device; | 125 | const Device& device; |
| 126 | MemoryAllocator& memory_allocator; | 126 | MemoryAllocator& memory_allocator; |
| 127 | VKScheduler& scheduler; | 127 | Scheduler& scheduler; |
| 128 | StagingBufferPool& staging_pool; | 128 | StagingBufferPool& staging_pool; |
| 129 | VKUpdateDescriptorQueue& update_descriptor_queue; | 129 | VKUpdateDescriptorQueue& update_descriptor_queue; |
| 130 | 130 | ||
diff --git a/src/video_core/renderer_vulkan/vk_compute_pass.cpp b/src/video_core/renderer_vulkan/vk_compute_pass.cpp index 4cba777e6..22a6cf316 100644 --- a/src/video_core/renderer_vulkan/vk_compute_pass.cpp +++ b/src/video_core/renderer_vulkan/vk_compute_pass.cpp | |||
| @@ -200,8 +200,8 @@ ComputePass::ComputePass(const Device& device_, DescriptorPool& descriptor_pool, | |||
| 200 | 200 | ||
| 201 | ComputePass::~ComputePass() = default; | 201 | ComputePass::~ComputePass() = default; |
| 202 | 202 | ||
| 203 | Uint8Pass::Uint8Pass(const Device& device_, VKScheduler& scheduler_, | 203 | Uint8Pass::Uint8Pass(const Device& device_, Scheduler& scheduler_, DescriptorPool& descriptor_pool, |
| 204 | DescriptorPool& descriptor_pool, StagingBufferPool& staging_buffer_pool_, | 204 | StagingBufferPool& staging_buffer_pool_, |
| 205 | VKUpdateDescriptorQueue& update_descriptor_queue_) | 205 | VKUpdateDescriptorQueue& update_descriptor_queue_) |
| 206 | : ComputePass(device_, descriptor_pool, INPUT_OUTPUT_DESCRIPTOR_SET_BINDINGS, | 206 | : ComputePass(device_, descriptor_pool, INPUT_OUTPUT_DESCRIPTOR_SET_BINDINGS, |
| 207 | INPUT_OUTPUT_DESCRIPTOR_UPDATE_TEMPLATE, INPUT_OUTPUT_BANK_INFO, {}, | 207 | INPUT_OUTPUT_DESCRIPTOR_UPDATE_TEMPLATE, INPUT_OUTPUT_BANK_INFO, {}, |
| @@ -241,7 +241,7 @@ std::pair<VkBuffer, VkDeviceSize> Uint8Pass::Assemble(u32 num_vertices, VkBuffer | |||
| 241 | return {staging.buffer, staging.offset}; | 241 | return {staging.buffer, staging.offset}; |
| 242 | } | 242 | } |
| 243 | 243 | ||
| 244 | QuadIndexedPass::QuadIndexedPass(const Device& device_, VKScheduler& scheduler_, | 244 | QuadIndexedPass::QuadIndexedPass(const Device& device_, Scheduler& scheduler_, |
| 245 | DescriptorPool& descriptor_pool_, | 245 | DescriptorPool& descriptor_pool_, |
| 246 | StagingBufferPool& staging_buffer_pool_, | 246 | StagingBufferPool& staging_buffer_pool_, |
| 247 | VKUpdateDescriptorQueue& update_descriptor_queue_) | 247 | VKUpdateDescriptorQueue& update_descriptor_queue_) |
| @@ -303,7 +303,7 @@ std::pair<VkBuffer, VkDeviceSize> QuadIndexedPass::Assemble( | |||
| 303 | return {staging.buffer, staging.offset}; | 303 | return {staging.buffer, staging.offset}; |
| 304 | } | 304 | } |
| 305 | 305 | ||
| 306 | ASTCDecoderPass::ASTCDecoderPass(const Device& device_, VKScheduler& scheduler_, | 306 | ASTCDecoderPass::ASTCDecoderPass(const Device& device_, Scheduler& scheduler_, |
| 307 | DescriptorPool& descriptor_pool_, | 307 | DescriptorPool& descriptor_pool_, |
| 308 | StagingBufferPool& staging_buffer_pool_, | 308 | StagingBufferPool& staging_buffer_pool_, |
| 309 | VKUpdateDescriptorQueue& update_descriptor_queue_, | 309 | VKUpdateDescriptorQueue& update_descriptor_queue_, |
diff --git a/src/video_core/renderer_vulkan/vk_compute_pass.h b/src/video_core/renderer_vulkan/vk_compute_pass.h index 1c6aa0805..930c45496 100644 --- a/src/video_core/renderer_vulkan/vk_compute_pass.h +++ b/src/video_core/renderer_vulkan/vk_compute_pass.h | |||
| @@ -20,7 +20,7 @@ namespace Vulkan { | |||
| 20 | 20 | ||
| 21 | class Device; | 21 | class Device; |
| 22 | class StagingBufferPool; | 22 | class StagingBufferPool; |
| 23 | class VKScheduler; | 23 | class Scheduler; |
| 24 | class VKUpdateDescriptorQueue; | 24 | class VKUpdateDescriptorQueue; |
| 25 | class Image; | 25 | class Image; |
| 26 | struct StagingBufferRef; | 26 | struct StagingBufferRef; |
| @@ -48,7 +48,7 @@ private: | |||
| 48 | 48 | ||
| 49 | class Uint8Pass final : public ComputePass { | 49 | class Uint8Pass final : public ComputePass { |
| 50 | public: | 50 | public: |
| 51 | explicit Uint8Pass(const Device& device_, VKScheduler& scheduler_, | 51 | explicit Uint8Pass(const Device& device_, Scheduler& scheduler_, |
| 52 | DescriptorPool& descriptor_pool_, StagingBufferPool& staging_buffer_pool_, | 52 | DescriptorPool& descriptor_pool_, StagingBufferPool& staging_buffer_pool_, |
| 53 | VKUpdateDescriptorQueue& update_descriptor_queue_); | 53 | VKUpdateDescriptorQueue& update_descriptor_queue_); |
| 54 | ~Uint8Pass(); | 54 | ~Uint8Pass(); |
| @@ -59,14 +59,14 @@ public: | |||
| 59 | u32 src_offset); | 59 | u32 src_offset); |
| 60 | 60 | ||
| 61 | private: | 61 | private: |
| 62 | VKScheduler& scheduler; | 62 | Scheduler& scheduler; |
| 63 | StagingBufferPool& staging_buffer_pool; | 63 | StagingBufferPool& staging_buffer_pool; |
| 64 | VKUpdateDescriptorQueue& update_descriptor_queue; | 64 | VKUpdateDescriptorQueue& update_descriptor_queue; |
| 65 | }; | 65 | }; |
| 66 | 66 | ||
| 67 | class QuadIndexedPass final : public ComputePass { | 67 | class QuadIndexedPass final : public ComputePass { |
| 68 | public: | 68 | public: |
| 69 | explicit QuadIndexedPass(const Device& device_, VKScheduler& scheduler_, | 69 | explicit QuadIndexedPass(const Device& device_, Scheduler& scheduler_, |
| 70 | DescriptorPool& descriptor_pool_, | 70 | DescriptorPool& descriptor_pool_, |
| 71 | StagingBufferPool& staging_buffer_pool_, | 71 | StagingBufferPool& staging_buffer_pool_, |
| 72 | VKUpdateDescriptorQueue& update_descriptor_queue_); | 72 | VKUpdateDescriptorQueue& update_descriptor_queue_); |
| @@ -77,14 +77,14 @@ public: | |||
| 77 | u32 base_vertex, VkBuffer src_buffer, u32 src_offset); | 77 | u32 base_vertex, VkBuffer src_buffer, u32 src_offset); |
| 78 | 78 | ||
| 79 | private: | 79 | private: |
| 80 | VKScheduler& scheduler; | 80 | Scheduler& scheduler; |
| 81 | StagingBufferPool& staging_buffer_pool; | 81 | StagingBufferPool& staging_buffer_pool; |
| 82 | VKUpdateDescriptorQueue& update_descriptor_queue; | 82 | VKUpdateDescriptorQueue& update_descriptor_queue; |
| 83 | }; | 83 | }; |
| 84 | 84 | ||
| 85 | class ASTCDecoderPass final : public ComputePass { | 85 | class ASTCDecoderPass final : public ComputePass { |
| 86 | public: | 86 | public: |
| 87 | explicit ASTCDecoderPass(const Device& device_, VKScheduler& scheduler_, | 87 | explicit ASTCDecoderPass(const Device& device_, Scheduler& scheduler_, |
| 88 | DescriptorPool& descriptor_pool_, | 88 | DescriptorPool& descriptor_pool_, |
| 89 | StagingBufferPool& staging_buffer_pool_, | 89 | StagingBufferPool& staging_buffer_pool_, |
| 90 | VKUpdateDescriptorQueue& update_descriptor_queue_, | 90 | VKUpdateDescriptorQueue& update_descriptor_queue_, |
| @@ -95,7 +95,7 @@ public: | |||
| 95 | std::span<const VideoCommon::SwizzleParameters> swizzles); | 95 | std::span<const VideoCommon::SwizzleParameters> swizzles); |
| 96 | 96 | ||
| 97 | private: | 97 | private: |
| 98 | VKScheduler& scheduler; | 98 | Scheduler& scheduler; |
| 99 | StagingBufferPool& staging_buffer_pool; | 99 | StagingBufferPool& staging_buffer_pool; |
| 100 | VKUpdateDescriptorQueue& update_descriptor_queue; | 100 | VKUpdateDescriptorQueue& update_descriptor_queue; |
| 101 | MemoryAllocator& memory_allocator; | 101 | MemoryAllocator& memory_allocator; |
diff --git a/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp b/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp index 6c497b5d4..c9e551231 100644 --- a/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp +++ b/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp | |||
| @@ -91,7 +91,7 @@ ComputePipeline::ComputePipeline(const Device& device_, DescriptorPool& descript | |||
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | void ComputePipeline::Configure(Tegra::Engines::KeplerCompute& kepler_compute, | 93 | void ComputePipeline::Configure(Tegra::Engines::KeplerCompute& kepler_compute, |
| 94 | Tegra::MemoryManager& gpu_memory, VKScheduler& scheduler, | 94 | Tegra::MemoryManager& gpu_memory, Scheduler& scheduler, |
| 95 | BufferCache& buffer_cache, TextureCache& texture_cache) { | 95 | BufferCache& buffer_cache, TextureCache& texture_cache) { |
| 96 | update_descriptor_queue.Acquire(); | 96 | update_descriptor_queue.Acquire(); |
| 97 | 97 | ||
diff --git a/src/video_core/renderer_vulkan/vk_compute_pipeline.h b/src/video_core/renderer_vulkan/vk_compute_pipeline.h index d4c0e2015..3f9cb6b9f 100644 --- a/src/video_core/renderer_vulkan/vk_compute_pipeline.h +++ b/src/video_core/renderer_vulkan/vk_compute_pipeline.h | |||
| @@ -24,7 +24,7 @@ namespace Vulkan { | |||
| 24 | 24 | ||
| 25 | class Device; | 25 | class Device; |
| 26 | class PipelineStatistics; | 26 | class PipelineStatistics; |
| 27 | class VKScheduler; | 27 | class Scheduler; |
| 28 | 28 | ||
| 29 | class ComputePipeline { | 29 | class ComputePipeline { |
| 30 | public: | 30 | public: |
| @@ -42,7 +42,7 @@ public: | |||
| 42 | ComputePipeline(const ComputePipeline&) = delete; | 42 | ComputePipeline(const ComputePipeline&) = delete; |
| 43 | 43 | ||
| 44 | void Configure(Tegra::Engines::KeplerCompute& kepler_compute, Tegra::MemoryManager& gpu_memory, | 44 | void Configure(Tegra::Engines::KeplerCompute& kepler_compute, Tegra::MemoryManager& gpu_memory, |
| 45 | VKScheduler& scheduler, BufferCache& buffer_cache, TextureCache& texture_cache); | 45 | Scheduler& scheduler, BufferCache& buffer_cache, TextureCache& texture_cache); |
| 46 | 46 | ||
| 47 | private: | 47 | private: |
| 48 | const Device& device; | 48 | const Device& device; |
diff --git a/src/video_core/renderer_vulkan/vk_descriptor_pool.cpp b/src/video_core/renderer_vulkan/vk_descriptor_pool.cpp index 7073a874b..c7196b64e 100644 --- a/src/video_core/renderer_vulkan/vk_descriptor_pool.cpp +++ b/src/video_core/renderer_vulkan/vk_descriptor_pool.cpp | |||
| @@ -121,7 +121,7 @@ vk::DescriptorSets DescriptorAllocator::AllocateDescriptors(size_t count) { | |||
| 121 | throw vk::Exception(VK_ERROR_OUT_OF_POOL_MEMORY); | 121 | throw vk::Exception(VK_ERROR_OUT_OF_POOL_MEMORY); |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | DescriptorPool::DescriptorPool(const Device& device_, VKScheduler& scheduler) | 124 | DescriptorPool::DescriptorPool(const Device& device_, Scheduler& scheduler) |
| 125 | : device{device_}, master_semaphore{scheduler.GetMasterSemaphore()} {} | 125 | : device{device_}, master_semaphore{scheduler.GetMasterSemaphore()} {} |
| 126 | 126 | ||
| 127 | DescriptorPool::~DescriptorPool() = default; | 127 | DescriptorPool::~DescriptorPool() = default; |
diff --git a/src/video_core/renderer_vulkan/vk_descriptor_pool.h b/src/video_core/renderer_vulkan/vk_descriptor_pool.h index 30895f259..bd6696b07 100644 --- a/src/video_core/renderer_vulkan/vk_descriptor_pool.h +++ b/src/video_core/renderer_vulkan/vk_descriptor_pool.h | |||
| @@ -14,7 +14,7 @@ | |||
| 14 | namespace Vulkan { | 14 | namespace Vulkan { |
| 15 | 15 | ||
| 16 | class Device; | 16 | class Device; |
| 17 | class VKScheduler; | 17 | class Scheduler; |
| 18 | 18 | ||
| 19 | struct DescriptorBank; | 19 | struct DescriptorBank; |
| 20 | 20 | ||
| @@ -62,7 +62,7 @@ private: | |||
| 62 | 62 | ||
| 63 | class DescriptorPool { | 63 | class DescriptorPool { |
| 64 | public: | 64 | public: |
| 65 | explicit DescriptorPool(const Device& device, VKScheduler& scheduler); | 65 | explicit DescriptorPool(const Device& device, Scheduler& scheduler); |
| 66 | ~DescriptorPool(); | 66 | ~DescriptorPool(); |
| 67 | 67 | ||
| 68 | DescriptorPool& operator=(const DescriptorPool&) = delete; | 68 | DescriptorPool& operator=(const DescriptorPool&) = delete; |
diff --git a/src/video_core/renderer_vulkan/vk_fence_manager.cpp b/src/video_core/renderer_vulkan/vk_fence_manager.cpp index 788eaf19b..354341923 100644 --- a/src/video_core/renderer_vulkan/vk_fence_manager.cpp +++ b/src/video_core/renderer_vulkan/vk_fence_manager.cpp | |||
| @@ -11,10 +11,10 @@ | |||
| 11 | 11 | ||
| 12 | namespace Vulkan { | 12 | namespace Vulkan { |
| 13 | 13 | ||
| 14 | InnerFence::InnerFence(VKScheduler& scheduler_, u32 payload_, bool is_stubbed_) | 14 | InnerFence::InnerFence(Scheduler& scheduler_, u32 payload_, bool is_stubbed_) |
| 15 | : FenceBase{payload_, is_stubbed_}, scheduler{scheduler_} {} | 15 | : FenceBase{payload_, is_stubbed_}, scheduler{scheduler_} {} |
| 16 | 16 | ||
| 17 | InnerFence::InnerFence(VKScheduler& scheduler_, GPUVAddr address_, u32 payload_, bool is_stubbed_) | 17 | InnerFence::InnerFence(Scheduler& scheduler_, GPUVAddr address_, u32 payload_, bool is_stubbed_) |
| 18 | : FenceBase{address_, payload_, is_stubbed_}, scheduler{scheduler_} {} | 18 | : FenceBase{address_, payload_, is_stubbed_}, scheduler{scheduler_} {} |
| 19 | 19 | ||
| 20 | InnerFence::~InnerFence() = default; | 20 | InnerFence::~InnerFence() = default; |
| @@ -44,8 +44,7 @@ void InnerFence::Wait() { | |||
| 44 | 44 | ||
| 45 | FenceManager::FenceManager(VideoCore::RasterizerInterface& rasterizer_, Tegra::GPU& gpu_, | 45 | FenceManager::FenceManager(VideoCore::RasterizerInterface& rasterizer_, Tegra::GPU& gpu_, |
| 46 | TextureCache& texture_cache_, BufferCache& buffer_cache_, | 46 | TextureCache& texture_cache_, BufferCache& buffer_cache_, |
| 47 | VKQueryCache& query_cache_, const Device& device_, | 47 | VKQueryCache& query_cache_, const Device& device_, Scheduler& scheduler_) |
| 48 | VKScheduler& scheduler_) | ||
| 49 | : GenericFenceManager{rasterizer_, gpu_, texture_cache_, buffer_cache_, query_cache_}, | 48 | : GenericFenceManager{rasterizer_, gpu_, texture_cache_, buffer_cache_, query_cache_}, |
| 50 | scheduler{scheduler_} {} | 49 | scheduler{scheduler_} {} |
| 51 | 50 | ||
diff --git a/src/video_core/renderer_vulkan/vk_fence_manager.h b/src/video_core/renderer_vulkan/vk_fence_manager.h index 70b56778a..01f69cbcc 100644 --- a/src/video_core/renderer_vulkan/vk_fence_manager.h +++ b/src/video_core/renderer_vulkan/vk_fence_manager.h | |||
| @@ -21,12 +21,12 @@ namespace Vulkan { | |||
| 21 | 21 | ||
| 22 | class Device; | 22 | class Device; |
| 23 | class VKQueryCache; | 23 | class VKQueryCache; |
| 24 | class VKScheduler; | 24 | class Scheduler; |
| 25 | 25 | ||
| 26 | class InnerFence : public VideoCommon::FenceBase { | 26 | class InnerFence : public VideoCommon::FenceBase { |
| 27 | public: | 27 | public: |
| 28 | explicit InnerFence(VKScheduler& scheduler_, u32 payload_, bool is_stubbed_); | 28 | explicit InnerFence(Scheduler& scheduler_, u32 payload_, bool is_stubbed_); |
| 29 | explicit InnerFence(VKScheduler& scheduler_, GPUVAddr address_, u32 payload_, bool is_stubbed_); | 29 | explicit InnerFence(Scheduler& scheduler_, GPUVAddr address_, u32 payload_, bool is_stubbed_); |
| 30 | ~InnerFence(); | 30 | ~InnerFence(); |
| 31 | 31 | ||
| 32 | void Queue(); | 32 | void Queue(); |
| @@ -36,7 +36,7 @@ public: | |||
| 36 | void Wait(); | 36 | void Wait(); |
| 37 | 37 | ||
| 38 | private: | 38 | private: |
| 39 | VKScheduler& scheduler; | 39 | Scheduler& scheduler; |
| 40 | u64 wait_tick = 0; | 40 | u64 wait_tick = 0; |
| 41 | }; | 41 | }; |
| 42 | using Fence = std::shared_ptr<InnerFence>; | 42 | using Fence = std::shared_ptr<InnerFence>; |
| @@ -48,7 +48,7 @@ class FenceManager final : public GenericFenceManager { | |||
| 48 | public: | 48 | public: |
| 49 | explicit FenceManager(VideoCore::RasterizerInterface& rasterizer, Tegra::GPU& gpu, | 49 | explicit FenceManager(VideoCore::RasterizerInterface& rasterizer, Tegra::GPU& gpu, |
| 50 | TextureCache& texture_cache, BufferCache& buffer_cache, | 50 | TextureCache& texture_cache, BufferCache& buffer_cache, |
| 51 | VKQueryCache& query_cache, const Device& device, VKScheduler& scheduler); | 51 | VKQueryCache& query_cache, const Device& device, Scheduler& scheduler); |
| 52 | 52 | ||
| 53 | protected: | 53 | protected: |
| 54 | Fence CreateFence(u32 value, bool is_stubbed) override; | 54 | Fence CreateFence(u32 value, bool is_stubbed) override; |
| @@ -58,7 +58,7 @@ protected: | |||
| 58 | void WaitFence(Fence& fence) override; | 58 | void WaitFence(Fence& fence) override; |
| 59 | 59 | ||
| 60 | private: | 60 | private: |
| 61 | VKScheduler& scheduler; | 61 | Scheduler& scheduler; |
| 62 | }; | 62 | }; |
| 63 | 63 | ||
| 64 | } // namespace Vulkan | 64 | } // namespace Vulkan |
diff --git a/src/video_core/renderer_vulkan/vk_fsr.cpp b/src/video_core/renderer_vulkan/vk_fsr.cpp index b563bd51d..dd450169e 100644 --- a/src/video_core/renderer_vulkan/vk_fsr.cpp +++ b/src/video_core/renderer_vulkan/vk_fsr.cpp | |||
| @@ -172,7 +172,7 @@ FSR::FSR(const Device& device_, MemoryAllocator& memory_allocator_, size_t image | |||
| 172 | CreatePipeline(); | 172 | CreatePipeline(); |
| 173 | } | 173 | } |
| 174 | 174 | ||
| 175 | VkImageView FSR::Draw(VKScheduler& scheduler, size_t image_index, VkImageView image_view, | 175 | VkImageView FSR::Draw(Scheduler& scheduler, size_t image_index, VkImageView image_view, |
| 176 | VkExtent2D input_image_extent, const Common::Rectangle<int>& crop_rect) { | 176 | VkExtent2D input_image_extent, const Common::Rectangle<int>& crop_rect) { |
| 177 | 177 | ||
| 178 | UpdateDescriptorSet(image_index, image_view); | 178 | UpdateDescriptorSet(image_index, image_view); |
diff --git a/src/video_core/renderer_vulkan/vk_fsr.h b/src/video_core/renderer_vulkan/vk_fsr.h index 836592cb3..5d872861f 100644 --- a/src/video_core/renderer_vulkan/vk_fsr.h +++ b/src/video_core/renderer_vulkan/vk_fsr.h | |||
| @@ -10,13 +10,13 @@ | |||
| 10 | namespace Vulkan { | 10 | namespace Vulkan { |
| 11 | 11 | ||
| 12 | class Device; | 12 | class Device; |
| 13 | class VKScheduler; | 13 | class Scheduler; |
| 14 | 14 | ||
| 15 | class FSR { | 15 | class FSR { |
| 16 | public: | 16 | public: |
| 17 | explicit FSR(const Device& device, MemoryAllocator& memory_allocator, size_t image_count, | 17 | explicit FSR(const Device& device, MemoryAllocator& memory_allocator, size_t image_count, |
| 18 | VkExtent2D output_size); | 18 | VkExtent2D output_size); |
| 19 | VkImageView Draw(VKScheduler& scheduler, size_t image_index, VkImageView image_view, | 19 | VkImageView Draw(Scheduler& scheduler, size_t image_index, VkImageView image_view, |
| 20 | VkExtent2D input_image_extent, const Common::Rectangle<int>& crop_rect); | 20 | VkExtent2D input_image_extent, const Common::Rectangle<int>& crop_rect); |
| 21 | 21 | ||
| 22 | private: | 22 | private: |
diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp index 0179679c8..e2c51fe6f 100644 --- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp +++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp | |||
| @@ -215,8 +215,8 @@ ConfigureFuncPtr ConfigureFunc(const std::array<vk::ShaderModule, NUM_STAGES>& m | |||
| 215 | } // Anonymous namespace | 215 | } // Anonymous namespace |
| 216 | 216 | ||
| 217 | GraphicsPipeline::GraphicsPipeline( | 217 | GraphicsPipeline::GraphicsPipeline( |
| 218 | Tegra::Engines::Maxwell3D& maxwell3d_, Tegra::MemoryManager& gpu_memory_, | 218 | Tegra::Engines::Maxwell3D& maxwell3d_, Tegra::MemoryManager& gpu_memory_, Scheduler& scheduler_, |
| 219 | VKScheduler& scheduler_, BufferCache& buffer_cache_, TextureCache& texture_cache_, | 219 | BufferCache& buffer_cache_, TextureCache& texture_cache_, |
| 220 | VideoCore::ShaderNotify* shader_notify, const Device& device_, DescriptorPool& descriptor_pool, | 220 | VideoCore::ShaderNotify* shader_notify, const Device& device_, DescriptorPool& descriptor_pool, |
| 221 | VKUpdateDescriptorQueue& update_descriptor_queue_, Common::ThreadWorker* worker_thread, | 221 | VKUpdateDescriptorQueue& update_descriptor_queue_, Common::ThreadWorker* worker_thread, |
| 222 | PipelineStatistics* pipeline_statistics, RenderPassCache& render_pass_cache, | 222 | PipelineStatistics* pipeline_statistics, RenderPassCache& render_pass_cache, |
diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.h b/src/video_core/renderer_vulkan/vk_graphics_pipeline.h index b3bcb0a2d..79746c638 100644 --- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.h +++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.h | |||
| @@ -62,7 +62,7 @@ class Device; | |||
| 62 | class PipelineStatistics; | 62 | class PipelineStatistics; |
| 63 | class RenderPassCache; | 63 | class RenderPassCache; |
| 64 | class RescalingPushConstant; | 64 | class RescalingPushConstant; |
| 65 | class VKScheduler; | 65 | class Scheduler; |
| 66 | class VKUpdateDescriptorQueue; | 66 | class VKUpdateDescriptorQueue; |
| 67 | 67 | ||
| 68 | class GraphicsPipeline { | 68 | class GraphicsPipeline { |
| @@ -71,7 +71,7 @@ class GraphicsPipeline { | |||
| 71 | public: | 71 | public: |
| 72 | explicit GraphicsPipeline( | 72 | explicit GraphicsPipeline( |
| 73 | Tegra::Engines::Maxwell3D& maxwell3d, Tegra::MemoryManager& gpu_memory, | 73 | Tegra::Engines::Maxwell3D& maxwell3d, Tegra::MemoryManager& gpu_memory, |
| 74 | VKScheduler& scheduler, BufferCache& buffer_cache, TextureCache& texture_cache, | 74 | Scheduler& scheduler, BufferCache& buffer_cache, TextureCache& texture_cache, |
| 75 | VideoCore::ShaderNotify* shader_notify, const Device& device, | 75 | VideoCore::ShaderNotify* shader_notify, const Device& device, |
| 76 | DescriptorPool& descriptor_pool, VKUpdateDescriptorQueue& update_descriptor_queue, | 76 | DescriptorPool& descriptor_pool, VKUpdateDescriptorQueue& update_descriptor_queue, |
| 77 | Common::ThreadWorker* worker_thread, PipelineStatistics* pipeline_statistics, | 77 | Common::ThreadWorker* worker_thread, PipelineStatistics* pipeline_statistics, |
| @@ -125,7 +125,7 @@ private: | |||
| 125 | const Device& device; | 125 | const Device& device; |
| 126 | TextureCache& texture_cache; | 126 | TextureCache& texture_cache; |
| 127 | BufferCache& buffer_cache; | 127 | BufferCache& buffer_cache; |
| 128 | VKScheduler& scheduler; | 128 | Scheduler& scheduler; |
| 129 | VKUpdateDescriptorQueue& update_descriptor_queue; | 129 | VKUpdateDescriptorQueue& update_descriptor_queue; |
| 130 | 130 | ||
| 131 | void (*configure_func)(GraphicsPipeline*, bool){}; | 131 | void (*configure_func)(GraphicsPipeline*, bool){}; |
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp index 978e827f5..b5966be13 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp | |||
| @@ -262,7 +262,7 @@ bool GraphicsPipelineCacheKey::operator==(const GraphicsPipelineCacheKey& rhs) c | |||
| 262 | PipelineCache::PipelineCache(RasterizerVulkan& rasterizer_, Tegra::Engines::Maxwell3D& maxwell3d_, | 262 | PipelineCache::PipelineCache(RasterizerVulkan& rasterizer_, Tegra::Engines::Maxwell3D& maxwell3d_, |
| 263 | Tegra::Engines::KeplerCompute& kepler_compute_, | 263 | Tegra::Engines::KeplerCompute& kepler_compute_, |
| 264 | Tegra::MemoryManager& gpu_memory_, const Device& device_, | 264 | Tegra::MemoryManager& gpu_memory_, const Device& device_, |
| 265 | VKScheduler& scheduler_, DescriptorPool& descriptor_pool_, | 265 | Scheduler& scheduler_, DescriptorPool& descriptor_pool_, |
| 266 | VKUpdateDescriptorQueue& update_descriptor_queue_, | 266 | VKUpdateDescriptorQueue& update_descriptor_queue_, |
| 267 | RenderPassCache& render_pass_cache_, BufferCache& buffer_cache_, | 267 | RenderPassCache& render_pass_cache_, BufferCache& buffer_cache_, |
| 268 | TextureCache& texture_cache_, VideoCore::ShaderNotify& shader_notify_) | 268 | TextureCache& texture_cache_, VideoCore::ShaderNotify& shader_notify_) |
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.h b/src/video_core/renderer_vulkan/vk_pipeline_cache.h index 5d3a9e496..9e0f8bb0e 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.h +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.h | |||
| @@ -81,7 +81,7 @@ class Device; | |||
| 81 | class PipelineStatistics; | 81 | class PipelineStatistics; |
| 82 | class RasterizerVulkan; | 82 | class RasterizerVulkan; |
| 83 | class RenderPassCache; | 83 | class RenderPassCache; |
| 84 | class VKScheduler; | 84 | class Scheduler; |
| 85 | class VKUpdateDescriptorQueue; | 85 | class VKUpdateDescriptorQueue; |
| 86 | 86 | ||
| 87 | using VideoCommon::ShaderInfo; | 87 | using VideoCommon::ShaderInfo; |
| @@ -103,7 +103,7 @@ public: | |||
| 103 | explicit PipelineCache(RasterizerVulkan& rasterizer, Tegra::Engines::Maxwell3D& maxwell3d, | 103 | explicit PipelineCache(RasterizerVulkan& rasterizer, Tegra::Engines::Maxwell3D& maxwell3d, |
| 104 | Tegra::Engines::KeplerCompute& kepler_compute, | 104 | Tegra::Engines::KeplerCompute& kepler_compute, |
| 105 | Tegra::MemoryManager& gpu_memory, const Device& device, | 105 | Tegra::MemoryManager& gpu_memory, const Device& device, |
| 106 | VKScheduler& scheduler, DescriptorPool& descriptor_pool, | 106 | Scheduler& scheduler, DescriptorPool& descriptor_pool, |
| 107 | VKUpdateDescriptorQueue& update_descriptor_queue, | 107 | VKUpdateDescriptorQueue& update_descriptor_queue, |
| 108 | RenderPassCache& render_pass_cache, BufferCache& buffer_cache, | 108 | RenderPassCache& render_pass_cache, BufferCache& buffer_cache, |
| 109 | TextureCache& texture_cache, VideoCore::ShaderNotify& shader_notify_); | 109 | TextureCache& texture_cache, VideoCore::ShaderNotify& shader_notify_); |
| @@ -138,7 +138,7 @@ private: | |||
| 138 | bool build_in_parallel); | 138 | bool build_in_parallel); |
| 139 | 139 | ||
| 140 | const Device& device; | 140 | const Device& device; |
| 141 | VKScheduler& scheduler; | 141 | Scheduler& scheduler; |
| 142 | DescriptorPool& descriptor_pool; | 142 | DescriptorPool& descriptor_pool; |
| 143 | VKUpdateDescriptorQueue& update_descriptor_queue; | 143 | VKUpdateDescriptorQueue& update_descriptor_queue; |
| 144 | RenderPassCache& render_pass_cache; | 144 | RenderPassCache& render_pass_cache; |
diff --git a/src/video_core/renderer_vulkan/vk_query_cache.cpp b/src/video_core/renderer_vulkan/vk_query_cache.cpp index ea989d3bc..c0410aebd 100644 --- a/src/video_core/renderer_vulkan/vk_query_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_query_cache.cpp | |||
| @@ -26,7 +26,7 @@ constexpr VkQueryType GetTarget(QueryType type) { | |||
| 26 | 26 | ||
| 27 | } // Anonymous namespace | 27 | } // Anonymous namespace |
| 28 | 28 | ||
| 29 | QueryPool::QueryPool(const Device& device_, VKScheduler& scheduler, QueryType type_) | 29 | QueryPool::QueryPool(const Device& device_, Scheduler& scheduler, QueryType type_) |
| 30 | : ResourcePool{scheduler.GetMasterSemaphore(), GROW_STEP}, device{device_}, type{type_} {} | 30 | : ResourcePool{scheduler.GetMasterSemaphore(), GROW_STEP}, device{device_}, type{type_} {} |
| 31 | 31 | ||
| 32 | QueryPool::~QueryPool() = default; | 32 | QueryPool::~QueryPool() = default; |
| @@ -67,7 +67,7 @@ void QueryPool::Reserve(std::pair<VkQueryPool, u32> query) { | |||
| 67 | 67 | ||
| 68 | VKQueryCache::VKQueryCache(VideoCore::RasterizerInterface& rasterizer_, | 68 | VKQueryCache::VKQueryCache(VideoCore::RasterizerInterface& rasterizer_, |
| 69 | Tegra::Engines::Maxwell3D& maxwell3d_, Tegra::MemoryManager& gpu_memory_, | 69 | Tegra::Engines::Maxwell3D& maxwell3d_, Tegra::MemoryManager& gpu_memory_, |
| 70 | const Device& device_, VKScheduler& scheduler_) | 70 | const Device& device_, Scheduler& scheduler_) |
| 71 | : QueryCacheBase{rasterizer_, maxwell3d_, gpu_memory_}, device{device_}, scheduler{scheduler_}, | 71 | : QueryCacheBase{rasterizer_, maxwell3d_, gpu_memory_}, device{device_}, scheduler{scheduler_}, |
| 72 | query_pools{ | 72 | query_pools{ |
| 73 | QueryPool{device_, scheduler_, QueryType::SamplesPassed}, | 73 | QueryPool{device_, scheduler_, QueryType::SamplesPassed}, |
diff --git a/src/video_core/renderer_vulkan/vk_query_cache.h b/src/video_core/renderer_vulkan/vk_query_cache.h index fc176d907..171a9c65f 100644 --- a/src/video_core/renderer_vulkan/vk_query_cache.h +++ b/src/video_core/renderer_vulkan/vk_query_cache.h | |||
| @@ -23,13 +23,13 @@ class CachedQuery; | |||
| 23 | class Device; | 23 | class Device; |
| 24 | class HostCounter; | 24 | class HostCounter; |
| 25 | class VKQueryCache; | 25 | class VKQueryCache; |
| 26 | class VKScheduler; | 26 | class Scheduler; |
| 27 | 27 | ||
| 28 | using CounterStream = VideoCommon::CounterStreamBase<VKQueryCache, HostCounter>; | 28 | using CounterStream = VideoCommon::CounterStreamBase<VKQueryCache, HostCounter>; |
| 29 | 29 | ||
| 30 | class QueryPool final : public ResourcePool { | 30 | class QueryPool final : public ResourcePool { |
| 31 | public: | 31 | public: |
| 32 | explicit QueryPool(const Device& device, VKScheduler& scheduler, VideoCore::QueryType type); | 32 | explicit QueryPool(const Device& device, Scheduler& scheduler, VideoCore::QueryType type); |
| 33 | ~QueryPool() override; | 33 | ~QueryPool() override; |
| 34 | 34 | ||
| 35 | std::pair<VkQueryPool, u32> Commit(); | 35 | std::pair<VkQueryPool, u32> Commit(); |
| @@ -54,7 +54,7 @@ class VKQueryCache final | |||
| 54 | public: | 54 | public: |
| 55 | explicit VKQueryCache(VideoCore::RasterizerInterface& rasterizer_, | 55 | explicit VKQueryCache(VideoCore::RasterizerInterface& rasterizer_, |
| 56 | Tegra::Engines::Maxwell3D& maxwell3d_, Tegra::MemoryManager& gpu_memory_, | 56 | Tegra::Engines::Maxwell3D& maxwell3d_, Tegra::MemoryManager& gpu_memory_, |
| 57 | const Device& device_, VKScheduler& scheduler_); | 57 | const Device& device_, Scheduler& scheduler_); |
| 58 | ~VKQueryCache(); | 58 | ~VKQueryCache(); |
| 59 | 59 | ||
| 60 | std::pair<VkQueryPool, u32> AllocateQuery(VideoCore::QueryType type); | 60 | std::pair<VkQueryPool, u32> AllocateQuery(VideoCore::QueryType type); |
| @@ -65,13 +65,13 @@ public: | |||
| 65 | return device; | 65 | return device; |
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | VKScheduler& GetScheduler() const noexcept { | 68 | Scheduler& GetScheduler() const noexcept { |
| 69 | return scheduler; | 69 | return scheduler; |
| 70 | } | 70 | } |
| 71 | 71 | ||
| 72 | private: | 72 | private: |
| 73 | const Device& device; | 73 | const Device& device; |
| 74 | VKScheduler& scheduler; | 74 | Scheduler& scheduler; |
| 75 | std::array<QueryPool, VideoCore::NumQueryTypes> query_pools; | 75 | std::array<QueryPool, VideoCore::NumQueryTypes> query_pools; |
| 76 | }; | 76 | }; |
| 77 | 77 | ||
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index ce6c853c1..10f9fe7fe 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp | |||
| @@ -142,9 +142,9 @@ DrawParams MakeDrawParams(const Maxwell& regs, u32 num_instances, bool is_instan | |||
| 142 | 142 | ||
| 143 | RasterizerVulkan::RasterizerVulkan(Core::Frontend::EmuWindow& emu_window_, Tegra::GPU& gpu_, | 143 | RasterizerVulkan::RasterizerVulkan(Core::Frontend::EmuWindow& emu_window_, Tegra::GPU& gpu_, |
| 144 | Tegra::MemoryManager& gpu_memory_, | 144 | Tegra::MemoryManager& gpu_memory_, |
| 145 | Core::Memory::Memory& cpu_memory_, VKScreenInfo& screen_info_, | 145 | Core::Memory::Memory& cpu_memory_, ScreenInfo& screen_info_, |
| 146 | const Device& device_, MemoryAllocator& memory_allocator_, | 146 | const Device& device_, MemoryAllocator& memory_allocator_, |
| 147 | StateTracker& state_tracker_, VKScheduler& scheduler_) | 147 | StateTracker& state_tracker_, Scheduler& scheduler_) |
| 148 | : RasterizerAccelerated{cpu_memory_}, gpu{gpu_}, | 148 | : RasterizerAccelerated{cpu_memory_}, gpu{gpu_}, |
| 149 | gpu_memory{gpu_memory_}, maxwell3d{gpu.Maxwell3D()}, kepler_compute{gpu.KeplerCompute()}, | 149 | gpu_memory{gpu_memory_}, maxwell3d{gpu.Maxwell3D()}, kepler_compute{gpu.KeplerCompute()}, |
| 150 | screen_info{screen_info_}, device{device_}, memory_allocator{memory_allocator_}, | 150 | screen_info{screen_info_}, device{device_}, memory_allocator{memory_allocator_}, |
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.h b/src/video_core/renderer_vulkan/vk_rasterizer.h index a2d3f7015..b1c09606e 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.h +++ b/src/video_core/renderer_vulkan/vk_rasterizer.h | |||
| @@ -38,7 +38,7 @@ class Maxwell3D; | |||
| 38 | 38 | ||
| 39 | namespace Vulkan { | 39 | namespace Vulkan { |
| 40 | 40 | ||
| 41 | struct VKScreenInfo; | 41 | struct ScreenInfo; |
| 42 | 42 | ||
| 43 | class StateTracker; | 43 | class StateTracker; |
| 44 | 44 | ||
| @@ -58,9 +58,9 @@ class RasterizerVulkan final : public VideoCore::RasterizerAccelerated { | |||
| 58 | public: | 58 | public: |
| 59 | explicit RasterizerVulkan(Core::Frontend::EmuWindow& emu_window_, Tegra::GPU& gpu_, | 59 | explicit RasterizerVulkan(Core::Frontend::EmuWindow& emu_window_, Tegra::GPU& gpu_, |
| 60 | Tegra::MemoryManager& gpu_memory_, Core::Memory::Memory& cpu_memory_, | 60 | Tegra::MemoryManager& gpu_memory_, Core::Memory::Memory& cpu_memory_, |
| 61 | VKScreenInfo& screen_info_, const Device& device_, | 61 | ScreenInfo& screen_info_, const Device& device_, |
| 62 | MemoryAllocator& memory_allocator_, StateTracker& state_tracker_, | 62 | MemoryAllocator& memory_allocator_, StateTracker& state_tracker_, |
| 63 | VKScheduler& scheduler_); | 63 | Scheduler& scheduler_); |
| 64 | ~RasterizerVulkan() override; | 64 | ~RasterizerVulkan() override; |
| 65 | 65 | ||
| 66 | void Draw(bool is_indexed, bool is_instanced) override; | 66 | void Draw(bool is_indexed, bool is_instanced) override; |
| @@ -138,11 +138,11 @@ private: | |||
| 138 | Tegra::Engines::Maxwell3D& maxwell3d; | 138 | Tegra::Engines::Maxwell3D& maxwell3d; |
| 139 | Tegra::Engines::KeplerCompute& kepler_compute; | 139 | Tegra::Engines::KeplerCompute& kepler_compute; |
| 140 | 140 | ||
| 141 | VKScreenInfo& screen_info; | 141 | ScreenInfo& screen_info; |
| 142 | const Device& device; | 142 | const Device& device; |
| 143 | MemoryAllocator& memory_allocator; | 143 | MemoryAllocator& memory_allocator; |
| 144 | StateTracker& state_tracker; | 144 | StateTracker& state_tracker; |
| 145 | VKScheduler& scheduler; | 145 | Scheduler& scheduler; |
| 146 | 146 | ||
| 147 | StagingBufferPool staging_pool; | 147 | StagingBufferPool staging_pool; |
| 148 | DescriptorPool descriptor_pool; | 148 | DescriptorPool descriptor_pool; |
diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp index a7261cf97..a331ff37e 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.cpp +++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp | |||
| @@ -21,7 +21,7 @@ namespace Vulkan { | |||
| 21 | 21 | ||
| 22 | MICROPROFILE_DECLARE(Vulkan_WaitForWorker); | 22 | MICROPROFILE_DECLARE(Vulkan_WaitForWorker); |
| 23 | 23 | ||
| 24 | void VKScheduler::CommandChunk::ExecuteAll(vk::CommandBuffer cmdbuf) { | 24 | void Scheduler::CommandChunk::ExecuteAll(vk::CommandBuffer cmdbuf) { |
| 25 | auto command = first; | 25 | auto command = first; |
| 26 | while (command != nullptr) { | 26 | while (command != nullptr) { |
| 27 | auto next = command->GetNext(); | 27 | auto next = command->GetNext(); |
| @@ -35,7 +35,7 @@ void VKScheduler::CommandChunk::ExecuteAll(vk::CommandBuffer cmdbuf) { | |||
| 35 | last = nullptr; | 35 | last = nullptr; |
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | VKScheduler::VKScheduler(const Device& device_, StateTracker& state_tracker_) | 38 | Scheduler::Scheduler(const Device& device_, StateTracker& state_tracker_) |
| 39 | : device{device_}, state_tracker{state_tracker_}, | 39 | : device{device_}, state_tracker{state_tracker_}, |
| 40 | master_semaphore{std::make_unique<MasterSemaphore>(device)}, | 40 | master_semaphore{std::make_unique<MasterSemaphore>(device)}, |
| 41 | command_pool{std::make_unique<CommandPool>(*master_semaphore, device)} { | 41 | command_pool{std::make_unique<CommandPool>(*master_semaphore, device)} { |
| @@ -44,14 +44,14 @@ VKScheduler::VKScheduler(const Device& device_, StateTracker& state_tracker_) | |||
| 44 | worker_thread = std::jthread([this](std::stop_token token) { WorkerThread(token); }); | 44 | worker_thread = std::jthread([this](std::stop_token token) { WorkerThread(token); }); |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | VKScheduler::~VKScheduler() = default; | 47 | Scheduler::~Scheduler() = default; |
| 48 | 48 | ||
| 49 | void VKScheduler::Flush(VkSemaphore signal_semaphore, VkSemaphore wait_semaphore) { | 49 | void Scheduler::Flush(VkSemaphore signal_semaphore, VkSemaphore wait_semaphore) { |
| 50 | SubmitExecution(signal_semaphore, wait_semaphore); | 50 | SubmitExecution(signal_semaphore, wait_semaphore); |
| 51 | AllocateNewContext(); | 51 | AllocateNewContext(); |
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | void VKScheduler::Finish(VkSemaphore signal_semaphore, VkSemaphore wait_semaphore) { | 54 | void Scheduler::Finish(VkSemaphore signal_semaphore, VkSemaphore wait_semaphore) { |
| 55 | const u64 presubmit_tick = CurrentTick(); | 55 | const u64 presubmit_tick = CurrentTick(); |
| 56 | SubmitExecution(signal_semaphore, wait_semaphore); | 56 | SubmitExecution(signal_semaphore, wait_semaphore); |
| 57 | WaitWorker(); | 57 | WaitWorker(); |
| @@ -59,7 +59,7 @@ void VKScheduler::Finish(VkSemaphore signal_semaphore, VkSemaphore wait_semaphor | |||
| 59 | AllocateNewContext(); | 59 | AllocateNewContext(); |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | void VKScheduler::WaitWorker() { | 62 | void Scheduler::WaitWorker() { |
| 63 | MICROPROFILE_SCOPE(Vulkan_WaitForWorker); | 63 | MICROPROFILE_SCOPE(Vulkan_WaitForWorker); |
| 64 | DispatchWork(); | 64 | DispatchWork(); |
| 65 | 65 | ||
| @@ -67,7 +67,7 @@ void VKScheduler::WaitWorker() { | |||
| 67 | wait_cv.wait(lock, [this] { return work_queue.empty(); }); | 67 | wait_cv.wait(lock, [this] { return work_queue.empty(); }); |
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | void VKScheduler::DispatchWork() { | 70 | void Scheduler::DispatchWork() { |
| 71 | if (chunk->Empty()) { | 71 | if (chunk->Empty()) { |
| 72 | return; | 72 | return; |
| 73 | } | 73 | } |
| @@ -79,7 +79,7 @@ void VKScheduler::DispatchWork() { | |||
| 79 | AcquireNewChunk(); | 79 | AcquireNewChunk(); |
| 80 | } | 80 | } |
| 81 | 81 | ||
| 82 | void VKScheduler::RequestRenderpass(const Framebuffer* framebuffer) { | 82 | void Scheduler::RequestRenderpass(const Framebuffer* framebuffer) { |
| 83 | const VkRenderPass renderpass = framebuffer->RenderPass(); | 83 | const VkRenderPass renderpass = framebuffer->RenderPass(); |
| 84 | const VkFramebuffer framebuffer_handle = framebuffer->Handle(); | 84 | const VkFramebuffer framebuffer_handle = framebuffer->Handle(); |
| 85 | const VkExtent2D render_area = framebuffer->RenderArea(); | 85 | const VkExtent2D render_area = framebuffer->RenderArea(); |
| @@ -114,11 +114,11 @@ void VKScheduler::RequestRenderpass(const Framebuffer* framebuffer) { | |||
| 114 | renderpass_image_ranges = framebuffer->ImageRanges(); | 114 | renderpass_image_ranges = framebuffer->ImageRanges(); |
| 115 | } | 115 | } |
| 116 | 116 | ||
| 117 | void VKScheduler::RequestOutsideRenderPassOperationContext() { | 117 | void Scheduler::RequestOutsideRenderPassOperationContext() { |
| 118 | EndRenderPass(); | 118 | EndRenderPass(); |
| 119 | } | 119 | } |
| 120 | 120 | ||
| 121 | bool VKScheduler::UpdateGraphicsPipeline(GraphicsPipeline* pipeline) { | 121 | bool Scheduler::UpdateGraphicsPipeline(GraphicsPipeline* pipeline) { |
| 122 | if (state.graphics_pipeline == pipeline) { | 122 | if (state.graphics_pipeline == pipeline) { |
| 123 | return false; | 123 | return false; |
| 124 | } | 124 | } |
| @@ -126,7 +126,7 @@ bool VKScheduler::UpdateGraphicsPipeline(GraphicsPipeline* pipeline) { | |||
| 126 | return true; | 126 | return true; |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | bool VKScheduler::UpdateRescaling(bool is_rescaling) { | 129 | bool Scheduler::UpdateRescaling(bool is_rescaling) { |
| 130 | if (state.rescaling_defined && is_rescaling == state.is_rescaling) { | 130 | if (state.rescaling_defined && is_rescaling == state.is_rescaling) { |
| 131 | return false; | 131 | return false; |
| 132 | } | 132 | } |
| @@ -135,7 +135,7 @@ bool VKScheduler::UpdateRescaling(bool is_rescaling) { | |||
| 135 | return true; | 135 | return true; |
| 136 | } | 136 | } |
| 137 | 137 | ||
| 138 | void VKScheduler::WorkerThread(std::stop_token stop_token) { | 138 | void Scheduler::WorkerThread(std::stop_token stop_token) { |
| 139 | Common::SetCurrentThreadName("yuzu:VulkanWorker"); | 139 | Common::SetCurrentThreadName("yuzu:VulkanWorker"); |
| 140 | do { | 140 | do { |
| 141 | std::unique_ptr<CommandChunk> work; | 141 | std::unique_ptr<CommandChunk> work; |
| @@ -161,7 +161,7 @@ void VKScheduler::WorkerThread(std::stop_token stop_token) { | |||
| 161 | } while (!stop_token.stop_requested()); | 161 | } while (!stop_token.stop_requested()); |
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | void VKScheduler::AllocateWorkerCommandBuffer() { | 164 | void Scheduler::AllocateWorkerCommandBuffer() { |
| 165 | current_cmdbuf = vk::CommandBuffer(command_pool->Commit(), device.GetDispatchLoader()); | 165 | current_cmdbuf = vk::CommandBuffer(command_pool->Commit(), device.GetDispatchLoader()); |
| 166 | current_cmdbuf.Begin({ | 166 | current_cmdbuf.Begin({ |
| 167 | .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, | 167 | .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, |
| @@ -171,7 +171,7 @@ void VKScheduler::AllocateWorkerCommandBuffer() { | |||
| 171 | }); | 171 | }); |
| 172 | } | 172 | } |
| 173 | 173 | ||
| 174 | void VKScheduler::SubmitExecution(VkSemaphore signal_semaphore, VkSemaphore wait_semaphore) { | 174 | void Scheduler::SubmitExecution(VkSemaphore signal_semaphore, VkSemaphore wait_semaphore) { |
| 175 | EndPendingOperations(); | 175 | EndPendingOperations(); |
| 176 | InvalidateState(); | 176 | InvalidateState(); |
| 177 | 177 | ||
| @@ -225,25 +225,25 @@ void VKScheduler::SubmitExecution(VkSemaphore signal_semaphore, VkSemaphore wait | |||
| 225 | DispatchWork(); | 225 | DispatchWork(); |
| 226 | } | 226 | } |
| 227 | 227 | ||
| 228 | void VKScheduler::AllocateNewContext() { | 228 | void Scheduler::AllocateNewContext() { |
| 229 | // Enable counters once again. These are disabled when a command buffer is finished. | 229 | // Enable counters once again. These are disabled when a command buffer is finished. |
| 230 | if (query_cache) { | 230 | if (query_cache) { |
| 231 | query_cache->UpdateCounters(); | 231 | query_cache->UpdateCounters(); |
| 232 | } | 232 | } |
| 233 | } | 233 | } |
| 234 | 234 | ||
| 235 | void VKScheduler::InvalidateState() { | 235 | void Scheduler::InvalidateState() { |
| 236 | state.graphics_pipeline = nullptr; | 236 | state.graphics_pipeline = nullptr; |
| 237 | state.rescaling_defined = false; | 237 | state.rescaling_defined = false; |
| 238 | state_tracker.InvalidateCommandBufferState(); | 238 | state_tracker.InvalidateCommandBufferState(); |
| 239 | } | 239 | } |
| 240 | 240 | ||
| 241 | void VKScheduler::EndPendingOperations() { | 241 | void Scheduler::EndPendingOperations() { |
| 242 | query_cache->DisableStreams(); | 242 | query_cache->DisableStreams(); |
| 243 | EndRenderPass(); | 243 | EndRenderPass(); |
| 244 | } | 244 | } |
| 245 | 245 | ||
| 246 | void VKScheduler::EndRenderPass() { | 246 | void Scheduler::EndRenderPass() { |
| 247 | if (!state.renderpass) { | 247 | if (!state.renderpass) { |
| 248 | return; | 248 | return; |
| 249 | } | 249 | } |
| @@ -280,7 +280,7 @@ void VKScheduler::EndRenderPass() { | |||
| 280 | num_renderpass_images = 0; | 280 | num_renderpass_images = 0; |
| 281 | } | 281 | } |
| 282 | 282 | ||
| 283 | void VKScheduler::AcquireNewChunk() { | 283 | void Scheduler::AcquireNewChunk() { |
| 284 | std::scoped_lock lock{reserve_mutex}; | 284 | std::scoped_lock lock{reserve_mutex}; |
| 285 | if (chunk_reserve.empty()) { | 285 | if (chunk_reserve.empty()) { |
| 286 | chunk = std::make_unique<CommandChunk>(); | 286 | chunk = std::make_unique<CommandChunk>(); |
diff --git a/src/video_core/renderer_vulkan/vk_scheduler.h b/src/video_core/renderer_vulkan/vk_scheduler.h index 7a2200474..49e2b33d3 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.h +++ b/src/video_core/renderer_vulkan/vk_scheduler.h | |||
| @@ -26,10 +26,10 @@ class VKQueryCache; | |||
| 26 | 26 | ||
| 27 | /// The scheduler abstracts command buffer and fence management with an interface that's able to do | 27 | /// The scheduler abstracts command buffer and fence management with an interface that's able to do |
| 28 | /// OpenGL-like operations on Vulkan command buffers. | 28 | /// OpenGL-like operations on Vulkan command buffers. |
| 29 | class VKScheduler { | 29 | class Scheduler { |
| 30 | public: | 30 | public: |
| 31 | explicit VKScheduler(const Device& device, StateTracker& state_tracker); | 31 | explicit Scheduler(const Device& device, StateTracker& state_tracker); |
| 32 | ~VKScheduler(); | 32 | ~Scheduler(); |
| 33 | 33 | ||
| 34 | /// Sends the current execution context to the GPU. | 34 | /// Sends the current execution context to the GPU. |
| 35 | void Flush(VkSemaphore signal_semaphore = nullptr, VkSemaphore wait_semaphore = nullptr); | 35 | void Flush(VkSemaphore signal_semaphore = nullptr, VkSemaphore wait_semaphore = nullptr); |
diff --git a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp index 9a6afaca6..06f68d09a 100644 --- a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp +++ b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp | |||
| @@ -85,7 +85,7 @@ size_t Region(size_t iterator) noexcept { | |||
| 85 | } // Anonymous namespace | 85 | } // Anonymous namespace |
| 86 | 86 | ||
| 87 | StagingBufferPool::StagingBufferPool(const Device& device_, MemoryAllocator& memory_allocator_, | 87 | StagingBufferPool::StagingBufferPool(const Device& device_, MemoryAllocator& memory_allocator_, |
| 88 | VKScheduler& scheduler_) | 88 | Scheduler& scheduler_) |
| 89 | : device{device_}, memory_allocator{memory_allocator_}, scheduler{scheduler_} { | 89 | : device{device_}, memory_allocator{memory_allocator_}, scheduler{scheduler_} { |
| 90 | const vk::Device& dev = device.GetLogical(); | 90 | const vk::Device& dev = device.GetLogical(); |
| 91 | stream_buffer = dev.CreateBuffer(VkBufferCreateInfo{ | 91 | stream_buffer = dev.CreateBuffer(VkBufferCreateInfo{ |
diff --git a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.h b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.h index d4d7efa68..91dc84da8 100644 --- a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.h +++ b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.h | |||
| @@ -14,7 +14,7 @@ | |||
| 14 | namespace Vulkan { | 14 | namespace Vulkan { |
| 15 | 15 | ||
| 16 | class Device; | 16 | class Device; |
| 17 | class VKScheduler; | 17 | class Scheduler; |
| 18 | 18 | ||
| 19 | struct StagingBufferRef { | 19 | struct StagingBufferRef { |
| 20 | VkBuffer buffer; | 20 | VkBuffer buffer; |
| @@ -27,7 +27,7 @@ public: | |||
| 27 | static constexpr size_t NUM_SYNCS = 16; | 27 | static constexpr size_t NUM_SYNCS = 16; |
| 28 | 28 | ||
| 29 | explicit StagingBufferPool(const Device& device, MemoryAllocator& memory_allocator, | 29 | explicit StagingBufferPool(const Device& device, MemoryAllocator& memory_allocator, |
| 30 | VKScheduler& scheduler); | 30 | Scheduler& scheduler); |
| 31 | ~StagingBufferPool(); | 31 | ~StagingBufferPool(); |
| 32 | 32 | ||
| 33 | StagingBufferRef Request(size_t size, MemoryUsage usage); | 33 | StagingBufferRef Request(size_t size, MemoryUsage usage); |
| @@ -82,7 +82,7 @@ private: | |||
| 82 | 82 | ||
| 83 | const Device& device; | 83 | const Device& device; |
| 84 | MemoryAllocator& memory_allocator; | 84 | MemoryAllocator& memory_allocator; |
| 85 | VKScheduler& scheduler; | 85 | Scheduler& scheduler; |
| 86 | 86 | ||
| 87 | vk::Buffer stream_buffer; | 87 | vk::Buffer stream_buffer; |
| 88 | vk::DeviceMemory stream_memory; | 88 | vk::DeviceMemory stream_memory; |
diff --git a/src/video_core/renderer_vulkan/vk_swapchain.cpp b/src/video_core/renderer_vulkan/vk_swapchain.cpp index 7da81551a..68adf8be7 100644 --- a/src/video_core/renderer_vulkan/vk_swapchain.cpp +++ b/src/video_core/renderer_vulkan/vk_swapchain.cpp | |||
| @@ -64,7 +64,7 @@ VkExtent2D ChooseSwapExtent(const VkSurfaceCapabilitiesKHR& capabilities, u32 wi | |||
| 64 | 64 | ||
| 65 | } // Anonymous namespace | 65 | } // Anonymous namespace |
| 66 | 66 | ||
| 67 | VKSwapchain::VKSwapchain(VkSurfaceKHR surface_, const Device& device_, VKScheduler& scheduler_, | 67 | VKSwapchain::VKSwapchain(VkSurfaceKHR surface_, const Device& device_, Scheduler& scheduler_, |
| 68 | u32 width, u32 height, bool srgb) | 68 | u32 width, u32 height, bool srgb) |
| 69 | : surface{surface_}, device{device_}, scheduler{scheduler_} { | 69 | : surface{surface_}, device{device_}, scheduler{scheduler_} { |
| 70 | Create(width, height, srgb); | 70 | Create(width, height, srgb); |
diff --git a/src/video_core/renderer_vulkan/vk_swapchain.h b/src/video_core/renderer_vulkan/vk_swapchain.h index 6d9d8fec9..6160c6a06 100644 --- a/src/video_core/renderer_vulkan/vk_swapchain.h +++ b/src/video_core/renderer_vulkan/vk_swapchain.h | |||
| @@ -15,11 +15,11 @@ struct FramebufferLayout; | |||
| 15 | namespace Vulkan { | 15 | namespace Vulkan { |
| 16 | 16 | ||
| 17 | class Device; | 17 | class Device; |
| 18 | class VKScheduler; | 18 | class Scheduler; |
| 19 | 19 | ||
| 20 | class VKSwapchain { | 20 | class VKSwapchain { |
| 21 | public: | 21 | public: |
| 22 | explicit VKSwapchain(VkSurfaceKHR surface, const Device& device, VKScheduler& scheduler, | 22 | explicit VKSwapchain(VkSurfaceKHR surface, const Device& device, Scheduler& scheduler, |
| 23 | u32 width, u32 height, bool srgb); | 23 | u32 width, u32 height, bool srgb); |
| 24 | ~VKSwapchain(); | 24 | ~VKSwapchain(); |
| 25 | 25 | ||
| @@ -94,7 +94,7 @@ private: | |||
| 94 | 94 | ||
| 95 | const VkSurfaceKHR surface; | 95 | const VkSurfaceKHR surface; |
| 96 | const Device& device; | 96 | const Device& device; |
| 97 | VKScheduler& scheduler; | 97 | Scheduler& scheduler; |
| 98 | 98 | ||
| 99 | vk::SwapchainKHR swapchain; | 99 | vk::SwapchainKHR swapchain; |
| 100 | 100 | ||
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index 43ecb9647..ba6d81420 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp | |||
| @@ -648,7 +648,7 @@ struct RangedBarrierRange { | |||
| 648 | return VK_FORMAT_R32_UINT; | 648 | return VK_FORMAT_R32_UINT; |
| 649 | } | 649 | } |
| 650 | 650 | ||
| 651 | void BlitScale(VKScheduler& scheduler, VkImage src_image, VkImage dst_image, const ImageInfo& info, | 651 | void BlitScale(Scheduler& scheduler, VkImage src_image, VkImage dst_image, const ImageInfo& info, |
| 652 | VkImageAspectFlags aspect_mask, const Settings::ResolutionScalingInfo& resolution, | 652 | VkImageAspectFlags aspect_mask, const Settings::ResolutionScalingInfo& resolution, |
| 653 | bool up_scaling = true) { | 653 | bool up_scaling = true) { |
| 654 | const bool is_2d = info.type == ImageType::e2D; | 654 | const bool is_2d = info.type == ImageType::e2D; |
| @@ -788,7 +788,7 @@ void BlitScale(VKScheduler& scheduler, VkImage src_image, VkImage dst_image, con | |||
| 788 | } | 788 | } |
| 789 | } // Anonymous namespace | 789 | } // Anonymous namespace |
| 790 | 790 | ||
| 791 | TextureCacheRuntime::TextureCacheRuntime(const Device& device_, VKScheduler& scheduler_, | 791 | TextureCacheRuntime::TextureCacheRuntime(const Device& device_, Scheduler& scheduler_, |
| 792 | MemoryAllocator& memory_allocator_, | 792 | MemoryAllocator& memory_allocator_, |
| 793 | StagingBufferPool& staging_buffer_pool_, | 793 | StagingBufferPool& staging_buffer_pool_, |
| 794 | BlitImageHelper& blit_image_helper_, | 794 | BlitImageHelper& blit_image_helper_, |
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.h b/src/video_core/renderer_vulkan/vk_texture_cache.h index 356dcc703..69f06ee7b 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.h +++ b/src/video_core/renderer_vulkan/vk_texture_cache.h | |||
| @@ -33,11 +33,11 @@ class ImageView; | |||
| 33 | class Framebuffer; | 33 | class Framebuffer; |
| 34 | class RenderPassCache; | 34 | class RenderPassCache; |
| 35 | class StagingBufferPool; | 35 | class StagingBufferPool; |
| 36 | class VKScheduler; | 36 | class Scheduler; |
| 37 | 37 | ||
| 38 | class TextureCacheRuntime { | 38 | class TextureCacheRuntime { |
| 39 | public: | 39 | public: |
| 40 | explicit TextureCacheRuntime(const Device& device_, VKScheduler& scheduler_, | 40 | explicit TextureCacheRuntime(const Device& device_, Scheduler& scheduler_, |
| 41 | MemoryAllocator& memory_allocator_, | 41 | MemoryAllocator& memory_allocator_, |
| 42 | StagingBufferPool& staging_buffer_pool_, | 42 | StagingBufferPool& staging_buffer_pool_, |
| 43 | BlitImageHelper& blit_image_helper_, | 43 | BlitImageHelper& blit_image_helper_, |
| @@ -93,7 +93,7 @@ public: | |||
| 93 | [[nodiscard]] VkBuffer GetTemporaryBuffer(size_t needed_size); | 93 | [[nodiscard]] VkBuffer GetTemporaryBuffer(size_t needed_size); |
| 94 | 94 | ||
| 95 | const Device& device; | 95 | const Device& device; |
| 96 | VKScheduler& scheduler; | 96 | Scheduler& scheduler; |
| 97 | MemoryAllocator& memory_allocator; | 97 | MemoryAllocator& memory_allocator; |
| 98 | StagingBufferPool& staging_buffer_pool; | 98 | StagingBufferPool& staging_buffer_pool; |
| 99 | BlitImageHelper& blit_image_helper; | 99 | BlitImageHelper& blit_image_helper; |
| @@ -154,7 +154,7 @@ private: | |||
| 154 | 154 | ||
| 155 | bool NeedsScaleHelper() const; | 155 | bool NeedsScaleHelper() const; |
| 156 | 156 | ||
| 157 | VKScheduler* scheduler{}; | 157 | Scheduler* scheduler{}; |
| 158 | TextureCacheRuntime* runtime{}; | 158 | TextureCacheRuntime* runtime{}; |
| 159 | 159 | ||
| 160 | vk::Image original_image; | 160 | vk::Image original_image; |
diff --git a/src/video_core/renderer_vulkan/vk_update_descriptor.cpp b/src/video_core/renderer_vulkan/vk_update_descriptor.cpp index d29540fec..739ed7256 100644 --- a/src/video_core/renderer_vulkan/vk_update_descriptor.cpp +++ b/src/video_core/renderer_vulkan/vk_update_descriptor.cpp | |||
| @@ -12,7 +12,7 @@ | |||
| 12 | 12 | ||
| 13 | namespace Vulkan { | 13 | namespace Vulkan { |
| 14 | 14 | ||
| 15 | VKUpdateDescriptorQueue::VKUpdateDescriptorQueue(const Device& device_, VKScheduler& scheduler_) | 15 | VKUpdateDescriptorQueue::VKUpdateDescriptorQueue(const Device& device_, Scheduler& scheduler_) |
| 16 | : device{device_}, scheduler{scheduler_} { | 16 | : device{device_}, scheduler{scheduler_} { |
| 17 | payload_cursor = payload.data(); | 17 | payload_cursor = payload.data(); |
| 18 | } | 18 | } |
diff --git a/src/video_core/renderer_vulkan/vk_update_descriptor.h b/src/video_core/renderer_vulkan/vk_update_descriptor.h index d8a56b153..88b82b0cb 100644 --- a/src/video_core/renderer_vulkan/vk_update_descriptor.h +++ b/src/video_core/renderer_vulkan/vk_update_descriptor.h | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | namespace Vulkan { | 10 | namespace Vulkan { |
| 11 | 11 | ||
| 12 | class Device; | 12 | class Device; |
| 13 | class VKScheduler; | 13 | class Scheduler; |
| 14 | 14 | ||
| 15 | struct DescriptorUpdateEntry { | 15 | struct DescriptorUpdateEntry { |
| 16 | struct Empty {}; | 16 | struct Empty {}; |
| @@ -30,7 +30,7 @@ struct DescriptorUpdateEntry { | |||
| 30 | 30 | ||
| 31 | class VKUpdateDescriptorQueue final { | 31 | class VKUpdateDescriptorQueue final { |
| 32 | public: | 32 | public: |
| 33 | explicit VKUpdateDescriptorQueue(const Device& device_, VKScheduler& scheduler_); | 33 | explicit VKUpdateDescriptorQueue(const Device& device_, Scheduler& scheduler_); |
| 34 | ~VKUpdateDescriptorQueue(); | 34 | ~VKUpdateDescriptorQueue(); |
| 35 | 35 | ||
| 36 | void TickFrame(); | 36 | void TickFrame(); |
| @@ -71,7 +71,7 @@ public: | |||
| 71 | 71 | ||
| 72 | private: | 72 | private: |
| 73 | const Device& device; | 73 | const Device& device; |
| 74 | VKScheduler& scheduler; | 74 | Scheduler& scheduler; |
| 75 | 75 | ||
| 76 | DescriptorUpdateEntry* payload_cursor = nullptr; | 76 | DescriptorUpdateEntry* payload_cursor = nullptr; |
| 77 | const DescriptorUpdateEntry* upload_start = nullptr; | 77 | const DescriptorUpdateEntry* upload_start = nullptr; |