Summit Review Edição 7 | Evolução e novas tendências da tecnologia de renderização do Windows

Este artigo foi reimpresso da conta pública oficial do WeChat do OpenHarmony TSC " Summit Review Issue 7 | Evolução da tecnologia de desenho de janelas e novas tendências "

Palestrante | Chen Qiulin

Revisão e arranjo | Liao Tao

Revisão de composição tipográfica | Li Pingping

Perfil do convidado

Chen Qiulin , arquiteto sênior do sistema operacional de terminal da Huawei e diretor do Fields Lab, está envolvido na pesquisa e desenvolvimento de sistemas operacionais de terminal há muito tempo e é responsável pelo design da arquitetura e desenvolvimento de tecnologia de LiteOS, otimização de desempenho do Android, estrutura HMS e Sistema de janelas OpenHarmony.

Fonte de conteúdo do artigo

O primeiro Open Atom Open Source Foundation OpenHarmony Technology Summit - OS Kernel e Windows Sub-Fórum

revisão de vídeo

Link do vídeo: Summit Review Edição 7 | Evolução da tecnologia de renderização de janelas e novas tendências - Chen Qiulin_哔哩哔哩_bilibili

Conteúdo

A renderização de janela é o recurso básico do sistema operacional gráfico, que determina o desempenho de exibição e a qualidade da interface gráfica do aplicativo terminal, bem como a velocidade de resposta e a experiência suave das operações do usuário. No novo cenário da Internet Inteligente de Todas as Coisas, quais são os desafios no desenvolvimento da tecnologia de renderização de janelas e quais as tendências de evolução da tecnologia? Chen Qiulin, arquiteto sênior do sistema operacional de terminal da Huawei, compartilhou algumas idéias no primeiro OpenHarmony Technology Summit.

01Novos desafios para desenho de janelas de terminal

O sistema de janelas (sistema de janelas/sistema de janelas) é um dos subsistemas importantes do sistema operacional gráfico. É responsável por exibir a interface funcional da aplicação ao usuário na forma de um gráfico e oferece suporte ao usuário para interagir e manipulá-la por meio de toque, teclado, mouse, voz, etc. O sistema de janelas consiste em quatro partes: ambiente de desktop, estrutura GUI, serviço de exibição e gerenciador de janelas, que são respectivamente responsáveis ​​por fornecer aplicativos e seu gerenciamento de entrada, estrutura de desenvolvimento de aplicativos e SDK, desenho e exibição de interface gráfica, gerenciamento de janelas e operação ao controle.

Sistema Windows

1.1 ►►A popularidade da alta resolução e alta taxa de atualização traz maiores desafios de desenho de GUI

A carga computacional do desenho da janela é determinada por fatores como resolução da tela, taxa de quadros e qualidade da imagem. Com o desenvolvimento de software e hardware de terminal, a resolução da tela, a taxa de quadros e a qualidade da imagem continuam a melhorar, e a carga de desenho da janela continua a aumentar. Por exemplo, a carga de desenho da janela de uma tela com resolução de 6k a 240 Hz é mais de 30 vezes maior do que a de uma tela com resolução de 2k a 60 Hz. A taxa de atualização de 240 Hz exige que a CPU e a GPU completem um quadro de desenho em 4 ms, e cada vez que a resolução da tela é duplicada, a carga da GPU e a largura de banda DDR aumentarão em 4 vezes.

1.2 ►►A colaboração entre dispositivos e a integração ecológica entre sistemas desafiam os recursos entre dispositivos e sistemas do Windows

No novo cenário da Internet Inteligente de Todas as Coisas, existem muitos tipos de dispositivos terminais de usuário e é necessário oferecer suporte à experiência colaborativa de vários dispositivos centrada no usuário. O sistema de janelas é necessário para fornecer a capacidade de distribuir janelas para suportar a transferência entre dispositivos no nível da janela. Além disso, problemas de compatibilidade ecológica são inevitáveis ​​em PCs, como compatibilidade com aplicativos Linux, aplicativos Windows ou aplicativos Android em PCs. Isso requer que o sistema de janelas tenha a capacidade de gerenciamento de fusão de janelas de múltiplas fontes. Ainda existe uma grande lacuna entre estes dois aspectos da experiência e as expectativas do utilizador, e é necessário pensar mais sobre como inovar no sistema de janelas.

1.3 ►►Cockpit inteligente e outros cenários A fusão de UI 2D/3D apresenta novos desafios de desempenho para renderização de janelas

Atualmente, a arquitetura do cockpit inteligente está evoluindo de "multi-core e múltiplas telas" para "um núcleo e múltiplas telas" + "integração entre domínios". Sob esta tendência, os aplicativos da camada superior se tornarão mais complexos:

(1) Exibição de fusão de instrumentos 2D e carroceria 3D legal no campo de instrumentos;

(2) display panorâmico 360AR na área de controle central, botões de menu 2D e display de fusão de conteúdo 3D AR;

(3) As informações exibidas no domínio HUD são fundidas com a cena 3D.

Quando o poder de computação geral do hardware é reduzido, mas a carga de desenho da janela aumenta bastante, como o sistema de janelas pode realizar a experiência tranquila de "múltiplas telas em um núcleo" e integração de interface de usuário 2D/3D?

Arquitetura "multitela de um núcleo"

1.4 ►►As cenas imersivas trazem novas mudanças interativas e apresentam novas demandas nas janelas.

Os aplicativos XR imersivos são significativamente diferentes dos aplicativos de terminal comuns em termos de exibição e interação. Aplicações imersivas enfrentam espaços de fusão 2D e 3D e precisam usar o toque da tela 2D para manipular objetos 3D. O ponto de controle pode estar em uma determinada superfície irregular no espaço 3D ou no modelo 3D. Como determinar o objeto operacional? Isso envolve a definição de foco no espaço tridimensional. A cena imersiva apresenta novos requisitos para o sistema de janelas, como exibição de fusão virtual e real, novo paradigma de interação do espaço 3D e percepção do espaço.

Diversos dispositivos imersivos

02Evolução da arquitetura de renderização de janelas Linux, Android e iOS

2.1 ►► Arquitetura Linux Windows

A arquitetura de janelas do Linux evolui em torno de duas linhas de desempenho e compatibilidade ecológica. No início, o protocolo X11 era usado para renderização de gráficos, e mais tarde o método DRI foi usado para acelerar o desenho, e então o Render e o gerenciador de janelas foram integrados ao Wayland. Em termos de compatibilidade ecológica, o Xwayland resolve a compatibilidade entre os aplicativos X11 e o Wayland, e o Glamour resolve problemas como compatibilidade com APIs gráficas.

Arquitetura Linux Windows

2.2 ►► Arquitetura de janela do Android

A arquitetura da janela do Android evolui principalmente em torno do desempenho.

No primeiro estágio, antes do Android 3.0, a UI é renderizada pela CPU;

O segundo estágio, a partir do Android 4.0, ativa a aceleração de hardware (renderização de GPU);

O terceiro estágio, ou seja, Android 4.1, apresenta VSYNC e Triple Buffer;

O quarto estágio, ou seja, Android 5.0, realiza a separação do thread de renderização e do thread de UI.

Principais recursos da arquitetura de janelas do Android:

(1) Usando uma arquitetura de renderização separada, cada aplicativo executa animação e renderização de forma independente;

(2) A rotação multi-buffer é usada para evitar ao máximo a perda de quadros e gagueira;

(3) Separação de gerenciamento e síntese de janelas (SurfaceFlinger);

(4) A renderização 2D é hospedada pela biblioteca gráfica Skia.

Arquitetura de janela Android

2.3 ►► Estrutura da janela iOS

A evolução da arquitetura de janelas do iOS concentra-se principalmente em inovações em Metal e AR, como MPS baseado em Metal e AR Kit. Diferenças do Linux e Android:

(1) Usando uma arquitetura de renderização unificada, os efeitos dinâmicos dos controles dentro da janela e os efeitos dinâmicos da ligação entre janelas são processados ​​uniformemente;

(2) Nos últimos anos, desenvolver vigorosamente a ecologia gráfica AR, promover a evolução da tecnologia de renderização 3D com aplicativos de cena AR e fornecer recursos plug-in 3D por meio de vários kits;

(3) Integração vertical em torno de GPU autodesenvolvida e API Metal de nova geração (colaboração de software e hardware);

(4) Vários SDKs e ferramentas de desenvolvimento estão profundamente integrados e a interoperabilidade entre cada Kit é boa, formando uma solução geral desde as capacidades subjacentes até a estrutura do sistema.

Arquitetura de janela iOS

Em geral, a arquitetura de janelas do Linux continua a evoluir em torno do desempenho e da compatibilidade, a arquitetura de janelas do Android evolui em torno do desempenho e a evolução da arquitetura de janelas do iOS se concentra na renderização unificada, na integração vertical e na integração profunda com ferramentas de desenvolvimento.

03 ►Novas tecnologias e tendências de desenho de janelas

3.1 ►►Desenho GUI de alta eficiência

Nas janelas contemporâneas baseadas em Android, o pipeline de renderização e exibição da GUI tem uma estrutura complexa, processo demorado, envolve colaboração entre vários processos e baixa paralelização, resultando em problemas de desempenho e consumo de energia. Além disso, a interação entre CPU e GPU para renderização 2D exige alta sobrecarga do driver e o problema de overdraw da GPU é sério. Tendo em vista os problemas existentes do pipeline 2D tradicional mencionados acima, é necessário explorar a arquitetura de pipeline minimalista 2D orientada a dados: a CPU é responsável por gerar dados primitivos 2D, que são submetidos à GPU por meio de instruções de desenho, e o A GPU realiza pré-processamento, rasterização e coloração nos dados primitivos 2D para realizar desenhos de interface de usuário de alto desempenho. No experimento real, em comparação com o pipeline 2D tradicional, a carga da CPU do pipeline minimalista 2D baseado em dados é reduzida em mais de 50% e o driver da GPU é bastante simplificado.

Pipeline minimalista 2D baseado em dados

3.2 ►►Janela distribuída e fusão de janelas heterogêneas

No cenário de colaboração multitelas, as soluções existentes baseadas em projeção apresentam defeitos como grande quantidade de dados transmitidos, alto consumo de energia, longo atraso e baixa taxa de quadros. É necessário explorar a tecnologia de janela distribuída, passar pelo ambiente operacional da janela entre os dispositivos, desacoplar a exibição da janela da interface do usuário e a lógica do aplicativo, realizar o fluxo livre de janelas entre os dispositivos, adaptar-se ao ambiente de exibição de novos dispositivos e reduzir o consumo de energia /delay/ A taxa de atualização é melhor que a tela de transmissão. Além disso, quando o aplicativo ecológico é executado em uma máquina/contêiner virtual, a janela do aplicativo contêiner e a janela nativa do sistema host não são gerenciadas de maneira unificada, e a experiência de controle dos dois é completamente separada. É necessário explorar vários tecnologia de fusão de janelas de origem para obter gerenciamento unificado e experiência consistente.

Arquitetura heterogênea de fusão de janelas

3.3 ►► Estrutura de UI de fusão 2D e 3D

No cenário do cockpit inteligente de veículos, tornou-se uma tendência combinar gráficos 3D com interface de usuário 2D para exibir diversas informações e fornecer aos motoristas uma experiência de direção precisa e envolvente. A atual estrutura de desenvolvimento de UI ainda carece de suporte para cenas de fusão 2D e 3D, principalmente da seguinte forma: a estrutura GUI da janela do sistema operacional suporta principalmente o desenvolvimento de interface 2D, sem efeitos dinâmicos de luz e sombra 3D e profundidade espacial; e estruturas de desenvolvimento de interface 3D puras (como O desenvolvimento de Kanzi e várias estruturas de mecanismo de jogo) é difícil e o limite é alto. Portanto, é necessário explorar ainda mais uma estrutura de UI de fusão 2D e 3D leve e de alto desempenho para alcançar o desenvolvimento de UI híbrida 2D e 3D, que deve ter as seguintes funções:

(1) Fornece controles de cena 3D, carrega modelos de cena 3D e suporta renderização realista;

(2) A UI 2D pode ser incorporada na cena 3D e exibida em associação com a subsuperfície do modelo 3D;

(3) Suporta associação bidirecional de controles de UI 2D com propriedades de cena 3D;

(4) Troca contínua de pipeline de renderização 2D e 3D.

Estrutura de UI de fusão 2D e 3D

3.4 ►►Nova geração de interação e exibição humano-computador

Em novos cenários como XR e Metaverso, a interface de interação do usuário é um espaço 3D e o paradigma tradicional de interação no plano 2D não é mais aplicável. A janela do sistema operacional precisa fornecer pose adicional, sistema de percepção do ambiente, sistema de exibição de fusão virtual-real e novos componentes de UI.

Soluções de interação e exibição homem-computador

Em geral, em novos cenários no futuro, a arquitetura da janela precisa girar em torno de: (1) pipeline minimalista de desenho de UI; (2) janelas distribuídas, fusão de janelas de múltiplas fontes; (3) estrutura de UI de fusão 2D e 3D; (4) imersão As quatro tendências do novo paradigma de interação da cena são exploradas e evoluídas.

04 ►Resumo _

Mudanças nos cenários de aplicativos e nas necessidades dos usuários são a principal força motriz para a evolução da tecnologia de renderização do Windows. Esperamos que todos prestem atenção e participem da inovação da tecnologia de renderização do Windows e ajudem em conjunto o sistema operacional Windows a permitir melhor novos cenários do Internet de tudo.

Clique para seguir para saber mais sobre o conteúdo técnico do OpenHarmony TSC

Acho que você gosta

Origin blog.csdn.net/OpenHarmony_dev/article/details/132423807
Recomendado
Clasificación