Direct Rendering Infrastructure

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?]

Existem dois drivers de hardware gráfico: um reside dentro do servidor de exibição X. Houve vários projetos deste driver. O atual divide-o em duas partes: DIX (Device-Independent X) e DDX (Device-Dependent X)
O Glamor irá simplificar o servidor X, e libGL-fglrx-glx poderia usar o libDRM do driver em código aberto radeon em vez do blob binário proprietário.
Os cálculos de renderização são terceirizados através do OpenGL para a GPU para ser feito em tempo real. O DRI regula o acesso e a contabilidade.

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

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

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

Referências

  1. a b «Mesa 3D and Direct Rendering Infrastructure wiki». Consultado em 15 de julho de 2014 
  2. 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

 
O Commons possui uma categoria com imagens e outros ficheiros sobre Direct Rendering Infrastructure