Browse Source

revert system settings thread and overlay zlayer

pull/3123/head
Maufeat 7 days ago
parent
commit
83d7393cb6
  1. 4
      src/core/hle/service/am/display_layer_manager.cpp
  2. 2
      src/core/hle/service/am/window_system.cpp
  3. 18
      src/core/hle/service/set/system_settings_server.cpp
  4. 2
      src/core/hle/service/set/system_settings_server.h
  5. 3
      src/core/hle/service/vi/conductor.cpp

4
src/core/hle/service/am/display_layer_manager.cpp

@ -80,7 +80,7 @@ Result DisplayLayerManager::CreateManagedDisplayLayer(u64* out_layer_id) {
if (m_applet_id != AppletId::Application) { if (m_applet_id != AppletId::Application) {
(void)m_manager_display_service->SetLayerBlending(m_blending_enabled, *out_layer_id); (void)m_manager_display_service->SetLayerBlending(m_blending_enabled, *out_layer_id);
if (m_applet_id == AppletId::OverlayDisplay) { if (m_applet_id == AppletId::OverlayDisplay) {
(void)m_manager_display_service->SetLayerZIndex(100000, *out_layer_id);
(void)m_manager_display_service->SetLayerZIndex(-1, *out_layer_id);
(void)m_display_service->GetContainer()->SetLayerIsOverlay(*out_layer_id, true); (void)m_display_service->GetContainer()->SetLayerIsOverlay(*out_layer_id, true);
} else { } else {
(void)m_manager_display_service->SetLayerZIndex(1, *out_layer_id); (void)m_manager_display_service->SetLayerZIndex(1, *out_layer_id);
@ -129,7 +129,7 @@ Result DisplayLayerManager::IsSystemBufferSharingEnabled() {
m_manager_display_service->SetLayerBlending(m_blending_enabled, m_system_shared_layer_id); m_manager_display_service->SetLayerBlending(m_blending_enabled, m_system_shared_layer_id);
s32 initial_z = 1; s32 initial_z = 1;
if (m_applet_id == AppletId::OverlayDisplay) { if (m_applet_id == AppletId::OverlayDisplay) {
initial_z = 100000;
initial_z = -1;
(void)m_display_service->GetContainer()->SetLayerIsOverlay(m_system_shared_layer_id, true); (void)m_display_service->GetContainer()->SetLayerIsOverlay(m_system_shared_layer_id, true);
} }
m_manager_display_service->SetLayerZIndex(initial_z, m_system_shared_layer_id); m_manager_display_service->SetLayerZIndex(initial_z, m_system_shared_layer_id);

2
src/core/hle/service/am/window_system.cpp

@ -391,7 +391,7 @@ void WindowSystem::UpdateAppletStateLocked(Applet* applet, bool is_foreground, b
s32 z_index = 0; s32 z_index = 0;
const bool now_foreground = inherited_foreground; const bool now_foreground = inherited_foreground;
if (applet->applet_id == AppletId::OverlayDisplay) { if (applet->applet_id == AppletId::OverlayDisplay) {
z_index = 100000;
z_index = applet->overlay_in_foreground ? 100000 : -1;
} else if (now_foreground && !is_obscured) { } else if (now_foreground && !is_obscured) {
z_index = 2; z_index = 2;
} else if (now_foreground) { } else if (now_foreground) {

18
src/core/hle/service/set/system_settings_server.cpp

@ -362,14 +362,10 @@ ISystemSettingsServer::ISystemSettingsServer(Core::System& system_)
}; };
m_system_settings.eula_versions[0] = eula_version; m_system_settings.eula_versions[0] = eula_version;
m_system_settings.eula_version_count = 1; m_system_settings.eula_version_count = 1;
m_save_thread =
std::jthread([this](std::stop_token stop_token) { StoreSettingsThreadFunc(stop_token); });
} }
ISystemSettingsServer::~ISystemSettingsServer() { ISystemSettingsServer::~ISystemSettingsServer() {
SetSaveNeeded(); SetSaveNeeded();
m_save_thread.request_stop();
} }
bool ISystemSettingsServer::LoadSettingsFile(std::filesystem::path& path, auto&& default_func) { bool ISystemSettingsServer::LoadSettingsFile(std::filesystem::path& path, auto&& default_func) {
@ -1419,21 +1415,9 @@ void ISystemSettingsServer::StoreSettings() {
} }
} }
void ISystemSettingsServer::StoreSettingsThreadFunc(std::stop_token stop_token) {
Common::SetCurrentThreadName("SettingsStore");
while (Common::StoppableTimedWait(stop_token, std::chrono::minutes(1))) {
std::scoped_lock l{m_save_needed_mutex};
if (!std::exchange(m_save_needed, false)) {
continue;
}
StoreSettings();
}
}
void ISystemSettingsServer::SetSaveNeeded() { void ISystemSettingsServer::SetSaveNeeded() {
std::scoped_lock l{m_save_needed_mutex}; std::scoped_lock l{m_save_needed_mutex};
m_save_needed = true;
StoreSettings();
} }
Result ISystemSettingsServer::GetSettingsItemValueImpl(std::span<u8> out_value, u64& out_size, Result ISystemSettingsServer::GetSettingsItemValueImpl(std::span<u8> out_value, u64& out_size,

2
src/core/hle/service/set/system_settings_server.h

@ -165,7 +165,6 @@ public:
private: private:
bool LoadSettingsFile(std::filesystem::path& path, auto&& default_func); bool LoadSettingsFile(std::filesystem::path& path, auto&& default_func);
bool StoreSettingsFile(std::filesystem::path& path, auto& settings); bool StoreSettingsFile(std::filesystem::path& path, auto& settings);
void StoreSettingsThreadFunc(std::stop_token stop_token);
void SetupSettings(); void SetupSettings();
void StoreSettings(); void StoreSettings();
void SetSaveNeeded(); void SetSaveNeeded();
@ -175,7 +174,6 @@ private:
PrivateSettings m_private_settings{}; PrivateSettings m_private_settings{};
DeviceSettings m_device_settings{}; DeviceSettings m_device_settings{};
ApplnSettings m_appln_settings{}; ApplnSettings m_appln_settings{};
std::jthread m_save_thread;
std::mutex m_save_needed_mutex; std::mutex m_save_needed_mutex;
bool m_save_needed{false}; bool m_save_needed{false};
}; };

3
src/core/hle/service/vi/conductor.cpp

@ -110,8 +110,7 @@ s64 Conductor::GetNextTicks() const {
speed_scale = 1.f; speed_scale = 1.f;
} }
const s32 vsync_interval = 1;
const f32 effective_fps = 60.f / static_cast<f32>(vsync_interval);
const f32 effective_fps = 60.f / static_cast<f32>(m_swap_interval);
return static_cast<s64>(speed_scale * (1000000000.f / effective_fps)); return static_cast<s64>(speed_scale * (1000000000.f / effective_fps));
} }

Loading…
Cancel
Save