Eu tenho usado muitas variantes do Linux (principalmente derivados do Debian) há mais de uma década. Um problema que não vi resolvido de maneira satisfatória é a questão do rasgo horizontal ou o Vsync não está sendo implementado adequadamente.
Digo isso porque uso 5 distros diferentes em 4 computadores diferentes com vários monitores e placas gráficas Nvidia / AMD / ATI / Intel; sempre houve um problema com o rasgo do vídeo com movimentos leves.
Esse é um grande problema, especialmente porque mesmo o Windows XP não possui esses problemas no hardware moderno. Se alguém vai usar o Linux para alguma coisa, por que eles querem que defeitos constantes apareçam ao fazer algo que não seja CLI?
Suponho que poucos desenvolvedores conheçam esse problema ou se importem o suficiente para corrigi-lo. Eu tentei praticamente todos os compositores por aí, e geralmente o melhor que eles podem fazer é minimizar o problema, mas não eliminá-lo. Não deveria ser tão simples quanto sincronizar com a taxa de atualização do monitor? Existe alguma política na comunidade OSS que impeça alguém de cometer código que conserte isso?
Toda vez que pedi ajuda sobre esse problema no passado, ele é tratado como um caso de extrema importância (o que acho difícil de acreditar, devido à quantidade de vezes que repliquei o problema) ou obtive possíveis soluções que minimizar no máximo o rasgo.
Respostas:
Isso tudo se deve ao fato de o servidor X estar desatualizado, inadequado para o hardware gráfico de hoje e basicamente toda a comunicação direta da placa de vídeo é feita como uma extensão ("patch") do antigo núcleo inchado. O servidor X não fornece meios internos de sincronização entre o usuário que renderiza a janela e a tela que exibe uma janela; portanto, o conteúdo muda no meio da renderização. Esse é um dos problemas conhecidos do servidor X (ele tem muitos, todo o modelo do que o servidor faz e está desatualizado - manipulação de eventos em sub-janelas, metadados sobre janelas, primitivas gráficas para desenho direto ...). Os kits de ferramentas de widget geralmente querem encobrir tudo isso, mas o rasgo ainda é um problema porque não há mecanismo para lidar com isso. Problemas adicionais surgem quando você possui várias placas que exigem drivers diferentes,
Wayland, que tenta, sem entusiasmo, substituir o X, suporta uma sincronização pedante vsync em seu núcleo, e é anunciado que tem todos os quadros exatamente perfeitos.
Se você pesquisar rapidamente no Google "rasgar vídeos de wayland", encontrará mais informações sobre tudo.
fonte
+1
pois "X é o problema, dê uma olhada em Wayland". Falando sério, é a resposta correta.wayland video tearing
: PO rompimento de tela aparece principalmente por dois motivos: drivers que ainda não existem e falta de vsync em determinados gerenciadores de janelas.
Quanto aos drivers, os drivers gratuitos e proprietários oferecem suporte à composição de rasgo livre (nvidia e amd ambos). Esteja ciente de que, por exemplo, ativar a área de trabalho sem lágrimas no catalisador (
fglrx
) pode causar quedas e atrasos no quadro, por isso geralmente é desativado por padrão. Quanto ao driver aberto, o vsync deve estar ativado por padrão. Portanto, o problema de rompimento de tela pode ser resolvido ao tentar drivers diferentes e configurá-los.Quanto aos gerenciadores de janelas, sabe-se que o Openbox, o Awesome e outros wms leves não suportam o rasgo. O XFCE (xfwm, para ser específico) o corrigiu em versões recentes, o 4.11 / 12 agora possui o Vsync. Os principais ambientes de área de trabalho também não têm problemas com o lacrimejamento, incluindo GNOME, KDE, Unity e Cinnamon.
Se você ainda tiver problemas com a tela, sua opção é tentar outro gerenciador de composição como Compton ou Kwin. O Kwin é o gerenciador de janelas do KDE e tenho experiência em usar o kwin no XFCE quando ele não suporta o vsync e funcionou muito bem.
Portanto, a solução aqui é a experimentação, o que está quebrado em uma combinação de driver / ui pode funcionar em outro. Acredito que a situação melhorará em breve, pois os drivers de código aberto estão se tornando mais avançados e a mudança para wayland pode se livrar de problemas antigos do Xorg.
fonte
Se você estiver usando um driver nvidia> = 365.20, tente ativar a opção "Forçar pipeline de composição completa" em
nvidia-settings
.fonte
TearFree
opção que você pode colocar naDevice
seção correspondente . Acabei de experimentar e fornece resultados muito semelhantes ao pipeline de composição completa da nvidia.Eu tive um rasgo forte aqui e agora está resolvido.
Depois de ler esta ( maravilhosa explicação ) de como um servidor Xorg funciona, percebi que o servidor X atualiza as janelas diretamente para o cartão de memória a qualquer momento, a menos que você use um gerenciador de janelas habilitado para composição.
Quando a composição está ativada, o gerenciador de janelas reúne todas as alterações dos diferentes buffers de memória da janela, cria uma imagem resultante para a tela inteira e a despeja no cartão de exibição de uma só vez.
A maioria das distribuições modernas possui um gerenciador de janelas de composição. KWin para KDE, Mutter para Gnome, Muffin para Canela, Marco para Mate, xfwm para XFCE, etc. No entanto, a composição pode ser desativada para economizar recursos.
No meu caso, a composição foi desativada no KDE4. Uma vez ativado, o rasgo foi embora. EDIT : Eu também precisei mudar nas opções do KWin a estratégia VSync de Automático para Reutilizar o conteúdo da tela , a fim de me livrar do rasgo, conforme explicado neste relatório de erros específico do kwin .
As opções do driver também podem ser um fator. No meu caso, as opções padrão funcionam bem. O Arch Wiki possui uma excelente documentação sobre as opções para diferentes placas de vídeo, como placas Intel ou placas NVIDIA .
Para verificar se uma opção está ativada na sua configuração atual do xorg, você pode verificar o log. Por exemplo, para verificar se o DRI está ativado:
fonte
xfwm4-tweaks-settings
comando para mostrar o aplicativo tweaker e, na guia Compositor, você pode encontrar a opção acima. Ligá-lo fez uma enorme diferença e pode ser verificado aqui: vsynctester.com/index.html (ativar / desativar o recurso enquanto exibe a animação). Não é perfeito, existem alguns quadros perdidos, mas muito melhor do que quando está desligado.A solução está aqui: o Linux Mint 17.3 MATE agora vem com o Compton .
Basta ir para
Desktop Settings
->Windows
->Window Manager
e escolherMetacity + Compton
. É isso aí.Eu tenho uma placa de vídeo AMD e funciona imediatamente para o driver de código aberto.
Para o driver AMD proprietário, quando os vídeos HTML5 são maximizados para tela cheia, você pode ver a cor azul que preencherá a tela inteira. Para corrigir isso, crie
chmod +x
o script abaixo:Execute-o sempre que reiniciar o sistema, mas não tente adicioná-lo
Startup Applications
- isso pode interromper a inicialização por algum motivo.fonte
No Peppermint Linux, vá para Preferências> Peppermint Control Center, selecione Efeitos da área de trabalho e ative "Ativar efeitos da área de trabalho" e "Sincronizar desenho com o espaço em branco vertical".
fonte
Estou usando o Linux Mint XFCE e esse problema me frustrou por um bom tempo. Eu descobri a solução para o meu laptop com a placa gráfica integrada Intel e resolveu o problema de lacrimejamento . Para o meu desktop com placa NVIDIA, esse truque não pode funcionar. Mas eu apenas encontrei o culpado.
Tenho um aumento imediato no desempenho quando desabilitei a composição da janela. Aqui está como você pode fazer isso:
Vá para Todas as configurações / Ajustes do gerenciador de janelas / compositor e desative tudo isso.
Lembre-se de que isso é específico da distribuição e o meu é o Mint com o XFCE e não tenho idéia de como encontrar algo semelhante em outras distribuições.
fonte