diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/core.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp | 4 | ||||
| -rw-r--r-- | src/core/memory.cpp | 8 | ||||
| -rw-r--r-- | src/video_core/renderer_base.h | 8 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.cpp | 4 |
5 files changed, 15 insertions, 11 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp index 29222baba..1045d8089 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp | |||
| @@ -187,7 +187,7 @@ System::ResultStatus System::Init(EmuWindow& emu_window) { | |||
| 187 | return ResultStatus::ErrorVideoCore; | 187 | return ResultStatus::ErrorVideoCore; |
| 188 | } | 188 | } |
| 189 | 189 | ||
| 190 | gpu_core = std::make_unique<Tegra::GPU>(*renderer->Rasterizer()); | 190 | gpu_core = std::make_unique<Tegra::GPU>(renderer->Rasterizer()); |
| 191 | 191 | ||
| 192 | // Create threads for CPU cores 1-3, and build thread_to_cpu map | 192 | // Create threads for CPU cores 1-3, and build thread_to_cpu map |
| 193 | // CPU core 0 is run on the main thread | 193 | // CPU core 0 is run on the main thread |
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp index 06151a1ea..4b601781f 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp | |||
| @@ -156,8 +156,8 @@ u32 nvhost_as_gpu::UnmapBuffer(const std::vector<u8>& input, std::vector<u8>& ou | |||
| 156 | auto& system_instance = Core::System::GetInstance(); | 156 | auto& system_instance = Core::System::GetInstance(); |
| 157 | 157 | ||
| 158 | // Remove this memory region from the rasterizer cache. | 158 | // Remove this memory region from the rasterizer cache. |
| 159 | system_instance.Renderer().Rasterizer()->FlushAndInvalidateRegion(params.offset, | 159 | system_instance.Renderer().Rasterizer().FlushAndInvalidateRegion(params.offset, |
| 160 | itr->second.size); | 160 | itr->second.size); |
| 161 | 161 | ||
| 162 | auto& gpu = system_instance.GPU(); | 162 | auto& gpu = system_instance.GPU(); |
| 163 | params.offset = gpu.memory_manager->UnmapBuffer(params.offset, itr->second.size); | 163 | params.offset = gpu.memory_manager->UnmapBuffer(params.offset, itr->second.size); |
diff --git a/src/core/memory.cpp b/src/core/memory.cpp index a8f08e1da..1133bcbaf 100644 --- a/src/core/memory.cpp +++ b/src/core/memory.cpp | |||
| @@ -355,16 +355,16 @@ void RasterizerFlushVirtualRegion(VAddr start, u64 size, FlushMode mode) { | |||
| 355 | const u64 overlap_size = overlap_end - overlap_start; | 355 | const u64 overlap_size = overlap_end - overlap_start; |
| 356 | 356 | ||
| 357 | for (const auto& gpu_address : gpu_addresses) { | 357 | for (const auto& gpu_address : gpu_addresses) { |
| 358 | auto* rasterizer = system_instance.Renderer().Rasterizer(); | 358 | auto& rasterizer = system_instance.Renderer().Rasterizer(); |
| 359 | switch (mode) { | 359 | switch (mode) { |
| 360 | case FlushMode::Flush: | 360 | case FlushMode::Flush: |
| 361 | rasterizer->FlushRegion(gpu_address, overlap_size); | 361 | rasterizer.FlushRegion(gpu_address, overlap_size); |
| 362 | break; | 362 | break; |
| 363 | case FlushMode::Invalidate: | 363 | case FlushMode::Invalidate: |
| 364 | rasterizer->InvalidateRegion(gpu_address, overlap_size); | 364 | rasterizer.InvalidateRegion(gpu_address, overlap_size); |
| 365 | break; | 365 | break; |
| 366 | case FlushMode::FlushAndInvalidate: | 366 | case FlushMode::FlushAndInvalidate: |
| 367 | rasterizer->FlushAndInvalidateRegion(gpu_address, overlap_size); | 367 | rasterizer.FlushAndInvalidateRegion(gpu_address, overlap_size); |
| 368 | break; | 368 | break; |
| 369 | } | 369 | } |
| 370 | } | 370 | } |
diff --git a/src/video_core/renderer_base.h b/src/video_core/renderer_base.h index effb9aed3..235de23a1 100644 --- a/src/video_core/renderer_base.h +++ b/src/video_core/renderer_base.h | |||
| @@ -46,8 +46,12 @@ public: | |||
| 46 | return m_current_frame; | 46 | return m_current_frame; |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | RasterizerInterface* Rasterizer() const { | 49 | RasterizerInterface& Rasterizer() { |
| 50 | return rasterizer.get(); | 50 | return *rasterizer; |
| 51 | } | ||
| 52 | |||
| 53 | const RasterizerInterface& Rasterizer() const { | ||
| 54 | return *rasterizer; | ||
| 51 | } | 55 | } |
| 52 | 56 | ||
| 53 | void RefreshRasterizerSetting(); | 57 | void RefreshRasterizerSetting(); |
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index 50846975f..bf9131193 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp | |||
| @@ -160,8 +160,8 @@ void RendererOpenGL::LoadFBToScreenInfo(const Tegra::FramebufferConfig& framebuf | |||
| 160 | // only allows rows to have a memory alignement of 4. | 160 | // only allows rows to have a memory alignement of 4. |
| 161 | ASSERT(framebuffer.stride % 4 == 0); | 161 | ASSERT(framebuffer.stride % 4 == 0); |
| 162 | 162 | ||
| 163 | if (!Rasterizer()->AccelerateDisplay(framebuffer, framebuffer_addr, framebuffer.stride, | 163 | if (!rasterizer->AccelerateDisplay(framebuffer, framebuffer_addr, framebuffer.stride, |
| 164 | screen_info)) { | 164 | screen_info)) { |
| 165 | // Reset the screen info's display texture to its own permanent texture | 165 | // Reset the screen info's display texture to its own permanent texture |
| 166 | screen_info.display_texture = screen_info.texture.resource.handle; | 166 | screen_info.display_texture = screen_info.texture.resource.handle; |
| 167 | 167 | ||