summaryrefslogtreecommitdiffstats
path: root/src/core/cpu_manager.h
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2020-03-16 02:34:22 +0100
committerFernando Sahmkow <fsahmkow27@gmail.com>2020-06-27 17:35:52 +0200
commit5d3a2be04f265c2d6a8687431593029f7329060f (patch)
treefa4475df8c0d09aa9e3fe92c6e9ed8dcb5bc267f /src/core/cpu_manager.h
parentARM: Addapt to new Exclusive Monitor Interface. (diff)
downloadyuzu-5d3a2be04f265c2d6a8687431593029f7329060f.tar
yuzu-5d3a2be04f265c2d6a8687431593029f7329060f.tar.gz
yuzu-5d3a2be04f265c2d6a8687431593029f7329060f.tar.bz2
yuzu-5d3a2be04f265c2d6a8687431593029f7329060f.tar.lz
yuzu-5d3a2be04f265c2d6a8687431593029f7329060f.tar.xz
yuzu-5d3a2be04f265c2d6a8687431593029f7329060f.tar.zst
yuzu-5d3a2be04f265c2d6a8687431593029f7329060f.zip
Diffstat (limited to 'src/core/cpu_manager.h')
-rw-r--r--src/core/cpu_manager.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/core/cpu_manager.h b/src/core/cpu_manager.h
index c0e454a7d..37cef2b12 100644
--- a/src/core/cpu_manager.h
+++ b/src/core/cpu_manager.h
@@ -16,6 +16,10 @@ class Event;
class Fiber;
} // namespace Common
+namespace Core::Frontend {
+class EmuWindow;
+} // namespace Core::Frontend
+
namespace Core {
class System;
@@ -35,6 +39,12 @@ public:
void SetMulticore(bool is_multicore) {
this->is_multicore = is_multicore;
}
+
+ /// Sets if emulation is using an asynchronous GPU.
+ void SetAsyncGpu(bool is_async_gpu) {
+ this->is_async_gpu = is_async_gpu;
+ }
+
void Initialize();
void Shutdown();
@@ -51,6 +61,8 @@ public:
return current_core.load();
}
+ void SetRenderWindow(Core::Frontend::EmuWindow& render_window);
+
private:
static void GuestThreadFunction(void* cpu_manager);
static void GuestRewindFunction(void* cpu_manager);
@@ -88,10 +100,12 @@ private:
std::array<CoreData, Core::Hardware::NUM_CPU_CORES> core_data{};
+ bool is_async_gpu{};
bool is_multicore{};
std::atomic<std::size_t> current_core{};
std::size_t preemption_count{};
static constexpr std::size_t max_cycle_runs = 5;
+ Core::Frontend::EmuWindow* render_window;
System& system;
};