Cách hiển thị bộ đếm FPS trong trò chơi Linux

How Show Fps Counter Linux Games



Trò chơi Linux có một cú hích lớn khi Valve đã công bố Hỗ trợ Linux cho ứng dụng khách Steam và các trò chơi của họ vào năm 2012. Kể từ đó, nhiều trò chơi AAA và indie đã đến với Linux và số lượng người dùng chơi trò chơi trên Linux đã tăng lên đáng kể.

Với sự phát triển của trò chơi Linux, nhiều người dùng bắt đầu tìm cách thích hợp để hiển thị bộ đếm khung hình trên giây (FPS) như một lớp phủ trên các trò chơi Linux đang chạy. Bộ đếm FPS giúp điều chỉnh hiệu suất của các trò chơi đang chạy cũng như đo điểm chuẩn khả năng chơi trò chơi tổng thể của PC ở các độ phân giải khác nhau.







Thật không may, không có cách thống nhất duy nhất để hiển thị bộ đếm FPS trong tất cả các trò chơi Linux độc lập với các công nghệ cơ bản mà trò chơi đang chạy. Các trình kết xuất và API khác nhau có các cách khác nhau để hiển thị bộ đếm FPS. Hướng dẫn này sẽ giải thích các phương pháp khác nhau có thể được sử dụng để hiển thị bộ đếm FPS trong các trò chơi Linux.



Ghi chú về khả năng tương thích:



  • Hoạt động với các trò chơi OpenGL và Vulkan.
  • Hoạt động với các trò chơi gốc và Proton Proton là một lớp tương thích có trong Steam để chạy các trò chơi Windows trong Linux. Nó được dựa trên Rượu , DXVKD9VK các dự án mã nguồn mở với các bản vá bổ sung và các tính năng mới được thêm vào bởi các nhà phát triển Valve / Wine.
  • Hoạt động với các trò chơi đã mua trên Steam hoặc các trò chơi của bên thứ ba được người dùng thêm vào Steam.
  • Đã thử nghiệm hoạt động với card đồ họa Intel và AMD tích hợp.
  • Chưa được kiểm tra với thẻ NVIDIA vì tôi không sở hữu thẻ NVIDIA. Nhưng theo các diễn đàn cộng đồng Steam, bộ đếm fps tích hợp hoạt động tốt trên thẻ NVIDIA.

Steam cho Linux bao gồm một bộ đếm FPS tích hợp có thể được chuyển đổi từ cài đặt. Đây có lẽ là một trong những tùy chọn tương thích nhất hoạt động với phần lớn các trò chơi Linux. Tuy nhiên, tôi gặp một số vấn đề với trò chơi công cụ Unity không hiển thị bộ đếm FPS tích hợp. Tùy chọn này cũng yêu cầu bạn phải có tài khoản Steam và ứng dụng khách Steam được cài đặt trên hệ thống của bạn.







Steam thậm chí còn cho phép bạn thêm các trò chơi không được mua từ Steam vào thư viện trò chơi và bộ đếm FPS tích hợp cũng hoạt động trong các trò chơi này. Để thêm một trò chơi không phải Steam, hãy nhấp vào Trò chơi và sau đó nhấp vào Thêm một trò chơi không phải Steam vào Thư viện của tôi, như được hiển thị trong ảnh chụp màn hình bên dưới:

Duyệt đến vị trí của các tệp trò chơi của bạn và sau đó chuyển đổi tùy chọn Tất cả tệp ở dưới cùng.

Chọn trò chơi thực thi và sau đó nhấp vào THÊM CÁC CHƯƠNG TRÌNH ĐÃ CHỌN như thể hiện trong ảnh chụp màn hình bên dưới:

Nếu bạn muốn chạy một trò chơi chỉ dành cho Windows trong lớp tương thích của Steam’s Proton, bạn sẽ phải bật một tùy chọn bổ sung trong thuộc tính trò chơi.

Tôi đã thêm tệp thực thi SuperTuxKart trong Thư viện hơi nước và bộ đếm FPS cũng hoạt động tốt ở đây. Lưu ý rằng bất kỳ trò chơi nào của bên thứ ba được thêm vào thư viện Steam không được có bất kỳ khoảng trống nào trong đường dẫn vị trí tệp của chúng.

Phương pháp 2 (LibGL)

Ghi chú về khả năng tương thích:

  • Chỉ hoạt động với các trò chơi OpenGL.
  • Hoạt động với các trò chơi bản địa và trò chơi Rượu.
  • Đã thử nghiệm hoạt động với card đồ họa Intel và AMD tích hợp với trình điều khiển mã nguồn mở.
  • Chưa được kiểm tra với thẻ NVIDIA vì tôi không sở hữu thẻ NVIDIA. Tuy nhiên, nó sẽ hoạt động với GPU NVIDIA có trình điều khiển nguồn mở.

LibGL là một thư viện Mesa hiển thị các API OpenGL cho các ứng dụng và trò chơi và nó được bao gồm trong hầu hết các bản phân phối Linux theo mặc định. Sử dụng thư viện này và một gói khác tạo HUD trên màn hình hiển thị, chúng tôi sẽ hiển thị bộ đếm FPS trong các trò chơi Linux. Chạy lệnh sau để cài đặt gói yêu cầu:

sudođúng cáchTải vềxosd-bin

Để hiển thị bộ đếm FPS trong các trò chơi Linux gốc, hãy sử dụng lệnh bên dưới sau khi thay thế / path / to / thi hành bằng đường dẫn thực thi trò chơi của riêng bạn. Bạn có thể biết thêm về tất cả các tùy chọn osd-cat từ ở đây .

LIBGL_SHOW_FPS = 1 / đường dẫn / đến / thực thi 2> & 1 |
tee / dev / stderr | sed -u -n -e '/ ^ libGL: FPS = /{s/.* ([^] * ) = / 1 /; p}' |
osd_cat --lines = 1 --color = yellow --outline = 1 --pos = top --align = left

Để hiển thị bộ đếm FPS trong các trò chơi Windows chạy trên Linux thông qua Wine, hãy sử dụng lệnh bên dưới sau khi thay thế / path / to / thi hành bằng đường dẫn thực thi trò chơi của riêng bạn.

WINEDEBUG = fps rượu / đường dẫn / đến / thực thi 2> & 1 | tee / dev / stderr |
sed -u -n -e '/ trace / s /.* khoảng // p' | osd_cat --lines = 1 --color = yellow
--outline = 1 --pos = top --align = center

Nếu bạn đang sử dụng tiền tố Wine, lệnh sẽ là (tiền tố thay thế / đường dẫn / thành / wine / và / đường dẫn / đến / thực thi):

WINEDEBUG = fps WINEPREFIX = / path / to / wine / prefix wine
/ path / to / thi hành 2> & 1 | tee / dev / stderr | sed -u -n -e '/ trace / s /
. * xấp xỉ // p '| osd_cat --lines = 1 --color = yellow --outline = 1 --pos = top
--align = trung tâm

Phương pháp này có một hạn chế nhỏ. Trong khi bạn có thể tùy chỉnh osd-cat HUD, nó vẫn ở một vị trí cố định trên khu vực hiển thị mà không tính đến hình dạng của cửa sổ trò chơi. Trong ảnh chụp màn hình ở trên, bộ đếm FPS được hiển thị phía trên cửa sổ trò chơi, không phải bên trong nó. Các trò chơi chạy ở chế độ toàn màn hình không bị ảnh hưởng bởi điều này.

Phương pháp 3 (Gali3D)

  • Chỉ hoạt động với các trò chơi OpenGL.
  • Hoạt động với các trò chơi bản địa và trò chơi Rượu.
  • Đã thử nghiệm hoạt động với card đồ họa AMD với trình điều khiển mã nguồn mở.
  • Hỗ trợ Gallium3D cho Intel đang diễn ra, vì vậy vẫn chưa hoạt động.
  • Chưa được kiểm tra với thẻ NVIDIA vì tôi không sở hữu thẻ NVIDIA. Vì trình điều khiển mã nguồn mở NVIDIA được kích hoạt Gallium3D, phương pháp này sẽ hoạt động.
  • Gali3D là một API giúp phát triển trình điều khiển cho cạc đồ họa dễ dàng hơn bằng cách cung cấp một bộ thư viện và giao diện tiêu chuẩn. Các trình điều khiển mã nguồn mở của AMD và NVIDIA được xây dựng dựa trên Gallium3D.

    Để hiển thị bộ đếm FPS trong các trò chơi Linux gốc, hãy sử dụng lệnh bên dưới sau khi thay thế / path / to / thi hành bằng đường dẫn thực thi trò chơi của riêng bạn:

    GALLIUM_HUD='đơn giản, fps' /con đường/đến/có thể thực thi

    Để hiển thị bộ đếm FPS trong các trò chơi Windows chạy trên Linux thông qua Wine, hãy sử dụng lệnh bên dưới sau khi thay thế / path / to / thi hành bằng đường dẫn thực thi trò chơi của riêng bạn.

    GALLIUM_HUD='đơn giản, fps' rượu /con đường/đến/có thể thực thi

    Nếu bạn đang sử dụng tiền tố Wine, lệnh sẽ là (tiền tố thay thế / đường dẫn / thành / wine / và / đường dẫn / đến / thực thi):

    GALLIUM_HUD = 'simple, fps' WINEPREFIX = / path / to / wine / prefix wine / path / to / thi hành được

    Trong ảnh chụp màn hình ở trên, tôi đang sử dụng biến GALLIUM_HUD tùy chỉnh hiển thị cả nhiệt độ GPU và CPU. Lệnh tùy chỉnh này khác nhau đối với các cấu hình PC khác nhau. Để đọc thêm về tất cả các tùy chọn tùy chỉnh, hãy chạy các lệnh:

    sudođúng cáchTải vềtable-utils
    GALLIUM_HUD=Cứu giúpglxgears

    Chỉ để tham khảo, đây là lệnh Tùy chỉnh mà tôi đã sử dụng trong ảnh chụp màn hình ở trên:

    GALLIUM_HUD='đơn giản, fps; sensor_temp_cu-amdgpu-pci-1c00.temp1;
    sensor_temp_cu-k10temp-pci-00c3.Tdie '
    /con đường/đến/có thể thực thi

    Phương pháp 4 (Bảng lớp phủ Vulkan)

    Ghi chú về khả năng tương thích:

    • Chỉ hoạt động với trò chơi Vulkan.
    • Chỉ hoạt động với Ubuntu 19.10+ và các bản phân phối khác có Mesa mới nhất với lớp phủ vulkan.
    • Hoạt động với các trò chơi gốc và trò chơi Steam Proton chạy với hỗ trợ DXVK / D9VK.
    • Hoạt động với các trò chơi Wine chạy với DXVK / D9VK libs.
    • Trạng thái làm việc không xác định đối với Wine’s Vkd3d . Vì đây là lớp Vulkan nên nó sẽ hoạt động với mọi thứ miễn là Mesa được xây dựng với hỗ trợ VK_LAYER_MESA_overlay.
    • Đã thử nghiệm hoạt động với card đồ họa AMD và card Intel tích hợp với trình điều khiển mã nguồn mở.
    • Chưa được kiểm tra với thẻ NVIDIA vì tôi không sở hữu thẻ NVIDIA. Vì đây là lớp Vulkan nên nó sẽ hoạt động với mọi thứ miễn là Mesa được xây dựng với hỗ trợ VK_LAYER_MESA_overlay.

    Bảng lớp phủ Vulkan là một lớp Vulkan mới được thêm vào các bản dựng gần đây của Mesa. Nó hiển thị nhiều thông tin khác nhau về ứng dụng đang chạy bằng cách sử dụng lớp phủ.

    Để hiển thị bộ đếm FPS trong các trò chơi Linux gốc, hãy sử dụng lệnh bên dưới sau khi thay thế / path / to / thi hành bằng đường dẫn thực thi trò chơi của riêng bạn:

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_laylay VK_LAYER_MESA_OVERLAY_CONFIG = position = top-left / path / to / thi hành

    Để hiển thị bộ đếm FPS trong các trò chơi Windows chạy trên Linux thông qua Wine và DXVK, hãy sử dụng lệnh bên dưới sau khi thay thế / path / to / thi hành bằng đường dẫn thực thi trò chơi của riêng bạn:

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG = position = top-left wine / path / to / thi hành

    Nếu bạn đang sử dụng tiền tố Wine, lệnh sẽ là (tiền tố thay thế / đường dẫn / thành / wine / và / đường dẫn / đến / thực thi):

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_laylay
    VK_LAYER_MESA_OVERLAY_CONFIG = vị trí = trên cùng bên trái
    WINEPREFIX = / path / to / wine / prefix wine / path / to / thieu

    Phương pháp 5 (DXVK HUD)

    Ghi chú về khả năng tương thích:

    • Chỉ hoạt động với các trò chơi Vulkan chạy trong Wine và Proton với DXVK / D9VK libs.
    • Đã thử nghiệm hoạt động với AMD và card đồ họa Intel tích hợp với trình điều khiển mã nguồn mở.
    • Chưa được kiểm tra với thẻ NVIDIA vì tôi không sở hữu thẻ NVIDIA. Mã nguồn có các cam kết đề cập đến hỗ trợ NVIDIA nên phương pháp này sẽ hoạt động.

    DXVK cung cấp lớp dịch dựa trên Vulkan cho D3D10 và D3D11 cho phép người dùng chơi các trò chơi Direct3D 10/11 trên Linux. D9VK sử dụng phụ trợ DXVK để cung cấp triển khai Direct3D9 bổ sung có thể được sử dụng để chơi các trò chơi được xây dựng trên D3D9.

    Để hiển thị bộ đếm FPS trong các trò chơi DXVK chạy trên Linux thông qua Wine, hãy sử dụng lệnh bên dưới sau khi thay thế / path / to / thi hành bằng đường dẫn thực thi trò chơi của riêng bạn:

    DXVK_HUD= fpsrượu /con đường/đến/có thể thực thi

    Nếu bạn đang sử dụng tiền tố Wine, lệnh sẽ là (tiền tố thay thế / đường dẫn / thành / wine / và / đường dẫn / đến / thực thi):

    DXVK_HUD= fpsWINEPREFIX=/con đường/đến/rượu/tiếp đầu ngữrượu /con đường/đến/có thể thực thi

    Điều này đánh dấu sự kết thúc của bài đăng này. Để kết thúc, tôi sẽ đề cập đến một chi tiết nhỏ bị bỏ qua ở trên. Tất cả các phương pháp non-steam được giải thích ở trên cũng sẽ hoạt động với các trò chơi trên Steam. Bạn phải thay thế / path / to / thi hành hoặc wine / path / to / thi hành hoặc WINEPREFIX = / path / to / wine / prefix wine / path / to / thi hành bằng lệnh%% trong các lệnh tương tự được sử dụng ở trên. Chỉ cần thêm lệnh đầy đủ để khởi chạy các tùy chọn trong thuộc tính trò chơi bên trong ứng dụng Steam, như được hiển thị trong ảnh chụp màn hình bên dưới: