summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/core.cpp2
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp4
-rw-r--r--src/core/memory.cpp8
-rw-r--r--src/video_core/renderer_base.h8
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.cpp4
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