응용 프로그램이 하드웨어 또는 소프트웨어 기반 디스플레이 렌더링을 사용하고 있는지 확인하는 방법은 무엇입니까?

응용 프로그램이 하드웨어 또는 소프트웨어 기반 디스플레이 렌더링을 사용하고 있는지 확인하는 방법은 무엇입니까?

내 시스템에는 하나 GPU의 공유 비디오 메모리가 있습니다. 저는 페도라 27을 사용하고 있습니다. lspci출력의 일부 중요한 라인은 다음과 같습니다.

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]

내가 무엇을 배웠는지"내 시스템이 하드웨어 가속을 지원하는지 어떻게 확인합니까? CPU에 있습니까, 아니면 마더보드에 있습니까?"예, 하드웨어 기반 렌더링을 사용할지 소프트웨어 기반 렌더링을 사용할지 결정하는 응용 프로그램입니다.

Google Chrome이는 하드웨어 렌더링을 끄는 옵션이 있다는 사실로 뒷받침됩니다.

하지만 모든 애플리케이션에서 애플리케이션을 실행할 때 gnome 3전용 그래픽으로 실행하는 옵션이 있습니다 .

그래서,두 가지 질문이 있습니다

  1. 누가 결정하는가어떤 렌더링이 사용됩니까(런처 Gnome 3또는 별도의 앱 등)?
  2. 확인 방법실행 중인 애플리케이션은 어떤 렌더링을 사용하고 있나요?

이에 대한 설명은 높이 평가됩니다.

답변1

여기에는 많은 문제가 있습니다.

첫째, 애플리케이션은 다양한 렌더링 방법을 지원할 수 있습니다.예를 들어OpenGL 및 소프트웨어 렌더링. 응용 프로그램이 소프트웨어로 렌더링되는 경우 하드웨어 가속이 전혀 사용되지 않습니다(또는 최소한예를 들어블리팅 작업 등) 이는 일반적으로 소프트웨어 렌더링을 지원하는 응용 프로그램(Chrome, 많은 이전 게임)에서 소프트웨어 렌더링을 선택할 때 발생합니다. 응용 프로그램이 OpenGL 또는 이와 유사한 렌더링을 사용하는 경우 속도 향상은 사용 가능한 하드웨어와 적절한 드라이버 및 라이브러리 설치 여부에 따라 달라집니다. 대부분의 경우, 특히 GNOME 3을 사용하는 경우 하드웨어 가속이 필요하기 때문에 하드웨어 가속을 얻게 됩니다(따라서 GNOME 3가 비클래식 모드에서 부팅되면 어떤 형태의 하드웨어 가속이 가능하다는 것을 확신할 수 있습니다).

둘째, 2개의 GPU가 있는 시스템에서는 통합 GPU 또는 전용 GPU를 통해 가속이 제공될 수 있습니다. 이것은 일반적으로아니요애플리케이션에 의해 제어되지만 커널에 의해 제어되는 경우VGA 스위치. 최신 버전의 GNOME은 통합 GPU 또는 전용 GPU를 사용하여 명시적으로 실행되는 응용프로그램을 지원합니다.저것"전용 그래픽으로 부팅" 옵션에 따라 결정됩니다(참조:이 블로그 게시물더 알아보기). OpenGL 응용 프로그램을 "일반적으로" 실행하면 하드웨어 가속을 위해 통합(Intel) GPU를 사용하고, "전용 그래픽으로 실행"을 사용하여 실행하면 하드웨어 가속을 위해 전용(AMD) GPU를 사용합니다.

실행 중인 응용 프로그램이 하드웨어 렌더링을 사용하고 있는지 확인하려면 적어도 비독점 드라이버를 사용할 때 응용 프로그램의 프로세스 ID를 찾아 실행하면 됩니다.

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

(적절한 값으로 대체 ${pid}) 출력 줄에 다음과 같은 내용이 포함되어 있으면 /dev/dri/card0응용 프로그램이 하드웨어 렌더링으로 실행되고 있는 것입니다(그리고 카드 번호는 사용 중인 GPU를 알려줍니다. /dev/dri/by-path값을 PCI 식별자와 일치시키십시오). 그렇지 않으면 그렇지 않습니다.

관련 정보