Trình điều khiển Vulkan hiện sử dụng chương trình phụ trợ xây dựng ACO của Valve

Trong cơ sở mã được sử dụng để hình thành bản phát hành Mesa 20.2, bộ điều khiển RADV, Vulkan dành cho chip AMD đã chuyển sang phần phụ trợ mặc định để biên dịch Trình đổ bóng “ACO”, được phát triển bởi Valve như một giải pháp thay thế cho trình biên dịch đổ bóng LLVM.

Sự thay đổi được chỉ định này Nó được thực hiện với mục đích tăng năng suất của trò chơi và giảm thời gian đúc của nó.

Sự thay đổi từ trình điều khiển RADV đến chương trình phụ trợ mới có thể thực hiện được sau khi đạt được sự tương đương về chức năng ACO với chương trình phụ trợ cũ do AMD phát triển cho trình điều khiển AMDGPU, trình điều khiển này tiếp tục được sử dụng trong trình điều khiển RadeonSI OpenGL.

Thử nghiệm của Valve cho thấy ACO nhanh gần gấp đôi so với trình biên dịch shader AMDGPU và cho thấy FPS tăng lên trong một số trò chơi khi chạy trên hệ thống có trình điều khiển RADV.

Trình điều khiển AMD OpenGL và Vulkan hiện đang sử dụng trình biên dịch đổ bóng là một phần của dự án LLVM ngược dòng. Dự án đó rất lớn và có nhiều mục tiêu khác nhau, và việc biên soạn trực tuyến các shader trò chơi chỉ là một trong số đó. 

Điều đó có thể dẫn đến sự đánh đổi trong quá trình phát triển, trong đó việc cải thiện chức năng trò chơi cụ thể khó hơn bình thường hoặc khi các tính năng trò chơi cụ thể thường bị các nhà phát triển LLVM làm việc khác vô tình phá vỡ.

Phần phụ trợ của ACO nhằm mục đích đảm bảo rằng mã được tạo theo cách tối ưu nhất có thể thực hiện được đối với các trình đổ bóng ứng dụng trò chơi và đạt được tốc độ biên dịch rất cao.

ACO Nó được viết bằng C++, đã phát triển lưu ý đến khả năng ứng dụng cho việc biên dịch JIT, và sử dụng những cái nhanh để lặp lại cấu trúc dữ liệu, tránh các cấu trúc dựa trên con trỏ như danh sách và chuỗi được liên kết bằng cách sử dụng def. Việc biểu diễn trung gian của mã hoàn toàn dựa trên SSA (Single Static Allocation) và cho phép phân bổ thanh ghi, tính toán chính xác thanh ghi dựa trên shader.

Việc biểu diễn trung gian của mã hoàn toàn dựa trên SSA (Single Static Allocation) và cho phép phân bổ thanh ghi, tính toán chính xác thanh ghi dựa trên shader.

Hiện tại chỉ hỗ trợ pixel (mảnh vỡ) và tính toán các shader trên GPU AMD rời (dGPU VI+). Tuy nhiên, ACO đã thu thập chính xác các shader cho tất cả các trò chơi được thử nghiệm, bao gồm cả các shader phức tạp cho Shadow of the Tomb Raider và Wolfenstein II.

Nguyên mẫu ACO được đề xuất cho bài kiểm tra nhanh gần gấp đôi so với trình biên dịch shader AMDGPU và thể hiện sự gia tăng FPS trong một số trò chơi khi chạy trên hệ thống có bộ điều khiển RADV.

Để hiểu thêm một chút về mức độ liên quan của việc áp dụng mã của Valve, điều quan trọng là phải nhấn mạnh rằng Mục tiêu là đảm bảo việc tạo mã tối ưu nhất có thể cho các shader ứng dụng chơi game cũng như đạt được tốc độ biên dịch rất cao.

Trình biên dịch đổ bóng có sẵn trong Mesa sử dụng các thành phần LLVM, không cho phép đạt được tốc độ biên dịch mong muốn và không cho phép kiểm soát hoàn toàn luồng điều khiển, điều này trước đây đã gây ra lỗi nghiêm trọng.

Bên cạnh đó, tránh LLVM giúp có thể thực hiện phân tích tích cực hơn sự khác biệt và quản lý tốt hơn tải trên nhật ký, cho phép tạo các tệp thực thi hiệu quả hơn.

Cuối cùng thì nó cũng Điều quan trọng cần lưu ý là hiện tại ACO chỉ hoạt động với bộ điều khiển Mesa RADV Vulkan. Nhưng các nhà phát triển ACO đã xác nhận rằng bước tiếp theo của họ sẽ là bắt đầu mở rộng khả năng của ACO để hỗ trợ trình điều khiển OpenGL RadeonSI, để trong tương lai và đối với trình điều khiển này, ACO có thể thay thế trình biên dịch đổ bóng LLVM mặc định.

Bao nhiêu dành cho những người muốn tiếp tục với phần phụ trợ đã được sử dụng trước đó từ trình biên dịch đổ bóng LLVM, họ có thể quay lại trình biên dịch đó, họ chỉ cần thay đổi một biến.

Biến môi trường được cung cấp để thực hiện thay đổi này là «RADV_DEBUG=llvm».


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Thay đổiNặng dijo

    Và người dùng chọn phần phụ trợ nào để chạy trò chơi bằng cách nào? Bạn phải sửa đổi những tập tin nào?