Direct Rendering Infrastructure
Este artigo resulta, no todo ou em parte, de uma tradução do artigo «Direct Rendering Infrastructure» na Wikipédia em inglês, na versão original. |
Direct Rendering Infrastructure (abreviado como DRI, Infraestrutura de Renderização Direta em inglês) é um framework para permitir acesso direto ao hardware gráfico no sistema de janelas X de maneira segura e eficiente.[1] O principal uso do DRI é fornecer aceleração de hardware para a implementação do OpenGL no Mesa. O DRI também foi adaptado para fornecer aceleração OpenGL em um console framebuffer sem um servidor de exibição em execução.[carece de fontes]
A implementação do DRI está espalhada pelo servidor X e suas bibliotecas clientes associadas, o Mesa 3D e o subsistema de kernel Direct Rendering Manager.[1] Todo o seu código fonte é software livre.
Visão geral
[editar | editar código-fonte]Na arquitetura clássica do sistema de janelas X, o servidor X é o único processo com acesso exclusivo ao hardware gráfico e, portanto, aquele que faz a renderização real no framebuffer. Tudo o que os clientes X fazem é se comunicar com o servidor X para despachar comandos de renderização. Esses comandos são independentes do hardware, o que significa que o protocolo X11 fornece uma API que abstrai o dispositivo gráfico para que os clientes X não precisem saber ou se preocupar com as especificidades do hardware subjacente. Qualquer código específico de hardware reside dentro do Device Dependent X (DDX), a parte do servidor X que gerencia cada tipo de placa de vídeo ou adaptador gráfico e que também é chamada de driver de vídeo ou driver de gráficos.
A ascensão da renderização em 3D mostrou os limites dessa arquitetura. Os aplicativos gráficos 3D tendem a produzir grandes quantidades de comandos e dados, todos os quais devem ser despachados para o servidor X para renderização. Como a quantidade de comunicação entre processos (IPC) entre o cliente X e o servidor X aumentou, o desempenho de renderização 3D sofreu ao ponto de os desenvolvedores de drivers X concluírem que, para aproveitar as capacidades de hardware 3D das mais recentes placas gráficas, um nova arquitetura sem IPC era necessária. Os clientes X devem ter acesso direto ao hardware gráfico, em vez de depender de um processo de terceiros para fazer isso, salvando toda a sobrecarga do IPC. Essa abordagem é chamada de "renderização direta", em oposição à "renderização indireta" fornecida pela arquitetura X clássica. A Infraestrutura de Renderização Direta foi desenvolvida inicialmente para permitir que qualquer cliente X execute a renderização 3D usando essa abordagem de "renderização direta".
Nada impede que o DRI seja usado para implementar a renderização direta em 2D acelerada em um cliente X.[2] Simplesmente ninguém teve a necessidade de fazê-lo porque o desempenho de renderização indireta 2D foi bom o suficiente.
Adoção
[editar | editar código-fonte]Diversos drivers em código aberto que usam o DRI foram escritos, incluindo aqueles para ATI Mach64, ATI Rage128, ATI Radeon, 3dfx Voodoo3 a Voodoo5, Matrox G200 a G400, SiS série 300, Intel i810 a i965, S3 Savage, chipsets gráficos VIA UniChrome e nouveau para Nvidia. Alguns fornecedores de gráficos escreveram drivers em código fechado que usam o DRI, incluindo a ATI e Kyro.
As várias versões do DRI foram implementadas por vários sistemas operacionais, entre outras pelo núcleo Linux, FreeBSD, NetBSD, OpenBSD e OpenSolaris.
Ver também
[editar | editar código-fonte]Referências
- ↑ a b «Mesa 3D and Direct Rendering Infrastructure wiki». Consultado em 15 de julho de 2014
- ↑ Høgsberg, Kristian (4 de setembro de 2008). «The DRI2 Extension - Version 2.0». X.Org. Consultado em 29 de maio de 2016
Ligações externas
[editar | editar código-fonte]- Página do projeto Direct Rendering Infrastructure
- Documentos de especificação atuais (sempre atualizados para a versão mais recente):
- A extensão DRI2 (Kristian Høgsberg, 2008)
- A extensão DRI3 (Keith Packard, 2013)
- A extensão Present (Keith Packard, 2013)