diff options
| author | 2018-08-03 13:56:33 -0400 | |
|---|---|---|
| committer | 2018-08-04 02:36:58 -0400 | |
| commit | 2665457f4ab3562525543f8e474bfb93ce3416ad (patch) | |
| tree | 16166950cebde8f7ac99d51a3bcdcfa2869cf627 /src/core | |
| parent | video_core: Eliminate the g_renderer global variable (diff) | |
| download | yuzu-2665457f4ab3562525543f8e474bfb93ce3416ad.tar.gz yuzu-2665457f4ab3562525543f8e474bfb93ce3416ad.tar.xz yuzu-2665457f4ab3562525543f8e474bfb93ce3416ad.zip | |
renderer_base: Make Rasterizer() return the rasterizer by reference
All calling code assumes that the rasterizer will be in a valid state,
which is a totally fine assumption. The only way the rasterizer wouldn't
be is if initialization is done incorrectly or fails, which is checked
against in System::Init().
Diffstat (limited to 'src/core')
| -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 |
3 files changed, 7 insertions, 7 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 | } |