Vulkan 드라이버는 이제 Valve의 ACO 빌드 백엔드를 사용합니다.

Mesa 20.2 버전을 구성하는 데 사용 된 코드베이스에서 RADV 드라이버, AMD 칩용 Vulkan 백엔드로 전환 기본적으로 컴파일 쉐이더»ACO«, Valve에서 개발 LLVM 셰이더 컴파일러의 대안으로.

이 지정된 변경 게임의 생산성 향상을 위해 끝났습니다. 출시 시간이 단축되었습니다.

변경 RADV 컨트롤러에서 새 백엔드로 이전 AMD가 개발 한 백엔드와 ACO 기능의 패리티에 도달 한 후 가능했습니다. RadeonSI OpenGL 드라이버에서 계속 사용되는 AMDGPU 드라이버 용.

Valve의 테스트에 따르면 ACO는 AMDGPU 셰이더 빌드 컴파일러보다 거의 두 배 빠르며 RADV 드라이버가있는 시스템에서 실행할 때 일부 게임에서 FPS가 증가하는 것으로 나타났습니다.

AMD OpenGL 및 Vulkan 드라이버는 현재 LLVM 업스트림 프로젝트의 일부인 셰이더 컴파일러를 사용합니다. 이 프로젝트는 거대하고 다양한 목표를 가지고 있으며 게임 셰이더의 온라인 컴파일은 그중 하나 일뿐입니다. 

이는 개발 트레이드 오프로 이어질 수 있으며, 게임 별 기능을 개선하는 것이 다른 경우보다 더 어렵거나 다른 작업을 수행하는 LLVM 개발자가 실수로 게임 별 기능을 깨뜨리는 경우가 많습니다.

백엔드 ACO는 코드가 가장 최적의 방식으로 생성되도록하는 것을 목표로합니다. 게임 앱 셰이더에서 가능하며 매우 빠른 컴파일 속도를 달성합니다.

ACO C ++로 작성되었습니다. JIT 컴파일의 적용 가능성을 염두에두고 개발되었습니다. 빠른 기능을 사용하여 데이터 구조를 반복합니다. 연결 목록 및 문자열과 같은 포인터 기반 구조가 def를 사용하지 않도록 방지합니다. 코드의 중간 표현은 완전히 SSA (Single Static Allocation)를 기반으로하며 레코드 할당을 허용하여 셰이더를 기반으로 레코드를 정확하게 계산합니다.

코드의 중간 표현은 완전히 SSA (Single Static Allocation)를 기반으로하며 레코드 할당을 허용하여 셰이더를 기반으로 레코드를 정확하게 계산합니다.

현재는 픽셀 만 지원됩니다. (조각) 개별 AMD GPU에서 쉐이더 및 컴퓨팅 쉐이더 (dGPU VI +). 그러나 ACO는 Shadow of the Tomb Raider 및 Wolfenstein II의 복잡한 셰이더를 포함하여 테스트 된 모든 게임의 셰이더를 이미 올바르게 수집하고 있습니다.

제안 된 ACO 프로토 타입 시험을 위해 AMDGPU 셰이더 컴파일러보다 거의 두 배 빠릅니다. RADV 컨트롤러가있는 시스템에서 실행될 때 일부 게임에서 FPS의 증가를 보여줍니다.

Valve의 코드 채택의 관련성에 대해 조금 더 이해하려면 다음을 포괄하는 것이 중요합니다. 목표는 가능한 최적의 코드 생성을 보장하는 것입니다. 매우 빠른 컴파일 속도뿐만 아니라 게임 앱 셰이더 용입니다.

Mesa에서 사용할 수있는 셰이더 컴파일러는 LLVM 구성 요소를 사용합니다. 그들은 원하는 컴파일 속도를 얻지 못하며 과거에 이미 심각한 오류를 일으켰던 제어 흐름을 완전히 제어 할 수 없습니다.

또한, LLVM을 피하면보다 적극적인 분석을 구현할 수 있습니다. 불일치 및 세밀한 로그로드 관리를 통해보다 효율적인 실행 파일 생성이 가능합니다.

마지막으로 현재 ACO는 Mesa RADV Vulkan 컨트롤러에서만 작동합니다. 그러나 ACO 개발자는 다음 단계가 OpenGL RadeonSI 드라이버를 지원하기 위해 ACO의 기능을 확장하는 작업을 시작하는 것임을 확인했습니다. 따라서 향후이 드라이버의 경우 ACO가 기본 LLVM 셰이더 컴파일러를 대체 할 수 있습니다. .

얼마예요 이전에 사용했던 백엔드를 계속 사용하려는 사용자 LLVM 셰이더 컴파일러에서 다시 돌아갈 수 있으며 변수 만 변경하면됩니다.

이 변경을 위해 제공되는 환경 변수는 다음과 같습니다. "RADV_DEBUG = llvm".


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   바리헤비

    그리고 사용자는 게임을 실행할 백엔드를 어떻게 선택합니까? 수정해야하는 파일은 무엇입니까?