As placas gráficas NVIDIA GeForce FX”NV30″têm quase duas décadas, enquanto através do projeto Nouveau de código aberto, orientado pela comunidade, mesmo essas GPUs antigas ainda recebem melhorias ocasionais no driver gráfico do Linux. Atingir o Mesa 22.1-devel hoje é o trabalho de driver mais notável que vimos em anos para as placas gráficas de código aberto NV30 e NV40 (GeForce 6/7 series).

Com o código Mesa mais recente, o driver Gallium3D de código aberto NV30/NV40 agora está usando o caminho NIR para TGSI por padrão. Isso permite fazer uso da representação intermediária do NIR por meio de mais manipulação interna do driver antes de voltar para o TGSI IR que é então usado pelo compilador do sombreador-um passo aquém da adaptação da reescrita do driver para usar o próprio NIR.

As séries GeForce 5/FX a GeForce 7 são afetadas por essa mudança de NIR para TGSI no código do driver Nouveau NV30.

A utilização de NIR permite beneficiar de mais das otimizações comuns compartilhadas entre os drivers gráficos mais recentes e geral é muito melhor otimizado e adequado hoje em dia do que o TGSI como o Gallium3D IR original. Foi no ano passado que o driver R300 da Radeon também adicionou NIR-to-TGSI.
Tanto o trabalho R300 NIR-to-TGSI do ano passado quanto essa atividade de driver NV30 foram gerenciados pela desenvolvedora de longa data do Mesa Emma Anholt. Todos os drivers modernos da GPU Mesa vão para NIR e com mais desses drivers antigos e raramente mantidos migrando para NIR para TGSI, isso pode permitir mais limpezas de código e melhorias na base de código no futuro.
Com a mudança para usar NIR-to-TGSI por padrão, ainda há uma opção de depuração para usar apenas TGSI se quiser comparar o desempenho ou regressões bissetadas. Ao testar com o Shader-DB, o uso de NIR-to-TGSI levou a cerca de 13% menos instruções a serem geradas para GPUs NV30 e cerca de 12% de economia para NV30. O uso do registro GPR em programas de sombreamento afetados também foi cerca de 25% menor com o uso de NIR para TGSI. Uma vitória muito boa e uma melhoria incremental para este código de driver Nouveau mais antigo.

Categories: IT Info