add detection of llvmpipe and fallback to software rendering if detected.
MODIFY
WalletWasabi.Gui/Program.cs
WalletWasabi.Gui/Program.cs
@@ -8,6 +8,7 @@ using System.IO;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
using WalletWasabi.Gui.CommandLine;
+using WalletWasabi.Gui.Utils;
using WalletWasabi.Gui.ViewModels;
using WalletWasabi.Logging;
@@ -91,6 +92,8 @@ namespace WalletWasabi.Gui
private static AppBuilder BuildAvaloniaApp()
{
+ bool useGpuLinux = true;
+
var result = AppBuilder.Configure<App>();
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
@@ -99,6 +102,22 @@ namespace WalletWasabi.Gui
.UseWin32()
.UseSkia();
}
+ else if(RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
+ {
+ try
+ {
+ var shellResult = ShellUtils.ExecuteShellCommand("glxinfo | grep renderer", "");
+
+ if(!string.IsNullOrWhiteSpace(shellResult.Output) && shellResult.Output.Contains("llvmpipe"))
+ {
+ useGpuLinux = false;
+ }
+ }
+ catch (Exception e)
+ {
+
+ }
+ }
else
{
result.UsePlatformDetect();
@@ -106,7 +125,7 @@ namespace WalletWasabi.Gui
return result
.With(new Win32PlatformOptions { AllowEglInitialization = true, UseDeferredRendering = true })
- .With(new X11PlatformOptions { UseGpu = true })
+ .With(new X11PlatformOptions { UseGpu = useGpuLinux })
.With(new AvaloniaNativePlatformOptions { UseDeferredRendering = true, UseGpu = true })
.With(new MacOSPlatformOptions { ShowInDock = true });
}

add detection of llvmpipe and fallback to software rendering if detected.