mate-desktop / marco

MATE default window manager
https://mate-desktop.org
GNU General Public License v2.0
196 stars 87 forks source link

feature request: alt-tab with thumbnails should pop-up instantaneously #419

Open nochiel opened 6 years ago

nochiel commented 6 years ago

Expected behaviour

Actual behaviour

The application switcher takes more than 30ms to appear and often takes several seconds to respond when many (>= 10) windows are open.

Steps to reproduce the behaviour

MATE general version

MATE 1.20.3

Package version

marco 1.20.1

Linux Distribution

raveit65 commented 6 years ago

I using nvidia graphic card (Gt 1030) and switching windows with alt-tab is normal, let's say really fast here. And i didn't noticed a slowness with my notebook (old I5 proc with intel gpu).

vkareh commented 6 years ago

If I use my Intel integrated graphics in HiDPI mode at a 4k resolution, I get the thumbnails rendering very slowly, sometimes a few seconds even!

@nochiel, in the meantime, you can enable the compositing-fast-alt-tab in gsettings (org / mate / marco / general) and it will disable the thumbnails while in compositing mode. You can also run this in your terminal: gsettings set org.mate.Marco.general compositing-fast-alt-tab true

raveit65 commented 6 years ago

Arch x86_64 GNU/Linux Linux 4.17.10-1-zen x86_64

Is this a zen VM?

nochiel commented 6 years ago

@raveit65 : Is this a zen VM?

No, bare metal.

@vkareh: Thank you.

vkareh commented 6 years ago

Okay, I think this is not really a bug (even the title says "feature request", duh). Since @nochiel mentioned not having a GPU, it's expected that compositing will be slow.

I feel that the new feature here would be to pre-render those thumbnails in an off-screen buffer whenever the windows change, and painting them only when the user engages the Alt+Tab switcher. The problem with this is that it would consume a lot more resources, as the windows would be constantly re-rendering.

I've been wanting to draw these thumbnails using cairo vectors for a while, which means that they would look much better on HiDPI displays, and rendering would happen on the GPU, so it would be faster for most users. It wouldn't necessarily address the issue that @nochiel has, though.

I can try and play with this a bit, I have some old branch with some of this work done already, so I'll look in case speed is improved.

raveit65 commented 6 years ago

I think he meant with no GPU that gpu is inside a intel proc. I would be surprise if a monitor or notebook display works without a gpu :) ....hit me if i am wrong... :)

vkareh commented 6 years ago

haha true, I guess I see "no GPU" as "no driver" using that GPU for rendering, so all compositing would happen directly on the CPU (even though there is a physical GPU streaming the rendered bits to the screen)

@nochiel - could you run the following command and paste the result here? inxi -G

vkareh@xps-15:~ $ inxi -G
Graphics:  Card-1: Intel Device 591b
           Card-2: NVIDIA GP107M [GeForce GTX 1050 Mobile]
           Display Server: x11 (X.Org 1.19.6 ) driver: intel Resolution: 3840x2160@60.00hz, 1920x1080@60.00hz
           OpenGL: renderer: Mesa DRI Intel HD Graphics 630 (Kaby Lake GT2) version: 4.5 Mesa 18.0.5
nochiel commented 6 years ago

@vkareh: @nochiel - could you run the following command and paste the result here? inxi -G

Graphics:  Card-1: Intel HD Graphics 620 driver: i915 v: kernel
           Display: x11 server: X.Org 1.20.0 driver: modesetting
           resolution: 1920x1080~60Hz
           OpenGL: renderer: Mesa DRI Intel HD Graphics 620 (Kaby Lake GT2)
           v: 4.5 Mesa 18.1.4
alexeyneu commented 5 years ago

it should be done like open-cv does . They use sse tech and you can just copy-paste their code

zeigerpuppy commented 2 years ago

It's slow rendering the thumbnails even with GPU acceleration. I'm using an RX Vega 56

Graphics:  Device-1: Advanced Micro Devices [AMD/ATI] Vega 10 XL/XT [Radeon RX Vega 56/64] driver: amdgpu v: kernel 
           Display: x11 server: X.Org 1.20.11 driver: loaded: amdgpu,ati unloaded: fbdev,modesetting,vesa resolution: 
           1: 2560x1600~60Hz 2: 1920x1080~60Hz 3: 1050x1680~60Hz 
           OpenGL: renderer: Radeon RX Vega (VEGA10 DRM 3.40.0 5.10.0-10-amd64 LLVM 11.0.1) v: 4.6 Mesa 20.3.5