Browse Source

revert system settings thread and overlay zlayer

pull/3123/head
Maufeat 6 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) {
(void)m_manager_display_service->SetLayerBlending(m_blending_enabled, *out_layer_id);
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);
} else {
(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);
s32 initial_z = 1;
if (m_applet_id == AppletId::OverlayDisplay) {
initial_z = 100000;
initial_z = -1;
(void)m_display_service->GetContainer()->SetLayerIsOverlay(m_system_shared_layer_id, true);
}
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;
const bool now_foreground = inherited_foreground;
if (applet->applet_id == AppletId::OverlayDisplay) {
z_index = 100000;
z_index = applet->overlay_in_foreground ? 100000 : -1;
} else if (now_foreground && !is_obscured) {
z_index = 2;
} 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_version_count = 1;
m_save_thread =
std::jthread([this](std::stop_token stop_token) { StoreSettingsThreadFunc(stop_token); });
}
ISystemSettingsServer::~ISystemSettingsServer() {
SetSaveNeeded();
m_save_thread.request_stop();
}
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() {
std::scoped_lock l{m_save_needed_mutex};
m_save_needed = true;
StoreSettings();
}
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:
bool LoadSettingsFile(std::filesystem::path& path, auto&& default_func);
bool StoreSettingsFile(std::filesystem::path& path, auto& settings);
void StoreSettingsThreadFunc(std::stop_token stop_token);
void SetupSettings();
void StoreSettings();
void SetSaveNeeded();
@ -175,7 +174,6 @@ private:
PrivateSettings m_private_settings{};
DeviceSettings m_device_settings{};
ApplnSettings m_appln_settings{};
std::jthread m_save_thread;
std::mutex m_save_needed_mutex;
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;
}
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));
}

Loading…
Cancel
Save