Como verificar se um aplicativo está usando renderização de exibição baseada em hardware ou software?

0

Meu sistema tem GPU e uma memória de vídeo compartilhada. Estou usando o Fedora 27. Algumas linhas importantes da saída lspci são as seguintes.

00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
0a:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Sun LE [Radeon HD 8550M / R5 M230]

O que eu entendi de " Como eu verifico se meu sistema suporta aceleração de hardware? É na CPU ou na placa-mãe? " é que é um aplicativo que decide se deve usar renderização baseada em hardware ou software.

Isso é suportado pelo fato de que Google Chrome tem uma opção para desativar a renderização de hardware.

Mas enquanto o lançamento de um aplicativo do aplicativo gnome 3 all tem uma opção a ser lançada usando gráficos dedicados.

Então, tenho duas perguntas

  1. Quem decide qual renderização será usada (o iniciador Gnome 3 ou o aplicativo somente ou algo mais)?
  2. Como verificar qual renderização um aplicativo em execução está usando?

Qualquer explicação sobre isso é muito apreciada.

    
por Abhik Bose 05.03.2018 / 09:31

1 resposta

1

Há vários problemas aqui.

Primeiro, os aplicativos podem suportar uma variedade de métodos de renderização, por exemplo, OpenGL e renderização de software. Se um aplicativo renderizar no software, nenhuma aceleração de hardware será usada (ou minimamente, por exemplo, para operações de blitting etc.); geralmente é o que acontece quando você seleciona a renderização de software em aplicativos que a suportam (Chrome, muitos jogos mais antigos). Se um aplicativo renderizar usando OpenGL ou algo assim, a aceleração dependerá do hardware disponível e se os drivers e as bibliotecas apropriados estão instalados. Na maioria dos casos, você obterá aceleração de hardware, especialmente se estiver usando o GNOME 3, pois isso requer aceleração de hardware (assim, se o GNOME 3 iniciar no modo não clássico, você tem certeza de que alguma forma de aceleração de hardware está disponível). / p>

Em segundo lugar, em um sistema como o seu com duas GPUs, a aceleração pode ser fornecida pela GPU integrada ou pela GPU dedicada. Isso geralmente não é controlado por aplicativos, mas pelo kernel, usando o switcheroo VGA . Versões recentes do GNOME têm suporte para o lançamento de aplicativos usando a GPU integrada ou a GPU dedicada explicitamente; que é o que determina a opção "Iniciar usando a Placa Gráfica dedicada" (consulte esta postagem do blog para detalhes). Se você iniciar um aplicativo OpenGL “normalmente”, ele será acelerado por hardware, usando sua GPU integrada (Intel); se você iniciar usando “Launch using Dedicated Graphics Card”, ele será acelerado por hardware, usando sua GPU dedicada (AMD).

Para determinar se um aplicativo em execução está usando a renderização por hardware, pelo menos ao usar drivers não proprietários, você pode encontrar o ID do processo do aplicativo e, em seguida, executá-lo

lsof -p ${pid} | grep /dev/dri

(substituindo ${pid} pelo valor apropriado). Se isso gerar uma linha contendo algo como /dev/dri/card0 , o aplicativo está sendo executado usando a renderização por hardware (e o número do cartão informará qual GPU está usando - corresponde aos valores em /dev/dri/by-path com os identificadores PCI); caso contrário, não é.

    
por 05.03.2018 / 09:50