Arcan Display Server: Um Servidor Gráfico baseado num Game Engine!!!

Iniciado por Nosferatu Arucard, 07 de Abril de 2017, 11:29

tópico anterior - próximo tópico

Nosferatu Arucard

Enquanto o sucessor do X Window Server andou por entre o Mir, o Wayland e derivados, no ano passado, foi relevado um display server, igualmente open-source, que pretendia ser originalmente um Servidor Gráfico
mais optimizado para aplicações gráficas, em ecrã cheio (full screen), e com acesso de baixo nível ao hardware gráfico, e que depois foi ampliado para suportar os elementos básicos de um interface gráfica.

Com isso nasceu o Arcan Display Server, disponível para Linux, FreeBSD e Windows (!)

https://arcan-fe.com/

https://github.com/letoram/arcan

A grande diferença entre o Mir/Wayland e até o X comparado com o Arcan, é que a sua arquitectura é muito mais similar ao servidor gráfico do sistema operativo Orbis (PS4) ou da versão do Windows 10 que opera na Xbox One, do qual, os seus elementos primitivos são os streams da GPU, e a sua renderização
é feita exclusivamente pela GPU usando o motor gráfico (Arcan Display Engine) do Arcan.

Posteriormente, na altura que o projecto foi lançado ao público, foi criado um pequeno sistema de janelas, escrita em linguagem Lua, designado por Durban, como demonstração para além de programas, como jogos, a correr via SDL modificada para usar directamente o Arcan
Display Engine...

Actualmente, o Arcan está a ser ampliado para que o Arcan Composer (que gere, por compatibilidade, os elementos primitivos das janelas e eventos, implementados sobre o Arcan Display Engine) emule o protocolo Wayland e X Window Server,
que actualmente está parcialmente funcional.

A ideia do autor deste projecto é que sistemas de interface gráfica como o XFCE, o Debian e companhia que usem o protocolo Wayland, funcionem sem necessidade de mudar uma única linha de código. Bibliotecas como o SDL, Vulkan e afins podem usar o Wayland, para comunicar com
o Arcan Composer, mas para acesso de baixo nível ao hardware, devem usar as versões Vulkan e SDL modificadas para operar no Arca Display Engine...

Ora isso é exactamente o que acontece no sistema Orbis da PS4. Existe uma API de alto nível mais adequado para programas com janelas e eventos, e depois uma API de baixo nível mais adequado para um jogo operar em exclusivo no monitor, comunicando quase directamente ao hardware.

Seria interessante se a Canonical tivesse sondado o programador do Arcan, pois neste caso em vez de terem criado o Mir, teriam usado o Arcan para o UNity/Xfce/etc, e depois com o aparecerimento da Steam, podiam usar a funcionalidade de baixo nível para os jogos,
implementando um Game Mode do qual o jogo teria acesso directo (na realidade via API low-level) ao hardware gráfico local, evitando os overheads do X/Wayland/Mir...