diff --git a/CMakeLists.txt b/CMakeLists.txt
index 414c9dd149..0bdfe17939 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -493,6 +493,8 @@ add_library(Common STATIC
Common/Math/math_util.h
Common/Profiler/Profiler.cpp
Common/Profiler/Profiler.h
+ Common/System/Display.cpp
+ Common/System/Display.h
Common/Thread/Executor.cpp
Common/Thread/Executor.h
Common/Thread/PrioritizedWorkQueue.cpp
@@ -1010,8 +1012,6 @@ endif()
add_library(native STATIC
${nativeExtra}
- ext/native/base/display.cpp
- ext/native/base/display.h
ext/native/file/fd_util.cpp
ext/native/file/fd_util.h
ext/native/file/file_util.cpp
diff --git a/Common/Common.vcxproj.filters b/Common/Common.vcxproj.filters
index 1df3526c49..483144fcab 100644
--- a/Common/Common.vcxproj.filters
+++ b/Common/Common.vcxproj.filters
@@ -513,6 +513,9 @@
{8321632b-8fc5-4a67-adb7-126a328d50eb}
+
+ {89ddf0bd-3fc4-4a69-87a7-b82cfc412e0a}
+
diff --git a/ext/native/base/display.cpp b/Common/System/Display.cpp
similarity index 97%
rename from ext/native/base/display.cpp
rename to Common/System/Display.cpp
index f90784b819..0e9c1ffb62 100644
--- a/ext/native/base/display.cpp
+++ b/Common/System/Display.cpp
@@ -1,4 +1,4 @@
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Common/Math/math_util.h"
int dp_xres;
diff --git a/ext/native/base/display.h b/Common/System/Display.h
similarity index 100%
rename from ext/native/base/display.h
rename to Common/System/Display.h
diff --git a/Common/Vulkan/VulkanContext.cpp b/Common/Vulkan/VulkanContext.cpp
index 17fe8bb496..7e0338936d 100644
--- a/Common/Vulkan/VulkanContext.cpp
+++ b/Common/Vulkan/VulkanContext.cpp
@@ -5,7 +5,7 @@
#include
#include
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Common/Log.h"
#include "Common/Vulkan/VulkanContext.h"
#include "Common/Vulkan/VulkanDebug.h"
diff --git a/Core/Config.cpp b/Core/Config.cpp
index a1a3b31d34..89aeb90706 100644
--- a/Core/Config.cpp
+++ b/Core/Config.cpp
@@ -24,7 +24,7 @@
#include "ppsspp_config.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "base/NativeApp.h"
#include "gfx_es2/gpu_features.h"
#include "net/http_client.h"
diff --git a/Core/Core.cpp b/Core/Core.cpp
index e79e08e48d..9748441e1a 100644
--- a/Core/Core.cpp
+++ b/Core/Core.cpp
@@ -23,7 +23,7 @@
#include
#include "base/NativeApp.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Common/TimeUtil.h"
#include "Common/Thread/ThreadUtil.h"
#include "Common/Profiler/Profiler.h"
diff --git a/GPU/Common/GPUStateUtils.cpp b/GPU/Common/GPUStateUtils.cpp
index 62cd71757a..8ccf5b2764 100644
--- a/GPU/Common/GPUStateUtils.cpp
+++ b/GPU/Common/GPUStateUtils.cpp
@@ -18,7 +18,7 @@
#include
#include
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Common/StringUtils.h"
#include "Core/Config.h"
diff --git a/GPU/Common/PresentationCommon.cpp b/GPU/Common/PresentationCommon.cpp
index 0d74e0c661..d80394f55f 100644
--- a/GPU/Common/PresentationCommon.cpp
+++ b/GPU/Common/PresentationCommon.cpp
@@ -19,7 +19,7 @@
#include
#include
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "base/NativeApp.h"
#include "thin3d/thin3d.h"
diff --git a/GPU/Common/ShaderUniforms.cpp b/GPU/Common/ShaderUniforms.cpp
index f266721050..46f6a93855 100644
--- a/GPU/Common/ShaderUniforms.cpp
+++ b/GPU/Common/ShaderUniforms.cpp
@@ -2,7 +2,7 @@
#include
#include "ShaderUniforms.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Common/Data/Convert/SmallDataConvert.h"
#include "Common/Math/lin/matrix4x4.h"
#include "Common/Math/math_util.h"
diff --git a/GPU/D3D11/FramebufferManagerD3D11.cpp b/GPU/D3D11/FramebufferManagerD3D11.cpp
index 83a2beab65..f4d4854049 100644
--- a/GPU/D3D11/FramebufferManagerD3D11.cpp
+++ b/GPU/D3D11/FramebufferManagerD3D11.cpp
@@ -19,7 +19,7 @@
#include
#include
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Common/Math/lin/matrix4x4.h"
#include "ext/native/thin3d/thin3d.h"
diff --git a/GPU/Software/SoftGpu.cpp b/GPU/Software/SoftGpu.cpp
index 33de98f955..6dd2fcd78f 100644
--- a/GPU/Software/SoftGpu.cpp
+++ b/GPU/Software/SoftGpu.cpp
@@ -15,7 +15,7 @@
// Official git repository and contact information can be found at
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "gfx_es2/gpu_features.h"
#include "GPU/GPUState.h"
diff --git a/GPU/Vulkan/FramebufferManagerVulkan.cpp b/GPU/Vulkan/FramebufferManagerVulkan.cpp
index eec77859cb..41e47ae259 100644
--- a/GPU/Vulkan/FramebufferManagerVulkan.cpp
+++ b/GPU/Vulkan/FramebufferManagerVulkan.cpp
@@ -19,7 +19,7 @@
#include "Common/Profiler/Profiler.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Common/Math/lin/matrix4x4.h"
#include "Common/Data/Convert/SmallDataConvert.h"
#include "ext/native/thin3d/thin3d.h"
diff --git a/Qt/QtMain.h b/Qt/QtMain.h
index 2fce102089..3a1cd3a750 100644
--- a/Qt/QtMain.h
+++ b/Qt/QtMain.h
@@ -22,7 +22,7 @@ QTM_USE_NAMESPACE
#include
#include
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Common/TimeUtil.h"
#include "file/zip_read.h"
#include "gfx/gl_common.h"
diff --git a/Qt/mainwindow.cpp b/Qt/mainwindow.cpp
index 544eaa93ed..fe48956f2e 100644
--- a/Qt/mainwindow.cpp
+++ b/Qt/mainwindow.cpp
@@ -7,7 +7,7 @@
#include
#include
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "base/NativeApp.h"
#include "Core/MIPS/MIPSDebugInterface.h"
#include "Core/Debugger/SymbolMap.h"
diff --git a/SDL/SDLGLGraphicsContext.cpp b/SDL/SDLGLGraphicsContext.cpp
index b5650590b7..2d41fd1c4f 100644
--- a/SDL/SDLGLGraphicsContext.cpp
+++ b/SDL/SDLGLGraphicsContext.cpp
@@ -4,7 +4,7 @@
#include "Core/ConfigValues.h"
#include "Core/System.h"
#include "base/NativeApp.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "gfx_es2/gpu_features.h"
#include "thin3d/thin3d_create.h"
diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp
index ffa534c3af..37b3ad12af 100644
--- a/SDL/SDLMain.cpp
+++ b/SDL/SDLMain.cpp
@@ -20,7 +20,7 @@ SDLJoystick *joystick = NULL;
#include
#include
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "base/NativeApp.h"
#include "ext/glslang/glslang/Public/ShaderLang.h"
#include "image/png_load.h"
diff --git a/SDL/SDLVulkanGraphicsContext.cpp b/SDL/SDLVulkanGraphicsContext.cpp
index 9bc9bf925b..77bb943ecc 100644
--- a/SDL/SDLVulkanGraphicsContext.cpp
+++ b/SDL/SDLVulkanGraphicsContext.cpp
@@ -1,7 +1,7 @@
#include "Core/Config.h"
#include "Core/ConfigValues.h"
#include "base/NativeApp.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "thin3d/thin3d.h"
#include "thin3d/thin3d_create.h"
#include "thin3d/VulkanRenderManager.h"
diff --git a/UI/ComboKeyMappingScreen.cpp b/UI/ComboKeyMappingScreen.cpp
index e407df4625..672b760df8 100644
--- a/UI/ComboKeyMappingScreen.cpp
+++ b/UI/ComboKeyMappingScreen.cpp
@@ -15,7 +15,7 @@
// Official git repository and contact information can be found at
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "gfx_es2/draw_buffer.h"
#include "gfx/texture_atlas.h"
#include "ui/ui_context.h"
diff --git a/UI/ControlMappingScreen.cpp b/UI/ControlMappingScreen.cpp
index 542a542f38..518d805292 100644
--- a/UI/ControlMappingScreen.cpp
+++ b/UI/ControlMappingScreen.cpp
@@ -19,7 +19,7 @@
#include
#include
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "base/NativeApp.h"
#include "gfx/texture_atlas.h"
#include "ui/root.h"
diff --git a/UI/DevScreens.cpp b/UI/DevScreens.cpp
index 0423002a36..7f7bf849fd 100644
--- a/UI/DevScreens.cpp
+++ b/UI/DevScreens.cpp
@@ -18,7 +18,7 @@
#include
#include "ppsspp_config.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "base/NativeApp.h"
#include "gfx_es2/gpu_features.h"
#include "Common/Data/Text/I18n.h"
diff --git a/UI/DisplayLayoutScreen.cpp b/UI/DisplayLayoutScreen.cpp
index 4ae30dd4ad..1df7c0d072 100644
--- a/UI/DisplayLayoutScreen.cpp
+++ b/UI/DisplayLayoutScreen.cpp
@@ -18,7 +18,7 @@
#include
#include
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "base/NativeApp.h"
#include "gfx/texture_atlas.h"
#include "gfx_es2/draw_buffer.h"
diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp
index b848d699bc..1856580ce8 100644
--- a/UI/EmuScreen.cpp
+++ b/UI/EmuScreen.cpp
@@ -19,7 +19,7 @@
#include
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "base/NativeApp.h"
#include "Common/Profiler/Profiler.h"
diff --git a/UI/GPUDriverTestScreen.h b/UI/GPUDriverTestScreen.h
index a241e81bae..0f5de4a8b0 100644
--- a/UI/GPUDriverTestScreen.h
+++ b/UI/GPUDriverTestScreen.h
@@ -1,6 +1,6 @@
#pragma once
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "ui/ui_context.h"
#include "ui/view.h"
#include "ui/viewgroup.h"
diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp
index 9804387f7e..77ed61bed0 100644
--- a/UI/GameSettingsScreen.cpp
+++ b/UI/GameSettingsScreen.cpp
@@ -19,7 +19,7 @@
#include
-#include "base/display.h" // Only to check screen aspect ratio with pixel_yres/pixel_xres
+#include "Common/System/Display.h" // Only to check screen aspect ratio with pixel_yres/pixel_xres
#include "base/NativeApp.h"
#include "Common/Data/Color/RGBAUtil.h"
diff --git a/UI/GamepadEmu.cpp b/UI/GamepadEmu.cpp
index 0277c34592..8b4d4b8b4a 100644
--- a/UI/GamepadEmu.cpp
+++ b/UI/GamepadEmu.cpp
@@ -18,7 +18,7 @@
#include
#include "Common/Data/Color/RGBAUtil.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "base/NativeApp.h"
#include "gfx/texture_atlas.h"
#include "Common/Math/math_util.h"
diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp
index 645a4255cd..04aa540a49 100644
--- a/UI/MainScreen.cpp
+++ b/UI/MainScreen.cpp
@@ -20,7 +20,7 @@
#include "ppsspp_config.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "base/NativeApp.h"
#include "gfx/texture_atlas.h"
#include "gfx_es2/draw_buffer.h"
diff --git a/UI/MiscScreens.cpp b/UI/MiscScreens.cpp
index 5a861c3d58..86bc8360b2 100644
--- a/UI/MiscScreens.cpp
+++ b/UI/MiscScreens.cpp
@@ -21,7 +21,7 @@
#include
#include "base/NativeApp.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "gfx_es2/draw_buffer.h"
#include "Common/Math/curves.h"
#include "ui/ui_context.h"
diff --git a/UI/NativeApp.cpp b/UI/NativeApp.cpp
index 0eb2977cbc..b4bd291126 100644
--- a/UI/NativeApp.cpp
+++ b/UI/NativeApp.cpp
@@ -43,7 +43,7 @@
#include "Windows/CaptureDevice.h"
#endif
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "base/NativeApp.h"
#include "net/http_client.h"
#include "net/resolve.h"
diff --git a/UI/ReportScreen.cpp b/UI/ReportScreen.cpp
index 59765847f0..bf63825722 100644
--- a/UI/ReportScreen.cpp
+++ b/UI/ReportScreen.cpp
@@ -17,7 +17,7 @@
#include
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "base/NativeApp.h"
// TODO: For text align flags, probably shouldn't be in gfx_es2/...
#include "gfx_es2/draw_buffer.h"
diff --git a/UWP/CommonUWP/CommonUWP.vcxproj b/UWP/CommonUWP/CommonUWP.vcxproj
index 9156bfa093..af2508dc88 100644
--- a/UWP/CommonUWP/CommonUWP.vcxproj
+++ b/UWP/CommonUWP/CommonUWP.vcxproj
@@ -453,6 +453,7 @@
+
@@ -529,6 +530,7 @@
+
diff --git a/UWP/CommonUWP/CommonUWP.vcxproj.filters b/UWP/CommonUWP/CommonUWP.vcxproj.filters
index 58ec4db297..189cf456c9 100644
--- a/UWP/CommonUWP/CommonUWP.vcxproj.filters
+++ b/UWP/CommonUWP/CommonUWP.vcxproj.filters
@@ -61,6 +61,9 @@
{6673c122-d7ed-4ccc-969a-12d317ee1f93}
+
+ {661f7d9d-5922-48d6-88ea-2f24bb57419f}
+
@@ -246,6 +249,9 @@
Profiler
+
+ System
+
@@ -437,6 +443,9 @@
Profiler
+
+ System
+
diff --git a/UWP/PPSSPP_UWPMain.cpp b/UWP/PPSSPP_UWPMain.cpp
index 6188606368..6f48714b88 100644
--- a/UWP/PPSSPP_UWPMain.cpp
+++ b/UWP/PPSSPP_UWPMain.cpp
@@ -7,7 +7,7 @@
#include "file/file_util.h"
#include "net/http_client.h"
#include "net/resolve.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "thin3d/thin3d_create.h"
#include "Common/Common.h"
diff --git a/Windows/Debugger/CtrlDisAsmView.cpp b/Windows/Debugger/CtrlDisAsmView.cpp
index c37127f0dc..e26f9644d8 100644
--- a/Windows/Debugger/CtrlDisAsmView.cpp
+++ b/Windows/Debugger/CtrlDisAsmView.cpp
@@ -22,7 +22,7 @@
#include "Common/CommonWindows.h"
#include "Common/Data/Encoding/Utf8.h"
#include "ext/xxhash.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include
#include
diff --git a/Windows/Debugger/CtrlMemView.cpp b/Windows/Debugger/CtrlMemView.cpp
index 4dda0822e1..7ae71ef331 100644
--- a/Windows/Debugger/CtrlMemView.cpp
+++ b/Windows/Debugger/CtrlMemView.cpp
@@ -9,7 +9,7 @@
#include "Windows/W32Util/Misc.h"
#include "Windows/InputBox.h"
#include "Windows/main.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Debugger_Disasm.h"
#include "DebuggerShared.h"
diff --git a/Windows/Debugger/CtrlRegisterList.cpp b/Windows/Debugger/CtrlRegisterList.cpp
index 791838cdd3..02992e5f28 100644
--- a/Windows/Debugger/CtrlRegisterList.cpp
+++ b/Windows/Debugger/CtrlRegisterList.cpp
@@ -3,7 +3,7 @@
#include
#include
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Common/Data/Encoding/Utf8.h"
#include "Windows/resource.h"
#include "Core/MemMap.h"
diff --git a/Windows/Debugger/Debugger_MemoryDlg.cpp b/Windows/Debugger/Debugger_MemoryDlg.cpp
index 9604616f01..3302786160 100644
--- a/Windows/Debugger/Debugger_MemoryDlg.cpp
+++ b/Windows/Debugger/Debugger_MemoryDlg.cpp
@@ -4,7 +4,7 @@
#include
#include "..\resource.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Common/Data/Encoding/Utf8.h"
#include "Core/Debugger/SymbolMap.h"
diff --git a/Windows/GEDebugger/CtrlDisplayListView.cpp b/Windows/GEDebugger/CtrlDisplayListView.cpp
index 741ca4b3af..78b3373a5e 100644
--- a/Windows/GEDebugger/CtrlDisplayListView.cpp
+++ b/Windows/GEDebugger/CtrlDisplayListView.cpp
@@ -1,4 +1,4 @@
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Windows/GEDebugger/CtrlDisplayListView.h"
#include "Windows/GEDebugger/GEDebugger.h"
#include "Windows/InputBox.h"
diff --git a/Windows/GPU/D3D11Context.cpp b/Windows/GPU/D3D11Context.cpp
index 9ced64d60c..32d158c54e 100644
--- a/Windows/GPU/D3D11Context.cpp
+++ b/Windows/GPU/D3D11Context.cpp
@@ -5,7 +5,7 @@
#include
#include "Common/Log.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Common/Data/Encoding/Utf8.h"
#include "Common/Data/Text/I18n.h"
diff --git a/Windows/GPU/D3D9Context.cpp b/Windows/GPU/D3D9Context.cpp
index be91557b47..daeb0fd86b 100644
--- a/Windows/GPU/D3D9Context.cpp
+++ b/Windows/GPU/D3D9Context.cpp
@@ -5,7 +5,7 @@
#include "gfx/d3d9_state.h"
-#include "base/display.h"
+#include "Common/System/Display.h"
#include "Common/Data/Encoding/Utf8.h"
#include "Common/Data/Text/I18n.h"
diff --git a/Windows/MainWindow.cpp b/Windows/MainWindow.cpp
index 3178e1adfe..560073b65e 100644
--- a/Windows/MainWindow.cpp
+++ b/Windows/MainWindow.cpp
@@ -31,7 +31,7 @@
#include