Visual Artifacts with win32_system_backdrop = 'Acrylic'
What Operating System(s) are you seeing this problem on?
Windows
Which Wayland compositor or X11 Window manager(s) are you using?
Windows 11 GlazeWM
WezTerm version
WezTerm-windows-20240812-215703-30345b36
Did you try the latest nightly build to see if the issue is better (or worse!) than your current version?
Yes, and I updated the version box above to show the version of the nightly that I tried
Describe the bug
While typing artifacts appear at random occasions.
https://github.com/user-attachments/assets/bbe6f4b1-83a7-46c9-b701-23a7e5269d8e
Tried the nightly build (.zip) but saw no difference.
To Reproduce
It's occurred since installation. Tried both the setup.exe as well as the .zip
Configuration
Issue occurs with no config as well
-- Pull in the wezterm API
local wezterm = require 'wezterm'
-- This will hold the configuration.
local config = wezterm.config_builder()
-- This is where you actually apply your config choices
-- Colour Scheme
config.force_reverse_video_cursor = true
local function get_appearance()
if wezterm.gui then
return wezterm.gui.get_appearance()
end
return 'Dark'
end
local function scheme_for_appearance(appearance)
if appearance:find 'Dark' then
return 'tokyonight_night'
else
return 'tokyonight_day'
end
end
config.color_scheme = scheme_for_appearance(get_appearance())
config.window_background_opacity = 0.7
config.win32_system_backdrop = 'Acrylic'
-- Font
config.font = wezterm.font_with_fallback {
-- { family = 'Iosevka Term', weight = 'Medium' },
'Cascadia Code',
'JetBrainsMono NF',
}
config.font_size = 13
config.line_height = 1.2
-- Keychars
config.use_dead_keys = false
-- UI
config.use_fancy_tab_bar = false
config.tab_bar_at_bottom = true
config.hide_tab_bar_if_only_one_tab = true
config.enable_scroll_bar = false
config.window_padding = {
left = 0,
right = 0,
top = 0,
bottom = 0,
}
config.scrollback_lines = 7000
config.window_decorations = "RESIZE"
-- Shell
--- Set Pwsh as the default on Windows
config.default_prog = { 'pwsh.exe', '-NoLogo' }
config.launch_menu = {
-- {
-- label = 'PowerShell',
-- args = { 'powershell.exe', '-NoLogo' },
-- },
{
label = 'Pwsh',
args = { 'pwsh.exe', '-NoLogo' },
}, {
label = 'Command Prompt',
args = { 'cmd.exe', '-NoLogo' },
},
-- {
-- label = 'Ubuntu',
-- args = { 'wsl.exe -d Ubuntu-22.04', '-NoLogo' },
-- },
}
-- Command Palette
config.command_palette_font_size = 13
config.command_palette_bg_color = "#394b70"
config.command_palette_fg_color = "#828bb8"
config.ui_key_cap_rendering = "WindowsSymbols"
-- config.enable_kitty_graphics=true
-- and finally, return the configuration to wezterm
return config
Expected Behavior
No response
Logs
11:19:22.370 INFO wezterm_gui::termwindow > clicking http://www.slf4j.org/codes.html#StaticLoggerBinder
Anything else?
No response
If you try commenting out one or the other (or both) of these lines, does it get better?
config.window_background_opacity = 0.7
config.win32_system_backdrop = 'Acrylic'
Yes commenting either line seems to fix it. It is only when both are uncommented and the terminal is restarted that the artifacts reappear.
Sounds like an issue with your graphics drivers, as those options don't change the way that wezterm directly works, they just set flags for your OS compositor.
Sure, I'll try updating my graphics drivers and see if that resolves the issue. If it doesn't, do you have any other suggestions for things I could check?
@keanesc
Using Ryzen 5600G
Before driver update
https://github.com/user-attachments/assets/ae48c491-d29e-4c29-9609-e108626328d1
After
https://github.com/user-attachments/assets/143eb8b6-6635-44fe-9c9c-7612210833fa
I am experiencing the same issues. I do not have config.win32_system_backdrop = 'Acrylic' in my config, just opacity.
https://github.com/miversen33/miversen-dotfiles/blob/4b76297f072e18bfca4a64cf57b584d4bf73a420/terminals/wezterm/wezterm.lua
Not sure whats going on but resizing my window sometimes makes it go away. Edit:
In my case, the issue is not consistent, it sometimes comes and sometimes goes.
I'm on Windows 10 using Nvidia's 32.0.15.6094 driver (released in August 2024), and I'm having artifacts on screen when Wezterm is maximized but not in the foreground.
I can't reproduce it on command, but stops when I make Wezterm windowed. I do not have opacity enabled, but I do have the Acrylic backdrop enabled. I'll disable the Acrylic backdrop, and see if it helps at all.
edit: seems to have stopped the blurriness in other apps, thanks!
@tankorsmash
I don't know if it's the same issue that we're talking. But i've "discovered" that mine is with Alt-Tab feature.
Maybe it's caused by the applications box that pops up. I wonder if it's causing this blinking.
Recorded with obs using Alt-Tab:
Notice that the recording even collapse and get black screen
https://github.com/user-attachments/assets/8b2a52be-687a-46e7-a3f4-a2e351394e17
Recorded with smartphone:
Using Alt-Tab until 00:13, then using Alt-Esc.
https://github.com/user-attachments/assets/097512fe-c868-40aa-887b-1a5a8cf62d29
Recorded with obs using Alt-Esc which doesn't pops the windows boxes:
https://github.com/user-attachments/assets/e2ac3b99-5c63-48ec-9d70-7eaac1e27b64
Overall i think it's a "how Windows handles fullscreen apps" problem, game developers quite often mention this. Any thoughts @wez ?
Doesn't quite look like the effects I'm seeing locally, but I don't have them anymore since removing that flag. Must be an issue lower level though!
@tankorsmash acrylic is not working good for me either
for now i gived up using it on fullscreen xD
ez reproducible on windows 10 without any acrylic effects.
Simply start wezterm and resize it. voila, you see the artifacts.
local wezterm = require 'wezterm'
local act = wezterm.action
local config = wezterm.config_builder()
config.font = wezterm.font('Pragmasevka Nerd Font')
--config.color_scheme = 'rose-pine'
config.color_scheme = 'zenwritten_dark'
--config.color_scheme = 'ayu'
config.ssh_backend = "Ssh2"
config.keys = {
--{ key = "Insert", mods = "SHIFT", action = act.PasteFrom("PrimarySelection") }
{ key = "Insert", mods = "SHIFT", action = act.PasteFrom("Clipboard") }
}
return config
I'm having the same issue, without that backdrop what that even is. And without opacity changes. It is worse if the window is smaller and almost dissapears if it is bigger. And with opacity change to like 0.9 it's so much worse, artifacts everywhere at the bottom of the terminal and it appears with every character typed or if I even move my mouse.
https://github.com/user-attachments/assets/96a4a750-3881-447c-b712-8310faec9197
I just stumbled into this issue and found this Wez's solution that fixed a really similar issue of mine while using wezterm and GlazeWM on Windows 11. Just remember to restart the terminal afterwards to check it
I just stumbled into this issue and found this Wez's solution
too bad I ditched windows all together. I am indeed on Intel XE tho, so I can no longer verify it but something tells me this corelation is spot on.
I do know intel xe gpu's are quite picky when it comes to pixel shaders. since it's in a GL context, I assume this artifact comes from incompatibilities with intel within a fragment shader.
it works flawlessly on archlinux™ in kde btw.
*-display
description: VGA compatible controller
product: TigerLake-LP GT2 [Iris Xe Graphics]
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
logical name: /dev/fb0
version: 01
width: 64 bits
clock: 33MHz
capabilities: vga_controller bus_master cap_list rom fb
configuration: depth=32 driver=i915 latency=0 resolution=1920,1080
I was seeing these artifacts in Windows on an Intel Iris Xe laptop, no acrylic, and setting WebGpu as the renderer does clear it up, but there seems to be an upstream bug rendering fonts a little heavier this way. I was trying a few combinations of font options to find something I was ok with, and noticed prefer_egl was false in my effective config, while the online docs for the latest release suggest it should have defaulted to true. (Even the changelog says this is intended to default true here? But at a glance config/src/config.rs looks like the opposite?) And it looks like this would work around a less-than-perfect vendor driver.
So, I switched WebGpu back off, set prefer_egl to true, confimed on the debug screen that it's using ANGLE now, and no artifacts nor thick fonts.