Saída em um console virtual (tty1) ridiculamente lento; possível problema de aceleração de gráficos

5

Algum tempo atrás, em um computador antigo rodando o Ubuntu, notei que a saída em um console virtual (por exemplo, tty1 ) é lenta. Não foi um problema lá e quase imperceptível.

Mas agora no meu novo laptop com o Manjaro Linux (derivado do Arch) às vezes é ridiculamente lento. Acho que é diferente da situação descrita e explicada aqui , portanto, minha pergunta não é uma duplicata. Eu suspeito de problema de aceleração de gráficos.

Descobri que o problema é strongmente afetado pela velocidade do clock do processador. Este vídeo mostra como se parece em 800 MHz.

Informações possivelmente relevantes de dmesg :

[    0.474770] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    0.478826] vesafb: mode is 1920x1080x32, linelength=7680, pages=0
[    0.478827] vesafb: scrolling: redraw
[    0.478828] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    0.478843] vesafb: framebuffer at 0xa0000000, mapped to 0xffffc90001000000, using 8128k, total 8128k
[    0.661095] Console: switching to colour frame buffer device 240x67
[    0.842325] fb0: VESA VGA frame buffer device
[    2.301199] fb: switching to inteldrmfb from VESA VGA
[    2.363655] fbcon: inteldrmfb (fb0) is primary device
[    2.363698] Console: switching to colour frame buffer device 240x67
[    2.363705] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device

A parte scrolling: redraw parece interessante, embora eu não tenha certeza se significa alguma coisa, já que ela diz switching to inteldrmfb from VESA VGA .

Saída de fbset -i :

mode "1920x1080" 
    geometry 1920 1080 1920 1080 32 
    timings 0 0 0 0 0 0 0 
    accel true 
    rgba 8/16,8/8,8/0,0/0 
endmode 

Frame buffer device information: 
    Name : inteldrmfb 
    Address : 0xa0000000 
    Size : 8294400 
    Type : PACKED PIXELS 
    Visual : TRUECOLOR 
    XPanStep : 1 
    YPanStep : 1 
    YWrapStep : 0 
    LineLength : 7680 
    Accelerator : No

Alguns testes adicionais para documentar a diferença:

  • time python -c "for i in range(100): print(\"hi\")"
    me mostra 0.03s on xfce4-terminal e 0.23s em um console virtual.

  • time echo -e "3c" e 0s on xfce4-terminal e 0.14s - 0.16s em um console virtual.

  • time man gpm (e pressionando Q enquanto abre)
    instantaneamente em xfce4-terminal , 3s - 4s em um console virtual.

Isso é especialmente frustrante ao percorrer man páginas. Curiosamente nano não parece ser afetado por isso.

Como fazer com que meus consoles virtuais processem texto com velocidade decente?

    
por Mealynn 13.02.2017 / 21:19

1 resposta

3

BTW, tty significa qualquer dispositivo "teletipo" (linha serial, pseudo terminal, ...). O que você está falando é o console virtual do Linux . E a rolagem disso é ridiculamente lenta, porque as versões recentes do Linux usam o modo gráfico em um framebuffer em vez do modo de texto, mas às vezes não a aceleração gráfica.

Portanto, verifique suas configurações de framebuffer e veja se você não consegue usar a aceleração usando o driver correto, etc.

Editar : Como se pode ver no vídeo, o problema é definitivamente a aceleração não acelerada, redesenhando tudo, pode-se ver as "ondas" à medida que o conteúdo se move.

Também estou confuso porque primeiro você parece estar usando vesafb (o que diminui a rolagem não acelerada) e depois 2 segundos depois inteldrmfb (o que deve fazer rolagem acelerada). Possível o problema está relacionado ao switch. Por favor, forneça dmesg da saída completa após a inicialização, coloque-a em um pastebin etc. e edite a questão com o link.

    
por 14.02.2017 / 09:11