summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/core.cpp4
-rw-r--r--src/core/frontend/emu_window.h7
-rw-r--r--src/core/settings.h9
-rw-r--r--src/core/telemetry_session.cpp12
4 files changed, 30 insertions, 2 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index c53d122be..0eb0c0dca 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -268,7 +268,9 @@ struct System::Impl {
268 is_powered_on = false; 268 is_powered_on = false;
269 exit_lock = false; 269 exit_lock = false;
270 270
271 gpu_core->WaitIdle(); 271 if (gpu_core) {
272 gpu_core->WaitIdle();
273 }
272 274
273 // Shutdown emulation session 275 // Shutdown emulation session
274 renderer.reset(); 276 renderer.reset();
diff --git a/src/core/frontend/emu_window.h b/src/core/frontend/emu_window.h
index 4a9912641..3376eedc5 100644
--- a/src/core/frontend/emu_window.h
+++ b/src/core/frontend/emu_window.h
@@ -75,6 +75,13 @@ public:
75 return nullptr; 75 return nullptr;
76 } 76 }
77 77
78 /// Returns if window is shown (not minimized)
79 virtual bool IsShown() const = 0;
80
81 /// Retrieves Vulkan specific handlers from the window
82 virtual void RetrieveVulkanHandlers(void* get_instance_proc_addr, void* instance,
83 void* surface) const = 0;
84
78 /** 85 /**
79 * Signal that a touch pressed event has occurred (e.g. mouse click pressed) 86 * Signal that a touch pressed event has occurred (e.g. mouse click pressed)
80 * @param framebuffer_x Framebuffer x-coordinate that was pressed 87 * @param framebuffer_x Framebuffer x-coordinate that was pressed
diff --git a/src/core/settings.h b/src/core/settings.h
index 421e76f5f..e1a9a0ffa 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -371,6 +371,11 @@ enum class SDMCSize : u64 {
371 S1TB = 0x10000000000ULL, 371 S1TB = 0x10000000000ULL,
372}; 372};
373 373
374enum class RendererBackend {
375 OpenGL = 0,
376 Vulkan = 1,
377};
378
374struct Values { 379struct Values {
375 // System 380 // System
376 bool use_docked_mode; 381 bool use_docked_mode;
@@ -419,6 +424,10 @@ struct Values {
419 SDMCSize sdmc_size; 424 SDMCSize sdmc_size;
420 425
421 // Renderer 426 // Renderer
427 RendererBackend renderer_backend;
428 bool renderer_debug;
429 int vulkan_device;
430
422 float resolution_factor; 431 float resolution_factor;
423 bool use_frame_limit; 432 bool use_frame_limit;
424 u16 frame_limit; 433 u16 frame_limit;
diff --git a/src/core/telemetry_session.cpp b/src/core/telemetry_session.cpp
index 320e8ad73..0e72d31cd 100644
--- a/src/core/telemetry_session.cpp
+++ b/src/core/telemetry_session.cpp
@@ -46,6 +46,16 @@ static u64 GenerateTelemetryId() {
46 return telemetry_id; 46 return telemetry_id;
47} 47}
48 48
49static const char* TranslateRenderer(Settings::RendererBackend backend) {
50 switch (backend) {
51 case Settings::RendererBackend::OpenGL:
52 return "OpenGL";
53 case Settings::RendererBackend::Vulkan:
54 return "Vulkan";
55 }
56 return "Unknown";
57}
58
49u64 GetTelemetryId() { 59u64 GetTelemetryId() {
50 u64 telemetry_id{}; 60 u64 telemetry_id{};
51 const std::string filename{FileUtil::GetUserPath(FileUtil::UserPath::ConfigDir) + 61 const std::string filename{FileUtil::GetUserPath(FileUtil::UserPath::ConfigDir) +
@@ -169,7 +179,7 @@ void TelemetrySession::AddInitialInfo(Loader::AppLoader& app_loader) {
169 AddField(field_type, "Audio_SinkId", Settings::values.sink_id); 179 AddField(field_type, "Audio_SinkId", Settings::values.sink_id);
170 AddField(field_type, "Audio_EnableAudioStretching", Settings::values.enable_audio_stretching); 180 AddField(field_type, "Audio_EnableAudioStretching", Settings::values.enable_audio_stretching);
171 AddField(field_type, "Core_UseMultiCore", Settings::values.use_multi_core); 181 AddField(field_type, "Core_UseMultiCore", Settings::values.use_multi_core);
172 AddField(field_type, "Renderer_Backend", "OpenGL"); 182 AddField(field_type, "Renderer_Backend", TranslateRenderer(Settings::values.renderer_backend));
173 AddField(field_type, "Renderer_ResolutionFactor", Settings::values.resolution_factor); 183 AddField(field_type, "Renderer_ResolutionFactor", Settings::values.resolution_factor);
174 AddField(field_type, "Renderer_UseFrameLimit", Settings::values.use_frame_limit); 184 AddField(field_type, "Renderer_UseFrameLimit", Settings::values.use_frame_limit);
175 AddField(field_type, "Renderer_FrameLimit", Settings::values.frame_limit); 185 AddField(field_type, "Renderer_FrameLimit", Settings::values.frame_limit);