wezterm icon indicating copy to clipboard operation
wezterm copied to clipboard

Visual Artifacts with win32_system_backdrop = 'Acrylic'

Open keanesc opened this issue 1 year ago • 14 comments

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

keanesc avatar Sep 09 '24 12:09 keanesc

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'

wez avatar Sep 15 '24 13:09 wez

Yes commenting either line seems to fix it. It is only when both are uncommented and the terminal is restarted that the artifacts reappear.

keanesc avatar Sep 15 '24 15:09 keanesc

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.

wez avatar Sep 15 '24 16:09 wez

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 avatar Sep 25 '24 14:09 keanesc

@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

rafaeloledo avatar Oct 22 '24 03:10 rafaeloledo

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.

miversen33 avatar Oct 25 '24 12:10 miversen33

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 avatar Oct 28 '24 17:10 tankorsmash

@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 ?

rafaeloledo avatar Oct 31 '24 04:10 rafaeloledo

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 avatar Oct 31 '24 17:10 tankorsmash

@tankorsmash acrylic is not working good for me either

for now i gived up using it on fullscreen xD

rafaeloledo avatar Oct 31 '24 20:10 rafaeloledo

image 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

GottZ avatar Jan 09 '25 09:01 GottZ

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

Lucas256-cmd avatar Mar 15 '25 19:03 Lucas256-cmd

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

manuelsanchezto avatar May 20 '25 17:05 manuelsanchezto

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

GottZ avatar May 27 '25 17:05 GottZ

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.

mariduv avatar Jul 10 '25 00:07 mariduv