yshui / picom

A lightweight compositor for X11
Other
3.94k stars 580 forks source link

Performance hit when running picom on hybrid intel/nvidia gpu laptop. #1125

Open respectablenoob-source opened 10 months ago

respectablenoob-source commented 10 months ago

Platform

Arch Linux 64bit

GPU, drivers, and screen setup

picom version

Diagnostics `**Version:** vgit-b700a ### Extensions: * Shape: Yes * XRandR: Yes * Present: Present ### Misc: * Use Overlay: No (Another compositor is already running) * Config file used: /home/ali/.config/picom/picom.conf ### Drivers (inaccurate): NVIDIA, modesetting ### Backend: glx * Driver vendors: * GLX: Mesa Project and SGI * GL: Intel * GL renderer: Mesa Intel(R) UHD Graphics (CML GT2) * Accelerated: 1 ### Backend: egl * Driver vendors: * EGL: Mesa Project * EGL driver: iris * GL: Intel * GL renderer: Mesa Intel(R) UHD Graphics (CML GT2)`

Configuration:

Configuration file ``` shadow-exclude = [ "name *= 'picom'", "class_g = 'firefox' && argb", "class_g ?= 'Notify-osd'", "class_g ?= 'Cairo-dock'", "_GTK_FRAME_EXTENTS@:c", "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" ]; backend = "glx"; glx-no-stencil = true; glx-no-stencil = true; ################################# # # Opacity # ################################# inactive-opacity = 1; active-opacity = 1; frame-opacity = 1; inactive-opacity-override = false; ################################# # Fading # ################################# # Fade windows in/out when opening/closing and when opacity changes, # unless no-fading-openclose is used. #fading = false fading = true; # Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) # fade-in-step = 0.028 fade-in-step = 0.030; # Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) # fade-out-step = 0.03 fade-out-step = 0.03; vsync=true; ################################# # Background-Blurring # ################################# # Parameters for background blurring, see the *BLUR* section for more information. blur-method = "dual_kawase"; blur-size = 12; # # blur-deviation = false # blur-strength = 9 # Blur background of semi-transparent / ARGB windows. # Bad in performance, with driver-dependent behavior. # The name of the switch may change without prior notifications. # # blur-background = false # Blur background of windows when the window frame is not opaque. # Implies: # blur-background # Bad in performance, with driver-dependent behavior. The name may change. # # blur-background-frame = false # Use fixed blur strength rather than adjusting according to window opacity. # blur-background-fixed = false # Specify the blur convolution kernel, with the following format: # example: # blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; # # blur-kern = "" blur-kern = "3x3box"; # Exclude conditions for background blur. # blur-background-exclude = [] blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'", "class_g = 'firefox' && argb", "window_type = 'popup_menu'", "_GTK_FRAME_EXTENTS@:c" ]; opacity-rule = [ "90:class_g = 'Alacritty'", "90:class_g = 'discord'", "70:class_g = 'dolphin'", "80:class_g = 'PrismLauncher'", "90:class_g = 'systemsettings'", ]; ``

Steps of reproduction

1. 2.

Expected behavior

fps remains the same without and with using picom

Current Behavior

fps takes a hit when using picom

yshui commented 5 months ago

do you have more info, what kind of performance hit? how did you measured it?

respectablenoob-source commented 5 months ago

do you have more info, what kind of performance hit? how did you measured it?

performance hit as in fps went from 144 to 100, i measured it with an fps counter and vsync tester and I can feel the hit in performance too.

yshui commented 5 months ago

Can you try running picom on NVIDIA dGPU?

respectablenoob-source commented 5 months ago

Can you try running picom on NVIDIA dGPU?

works fine with nvidia, however I would like to run picom on igpu

yshui commented 5 months ago

So you are trying to use a 5 years old integrated GPU to drive a 144 fps display? While it would be nice if picom can run smoothly on this setup (better performance is always good), I would say getting there isn't a priority right now.

respectablenoob-source commented 4 months ago

So you are trying to use a 5 years old integrated GPU to drive a 144 fps display? While it would be nice if picom can run smoothly on this setup (better performance is always good), I would say getting there isn't a priority right now.

I was just trying to replicate what's possible on Windows, didn't know so much goes into it.

AzhamProdLive commented 2 months ago

I have the same issue here but during games (I'm also too braindead to know how to make picom run on Nvidia dGPU)

I'm running on the xrender backend, and I have vsync enabled with unredir-if-possible=false

I tried killing picom to run the games, but doing so and starting the games i play just makes my entire system freeze (but I don't know if it comes from bspwm or picom directly)