From 55e6959f280e599a558b77ba473c7f3e1fb2fed6 Mon Sep 17 00:00:00 2001 From: Ali Chraghi Date: Sat, 3 Sep 2022 12:58:18 +0430 Subject: [PATCH] mach: supress gamemode dlopen failed error --- src/platform/native.zig | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/platform/native.zig b/src/platform/native.zig index 531bdbc2..e0589c40 100644 --- a/src/platform/native.zig +++ b/src/platform/native.zig @@ -188,21 +188,23 @@ pub const Platform = struct { } return true; } - fn initLinuxGamemode(allocator: std.mem.Allocator) error{ OutOfMemory, InvalidUtf8 }!bool { + fn initLinuxGamemode(allocator: std.mem.Allocator) error{ OutOfMemory, DLOpenFailed, InvalidUtf8 }!bool { if (builtin.os.tag == .linux) { const gamemode = @import("gamemode"); if (try activateGamemode(allocator)) { - if (gamemode.requestStart()) { - return true; - } else |err| { - std.log.err("Gamemode error {} -> {s}", .{ err, gamemode.errorString() }); - } + gamemode.requestStart() catch |err| { + if (!std.mem.containsAtLeast(u8, gamemode.errorString(), 1, "dlopen failed")) + std.log.err("Gamemode error {} -> {s}", .{ err, gamemode.errorString() }); + return false; + }; + std.log.info("Gamemode activated", .{}); + return true; } } return false; } fn deinitLinuxGamemode(platform: *Platform) void { - if (builtin.os.tag == .linux and platform.linux_gamemode_is_active) { + if (platform.linux_gamemode_is_active) { const gamemode = @import("gamemode"); gamemode.requestEnd() catch |err| { std.log.err("Gamemode error {} -> {s}", .{ err, gamemode.errorString() });