Por que o Unity não é tão bom com o driver proprietário da Nvidia quanto com a Intel aberta? [fechadas]

4

Tenho um Thinkpad W520 com placa gráfica Intel HD3000, além de um chip gráfico Nvidia 1000M, e estou executando o Ubuntu 13.04. Eu tenho uma grande diferença em quão suave Unity aparece com Intel vs. Nvidia.

Embora os jogos rodem muito melhor com a placa dedicada da Nvidia, o Unity parece gostar mais dos gráficos da Intel. Isso é especialmente perceptível ao minimizar / maximizar janelas e usar o recurso exposé, bem como outros efeitos. Por que é isso? Você supõe que a melhor placa de vídeo leva a melhor desempenho do Compiz, mas isso não parece ser o caso.

Eu não estou realmente falando sobre o Unity sendo lento, mas sim um pouco lento, já que estou perdendo frames, com a Nvidia.

Não é um problema do Optimus, já que tenho a sorte de ter um BIOS que me permite escolher o que eu prefiro.

Há alguma correção ou melhoria que eu possa fazer para melhorar minha aparência e desempenho do Unity com gráficos da Nvidia?

    
por Steffen Christensen 12.07.2013 / 19:39

1 resposta

1
A resposta curta é que os drivers proprietários são otimizados para a execução de software proprietário (ou seja, jogos), e os drivers de código aberto são otimizados para executar softwares de código aberto como Unity e Gnome Shell, e otimizar para uma coisa tende a tornar tudo mais lento.

Na verdade, o Unity funciona melhor com o Nouveau (o driver Nvidia de código aberto) do que com o driver restrito. Infelizmente, os jogos não (se eles são executados em todos). O motivo é complexo. As otimizações usadas para os sistemas de janelas são diferentes das otimizações usadas para jogos e, por isso, geralmente os desenvolvedores escolhem um ou outro.

Unity, e sistemas de janelas em geral, não precisam de uma placa gráfica particularmente poderosa. Eles não precisam de centenas de shaders como jogos. Em vez disso, eles precisam que um subconjunto de operações muito específico seja o mais rápido possível.

Os jogos são tipicamente proprietários e escritos para o Windows, onde apenas o driver proprietário está disponível. Portanto, os desenvolvedores de jogos visam esse driver. Como resultado, o driver proprietário é comumente usado por gamers, e a Nvidia o otimiza para tornar os jogos mais rápidos.

Por outro lado, Unity e Nouveau e Intel são de código aberto. O Unity tem como alvo os drivers de código-fonte aberto porque é mais fácil corrigir seus bugs e porque eles não precisam ser executados em outro sistema operacional. Os drivers de código aberto não são muito usados pelos jogadores e, portanto, não são otimizados para jogos (e, portanto, os jogadores não os usam ... e assim por diante).

Quanto ao que você pode fazer para corrigi-lo: não muito infelizmente. Não usar o Compiz é a única coisa que parece fazer a diferença, mas isso também significa não usar o Unity, e a diferença não é tão grande assim.

(Se você realmente está vendo uma quantidade enorme de atraso, e não apenas um pequeno aborrecimento, então você tem um problema real com o seu sistema.)

    
por Alistair Buxton 13.07.2013 / 18:51