Direct Rendering Manager

Direct Rendering Manager (abreviado como DRM, Gerenciador de Renderização Direta em inglês) é um subsistema do kernel do Linux que faz interface com as GPUs das placas de vídeo modernas.

O DRM expõe uma API que os programas de espaço de usuário podem usar para enviar comandos e dados para a GPU, e para executar operações, como configurar o modo de exibição do monitor. O DRM foi desenvolvido inicialmente como o componente de espaço do kernel do Direct Rendering Infrastructure do servidor X, mas desde então tem sido usado por outras alternativas de pilha gráfica como o Wayland.

Direct Rendering Manager
Autor kernel.org & freedesktop.org
Desenvolvedor kernel.org & freedesktop.org
Escrito em C
Gênero(s)
Licença
Página oficial dri.freedesktop.org/wiki/DRM

Os programas de espaço do usuário podem usar a API do DRM para comandar a GPU para fazer a renderização em 3D e a decodificação de vídeo acelerada por hardware, além da computação GPGPU.

Visão geral

O kernel do Linux já tinha uma API chamada fbdev, usada para gerenciar o framebuffer de um adaptador gráfico, mas ela não podia ser usada para lidar com as necessidades do hardware de vídeo baseado em GPU com aceleração 3D moderno. Esses dispositivos geralmente exigem a configuração e o gerenciamento de uma fila de comandos em sua própria memória para enviar comandos para a GPU, e também exigem o gerenciamento de buffers e espaço livre nessa memória. Inicialmente, os programas de espaço do usuário (como o servidor X) gerenciavam esses recursos diretamente, mas geralmente agiam como se fossem os únicos com acesso a eles. Quando dois ou mais programas tentavam controlar o mesmo hardware ao mesmo tempo e definiam seus recursos, cada um à sua maneira, na maioria das vezes eles terminavam catastroficamente.

O Direct Rendering Manager foi criado para permitir que vários programas usem recursos de hardware de vídeo cooperativamente. O DRM obtém acesso exclusivo à GPU e é responsável por inicializar e manter a fila de comandos, a memória e qualquer outro recurso de hardware. Os programas que desejam usar as solicitações de envio de GPU para o DRM, que atua como um árbitro e toma cuidado para evitar possíveis conflitos.

O escopo do DRM foi expandido ao longo dos anos para abranger mais funcionalidades previamente tratadas pelos programas de espaço do usuário, como gerenciamento de framebuffer e configuração de modo, compartilhamento de objetos de memória e sincronização de memória. Algumas dessas expansões recebem nomes específicos, como o Graphics Execution Manager (GEM) ou o Kernel Mode-Setting (KMS), e a terminologia prevalece quando a funcionalidade que eles fornecem é especificamente aludida. Mas eles são realmente partes de todo o subsistema DRM do kernel.

A tendência de incluir duas GPUs em um computador—uma GPU discreta e uma integrada—levou a novos problemas, como a comutação da GPU, que também precisavam ser resolvidos na camada de DRM. A fim de combinar a tecnologia Nvidia Optimus, o DRM foi expandido com a capacidade de descarregamento de GPU, chamado PRIME.

Adoção

O subsistema de kernel Direct Rendering Manager foi inicialmente desenvolvido para ser usado com a nova infraestrutura de renderização direta do servidor de exibição XFree86 4.0, posteriormente herdado por seu sucessor, o X.Org Server. Portanto, os principais usuários do DRM eram clientes DRI que se vinculam à implementação do OpenGL acelerada por hardware que reside na biblioteca do Mesa 3D, bem como ao próprio servidor X. Atualmente, o DRM também é usado por vários compositores Wayland, incluindo o compositor de referência Weston. O kmscon é uma implementação de console virtual que é executada no espaço do usuário usando os recursos do KMS presentes no DRM.

Em 2015, a versão 358.09 (beta) do driver proprietário Nvidia GeForce recebeu suporte para a configuração de modo da interface DRM implementada como um novo blob do kernel chamado nvidia-modeset.ko. Esse novo componente de driver funciona em conjunto com o módulo do kernel nvidia.ko para programar o mecanismo de exibição (ou seja, o controlador de exibição) da GPU.

Ver também

Referências

Ligações externas

Tags:

Direct Rendering Manager Visão geralDirect Rendering Manager AdoçãoDirect Rendering Manager Ver tambémDirect Rendering Manager Ligações externasDirect Rendering ManagerDirect Rendering InfrastructureEspaço de usuárioInterface de programação de aplicaçõesLinux (núcleo)Língua inglesaPlaca de vídeoUnidade de processamento gráficoWayland (protocolo de servidor gráfico)X.Org

🔥 Trending searches on Wiki Português:

Sport Club do RecifeDavid BowieTom CruisePavel DurovNova Ordem Mundial (teoria conspiratória)Virginia FonsecaRosângela Lula da SilvaUnião EuropeiaWhitney Houston28 de abrilDia dos NamoradosAdolf HitlerEstádio Cidade de BarcelosBob MarleyItáliaErling HaalandKen MilesTim MaiaKeri RussellLista de presidentes dos Estados UnidosKeanu ReevesManchester United F.C.NazismoSuper Mario Bros. O FilmePolóniaOutlook.comClube de Regatas do FlamengoMelody (cantora)Maria AntonietaVenezuelaA SucessoraCharlie SheenKobe BryantMaria João AbreuMassacre de ColumbineAbaporu29 de abrilMorte de Benito MussoliniMortes em abril de 2023De'Aaron FoxMercado Livre (empresa)LeãoThe Big Bang TheorySampaio Corrêa Futebol ClubeCissy HoustonBig Brother Brasil 23DemissexualidadeRaphael VeigaLulu SantosAdeleLista de códigos de registro internacional de veículosCopa do Mundo FIFA Sub-20 de 2023RasenBallsport LeipzigLista de municípios de Minas Gerais por populaçãoClub Atlético Boca JuniorsCoração de EstudanteMike TysonLuiz GonzagaMelanie MartinezTartáriaCidade de Deus (filme)Eduardo Pereira RodriguesCopa do Mundo FIFAKatherine HeiglRomaGil VicenteGuerra de CanudosXVideosFC Bayern MünchenRihannaFernando AlonsoCharlie Brown Jr.Società Sportiva Calcio NapoliJason StathamParanáBlackpinkPedro PascalSporting Clube de Braga🡆 More