General: Correct rebase, sync gpu and context management.

This commit is contained in:
Fernando Sahmkow 2020-04-03 11:58:43 -04:00
parent bfb5244cf8
commit ad92865497
9 changed files with 45 additions and 32 deletions

View file

@ -9,12 +9,12 @@
#include "core/core.h"
#include "core/core_timing.h"
#include "core/cpu_manager.h"
#include "core/frontend/emu_window.h"
#include "core/gdbstub/gdbstub.h"
#include "core/hle/kernel/kernel.h"
#include "core/hle/kernel/physical_core.h"
#include "core/hle/kernel/scheduler.h"
#include "core/hle/kernel/thread.h"
#include "video_core/gpu.h"
namespace Core {
@ -25,10 +25,6 @@ void CpuManager::ThreadStart(CpuManager& cpu_manager, std::size_t core) {
cpu_manager.RunThread(core);
}
void CpuManager::SetRenderWindow(Core::Frontend::EmuWindow& render_window) {
this->render_window = &render_window;
}
void CpuManager::Initialize() {
running_mode = true;
if (is_multicore) {
@ -354,7 +350,7 @@ void CpuManager::RunThread(std::size_t core) {
data.is_running = false;
data.enter_barrier->Wait();
if (sc_sync_first_use) {
render_window->MakeCurrent();
system.GPU().ObtainContext();
sc_sync_first_use = false;
}
auto& scheduler = system.Kernel().CurrentScheduler();
@ -366,9 +362,6 @@ void CpuManager::RunThread(std::size_t core) {
data.exit_barrier->Wait();
data.is_paused = false;
}
if (sc_sync) {
render_window->DoneCurrent();
}
/// Time to cleanup
data.host_context->Exit();
data.enter_barrier.reset();