- Các bản vá của Natalie Vock cho nhân hệ điều hành và KDE ưu tiên VRAM cho các trò chơi chạy nền, giảm mức sử dụng GTT và hiện tượng giật hình.
- dmemcg-booster và plasma-foreground-booster phối hợp nhân hệ điều hành và màn hình nền để bảo vệ bộ nhớ GPU được phân bổ cho trò chơi đang hoạt động.
- Những cải tiến này chủ yếu mang lại lợi ích cho GPU AMD có 8 GB VRAM trở xuống, vốn đã có sẵn trong CachyOS và đang được lên kế hoạch tích hợp vào hệ điều hành chính thức.
- Hệ thống mới tận dụng tốt hơn từng MB VRAM, ổn định FPS tối thiểu và kéo dài tuổi thọ của các card đồ họa tầm trung trên Linux.
Nếu bạn chơi game trên PC chạy Linux và vẫn đang sử dụng card đồ họa có... 8 GB VRAM trở xuốngChắc hẳn bạn đã từng gặp phải hiện tượng giật hình, giật hình nhẹ và giảm FPS trong các tựa game mới nhất. Điều đáng chú ý là, thường thì trải nghiệm kém này không phải do sức mạnh xử lý đồ họa của bạn mà là do... Cách hệ thống quản lý bộ nhớ video Khi mọi chuyện trở nên tồi tệ.
Tất cả những điều này vừa trở nên khá nghiêm trọng nhờ vào công việc của... Natalie Vock, kỹ sư thuộc nhóm phát triển trình điều khiển đồ họa của Valve.Vock, chuyên về RADV (trình điều khiển Vulkan dành cho GPU AMD), đã phát triển một bộ bản vá cho... Nhân Linux, KDE Plasma và hệ sinh thái Gamescope Điều này làm thay đổi hoàn toàn cách hệ thống quyết định dữ liệu nào được giữ lại trong VRAM và dữ liệu nào được chuyển sang RAM hệ thống khi không còn chỗ trống.
Vấn đề với GPU có 8 GB VRAM trên Linux
Trong những năm gần đây, dung lượng bộ nhớ video đã trở thành một nút thắt cổ chai thực sự. Các trò chơi hiện tại tải Kết cấu đồ sộ, hình học phức tạp và hiệu ứng tiên tiến Những trò chơi ngốn dung lượng VRAM. Với 8 GB hoặc ít hơn, vốn rất phổ biến ở các card đồ họa tầm trung, trò chơi rất dễ làm đầy bộ nhớ của card đồ họa ngay khi bạn tăng thiết lập đồ họa lên dù chỉ một chút.
Trong Linux, khi VRAM bắt đầu tràn, hiện tượng được gọi là... Bảng chuyển đổi đồ họa (GTT)Về cơ bản, hệ thống bắt đầu chuyển một số dữ liệu GPU sang RAM của máy tính để ngăn ngừa sự cố. Vấn đề là RAM, mặc dù nhanh, nhưng chậm hơn đáng kể so với VRAM, và sự chênh lệch độ trễ này dẫn đến... Hiện tượng giật hình, tăng đột biến tốc độ khung hình và cảm giác chơi game không mượt mà..
Cho đến nay, nền tảng Linux Tôi không có cách nào thực sự tinh tế để quyết định. dữ liệu nào xứng đáng được lưu trữ trong VRAM và những tiến trình nào có thể được gửi đến RAM mà không gặp vấn đề nghiêm trọng nào. Hệ thống không tính toán chính xác xem tiến trình đó là một trò chơi toàn màn hình hay một... trình duyệt bị ẩn trong nềnTrong nhiều trường hợp, chính trò chơi bị loại bỏ một phần khỏi bộ nhớ VRAM, trong khi các ứng dụng máy tính để bàn ít quan trọng hơn vẫn tiếp tục chiếm dụng bộ nhớ video.
Tất cả những điều này dẫn đến một tình huống không hề lý tưởng cho game thủ: với GPU 8GB, trong các tựa game đòi hỏi cấu hình cao như... Cyberpunk 2077 dưới Chơi hơi nướcHệ thống hầu như chỉ sử dụng 6 GB VRAM, trong khi GTT lại chiếm hơn 1,3 GB RAM, điều này hoàn toàn không mong muốn. Tóm lại: Mặc dù dung lượng VRAM còn trống rất nhiều, nhưng trò chơi vẫn gặp vấn đề..
Hậu quả thực tế đối với người dùng là điều hiển nhiên: Tốc độ khung hình tối thiểu không ổn định, giật hình khi tải khu vực mới., hiện tượng giật lag nhỏ khi xoay camera hoặc di chuyển đến khu vực khác và cảm giác chung là "đồ họa chỉ ở mức tạm được", trong khi thực tế điểm nghẽn đến từ việc quản lý bộ nhớ kém hiệu quả.

Đề xuất của Valve và Natalie Vock: ưu tiên xử lý đồ họa trên VRAM cho game.
Để giải quyết tận gốc vấn đề này, Vock đã thiết kế một giải pháp kết hợp nhiều yếu tố. Thay đổi nhân hệ điều hành bằng các công cụ trong không gian người dùngÝ tưởng cốt lõi rất dễ giải thích, mặc dù đằng sau đó là rất nhiều kỹ thuật: để nói rõ với Linux Ứng dụng nào đang chạy ở chế độ nền trước và cần được ưu tiên tuyệt đối trong VRAM?.
Cốt lõi kỹ thuật của đề xuất này bao gồm các bản vá lỗi cho... Bộ điều khiển cgroup bộ nhớ thiết bị (DRM) và một loạt các sửa đổi sâu sắc đối với hệ thống quản lý bộ nhớ Translation Table Maps (TTM) của nhân hệ điều hành. TTM chịu trách nhiệm quyết định cách phân bổ và giải phóng bộ nhớ trong các thiết bị đồ họa, vì vậy đây là nơi hoàn hảo để dạy hệ thống một cách tư duy mới.
Những bản vá này cho phép nhân hệ điều hành hoạt động. Xác định nhóm bộ nhớ liên quan đến trò chơi chính. và dành cho nó sự ưu ái đặc biệt. Khi cần phải loại bỏ một thứ gì đó khỏi VRAM vì hết dung lượng, hệ thống sẽ tìm kiếm trước tiên trong... Các tiến trình máy tính để bàn, trình duyệt, trình phát đa phương tiện hoặc tiện ích Chúng đang chạy ngầm, khiến nội dung quan trọng của trò chơi chỉ có thể được truy cập khi không còn cách nào khác.
Nói một cách dễ hiểu hơn: từ giờ trở đi, nếu bạn đang chơi game và mở nhiều cửa sổ cùng lúc, VRAM "thuộc về" trò chơi trước mọi thứ khác.Chỉ khi thực sự không còn lựa chọn nào khác, Linux mới sử dụng tài nguyên của tựa game đang chạy, giúp giảm đáng kể khả năng giật hình do quyết định thoát game không đúng cách.
Đằng sau sự thay đổi này là sự tích hợp rất chặt chẽ với các chức năng của nhóm Linux sử dụng một cơ chế mà systemd đã sử dụng để cô lập và kiểm soát tài nguyên ứng dụng. Vock đã tận dụng hệ thống này để tạo ra một cách thức nhằm... phân loại và bảo vệ bộ nhớ GPU theo nhóm quy trìnhĐiều này cho phép nhân hệ điều hành luôn biết được những gì cần được bảo toàn và những gì có thể bị hy sinh.
dmemcg-booster: trái tim của hệ thống điều khiển bộ nhớ thiết bị mới
Thành phần quan trọng trong không gian người dùng được gọi là dmemcg-boosterĐây là một dịch vụ dành cho systemd, có chức năng điều phối cách thức áp dụng các giới hạn và mức độ ưu tiên. Nhóm điều khiển bộ nhớ thiết bị (DMEM cgroups) Về các ứng dụng sử dụng GPU.
Chức năng chính của nó là thông báo rõ ràng cho hệ thống. Chương trình nào cần được bảo vệ trong VRAM? ở mọi thời điểm. Khi bạn khởi chạy một trò chơi và nó trở thành cửa sổ chính, dmemcg-booster sẽ đánh dấu nó là một tiến trình ưu tiên trong cgroup của nó, để nhân hệ điều hành hiểu được điều đó. Bộ nhớ video đó không thể bị xâm phạm một cách tùy tiện..
Nếu không có cơ chế này, nhân hệ điều hành sẽ coi tất cả các mức sử dụng VRAM gần như giống nhau, dẫn đến việc loại bỏ bộ nhớ một cách "mù quáng". Khi dmemcg-booster đang chạy, nếu cần giải phóng dung lượng do bộ nhớ đầy, Các tiến trình đầu tiên được nạp vào RAM sẽ là các tiến trình thứ cấp.: màn hình nền, trình duyệt hoặc ứng dụng không được chọn.
Việc ưu tiên này không tự động làm giảm mức tiêu thụ VRAM của trò chơi, nhưng nó giúp giảm thiểu tác hại. Tận dụng tối đa từng megabyte có sẵn.Do đó, một GPU trước đây dường như gặp khó khăn do vấn đề quản lý bộ nhớ giờ đây có thể hoạt động hiệu quả hơn. gần hơn nhiều với tiềm năng thực sự của nó.
Trong các bài kiểm tra mà Vock đã chia sẻ với cyberpunk 2077 Trên card đồ họa 8GB sử dụng Steam Play, sự thay đổi rất dễ nhận thấy: trước khi cập nhật, trò chơi hầu như chỉ sử dụng 6GB VRAM, với khoảng 1,37GB RAM dành cho GTT. Sau khi kích hoạt kiến trúc bộ nhớ mới, trò chơi sử dụng... khoảng 7,4 GB VRAM thực tếTrong khi đó, mức sử dụng GTT giảm xuống còn khoảng 650 MB, tức là nó giảm xuống còn chưa đến một nửa.
bộ tăng cường tiền cảnh plasma và sự phối hợp với KDE Plasma
Để toàn bộ hệ thống ưu tiên này hoạt động trơn tru, việc chỉ sửa đổi nhân hệ điều hành là chưa đủ; môi trường máy tính để bàn cũng cần được sửa đổi. Cho hệ thống biết cửa sổ nào đang thực sự hiển thị ở phía trước.Đây là lúc thành phần thứ hai do Valve phát triển phát huy tác dụng: bộ tăng cường tiền cảnh plasma.
Mô-đun này được thiết kế để tích hợp với KDE Plasma và đóng vai trò như một cầu nối giữa máy tính để bàn và cơ chế cgroups bộ nhớ thiết bị. Nhiệm vụ của nó rất đơn giản nhưng vô cùng quan trọng: Báo cáo theo thời gian thực cửa sổ nào đang hoạt động (thường là chơi game ở chế độ toàn màn hình) để hệ thống có thể tự động điều chỉnh mức độ ưu tiên của VRAM.
Khi bạn chuyển đổi ứng dụng hoặc nhấn Alt+Tab để chuyển sang cửa sổ khác, plasma-foreground-booster sẽ cập nhật thông tin đến kernel và dmemcg-booster, để... Quyền ưu tiên "cao nhất" đối với VRAM có thể thay đổi. Nếu bạn muốn. Đó là sự phối hợp nhịp nhàng giữa môi trường desktop và nhân hệ điều hành mà trước đây chưa từng tồn tại.
Ngoài KDE Plasma, Valve cũng đã xem xét đến những người sử dụng các môi trường máy tính để bàn khác. Trong những trường hợp đó, giải pháp bao gồm việc tận dụng... các phiên bản mới nhất của GamescopeGamescope, trình soạn nhạc mini nổi tiếng của Valve được sử dụng rộng rãi trên Steam Deck và trong môi trường game, có thể thực hiện chức năng tương tự như Plasma. Xác định cửa sổ trò chơi và đánh dấu nó để được ưu tiên nhận tài nguyên.hoặc, trong một số quy trình làm việc, sử dụng các công cụ như Chai để quản lý các phiên tương thích.
Ý tưởng cốt lõi là xây dựng một Hệ sinh thái phối hợp, từ nhân hệ điều hành đến máy tính để bàn.Trong đó toàn bộ hệ thống được điều chỉnh phù hợp với những gì người dùng thực sự muốn: trò chơi trước mặt họ chạy mượt mà nhất có thể, ngay cả khi có những tác vụ khác đang chạy ngầm.
Kết quả thực tiễn trong các trò chơi như Cyberpunk 2077.
Ngoài lý thuyết, điều quan trọng là tất cả những điều này được thể hiện như thế nào trong trải nghiệm chơi game hàng ngày. Trong những ví dụ công khai mà Vock đã đưa ra, một trong những trường hợp tiêu biểu nhất là Cyberpunk 2077 đang chạy trên Steam Play trên GPU 8GB.
Trước khi cập nhật bản vá, tựa game này sử dụng lượng VRAM mà trên lý thuyết có vẻ chấp nhận được, nhưng trên thực tế lại không tận dụng tối đa dung lượng bộ nhớ khả dụng: khoảng 6 GB trên GPU và 1,37 GB "được chuyển" sang GTT.Việc tràn dữ liệu liên tục này dẫn đến một phần đáng kể dữ liệu đồ họa thực tế nằm trong bộ nhớ RAM của hệ thống, buộc GPU phải truy vấn dữ liệu đó thông qua GTT và tạo ra lỗi. sự tăng vọt về thời gian phản hồi.
Với kiến trúc mới được xây dựng, cảnh quan thay đổi đáng kể. Cyberpunk 2077 bắt đầu sử dụng... gần như toàn bộ VRAM khả dụng, khoảng 7,4 GB.Trong khi đó, mức sử dụng GTT giảm xuống còn khoảng 650 MB. Lượng bộ nhớ bị loại bỏ ít hơn đồng nghĩa với việc ít truy cập RAM chậm hơn và do đó, một trải nghiệm chơi game ổn định hơn nhiều.
Điều quan trọng cần nhấn mạnh là những bản vá này không chủ yếu hướng đến mục đích nào cụ thể. Tăng FPS tối đaCon số nhỏ mà bạn nhìn thấy khi nhìn vào tường, nhưng để cải thiện điều đó... Độ ổn định FPS và thời gian khung hình tối thiểuNói cách khác, hiện tượng giật hình được giảm thiểu, các điểm nhọn được làm mượt mà hơn, và cảm giác tổng thể mượt mà hơn, điều mà người chơi thực sự nhận thấy khi di chuyển trong Night City hoặc bất kỳ thế giới mở đòi hỏi cao nào khác.
Trên thực tế, lợi ích này đặc biệt rõ rệt ở những hệ thống mà dung lượng VRAM đã gần đạt đến giới hạn: card đồ họa 8 GB trở xuống chạy được các game AAA hiện đạiVới nhiều chương trình được mở đồng thời. Chính trong những tình huống "vừa đủ" này, việc quản lý tốt các lệnh loại bỏ và ưu tiên có thể kéo dài tuổi thọ của thẻ thêm vài thế hệ nữa.
Phân phối, khả năng tương thích và trạng thái bản vá hiện tại
Giờ đây, khi các chi tiết đã được công bố, cách dễ nhất để kiểm tra kiến trúc bộ nhớ mới này là sử dụng... cachyOS, một bản phân phối đã đi trước các bản khác và tích hợp các bản vá này theo mặc định vào cả nhân hệ điều hành và các thành phần không gian người dùng.
Đối với các bản phân phối khác, điều đó là có thể Biên dịch nhân hệ điều hành đã được vá lỗi và các gói dmemcg-booster và plasma-foreground-booster. Một cách độc lập, mặc dù điều này đã ngụ ý một trình độ kiến thức cao hơn. Vock và hệ sinh thái dự định rằng, theo thời gian, tất cả những cải tiến này sẽ trở thành hiện thực. được tích hợp vào nhân Linux chính thức. và trong các kho lưu trữ chính thức của KDE và Valve, để người dùng Ubuntu, Fedora, Arch và các hệ điều hành khác có thể hưởng lợi mà không cần phải can thiệp vào bất cứ thứ gì bất thường; và, đối với những người cần các lớp tương thích, cũng có các tùy chọn như... Rượu nho.
Có một điểm quan trọng cần lưu ý: những thay đổi này chủ yếu nhằm mục đích GPU AMD với trình điều khiển mở và ngăn xếp RADV. Lý do rất đơn giản: việc quản lý bộ nhớ của card NVIDIA phụ thuộc rất nhiều vào... trình điều khiển độc quyền đóngĐiều này hạn chế nghiêm trọng những gì có thể thực hiện từ nhân hệ điều hành và không gian người dùng tự do. Trong trường hợp của AMD, việc có trình điều khiển mã nguồn mở cho phép tinh chỉnh tốt hơn nhiều sự tương tác giữa nhân hệ điều hành, DRM, TTM và trình điều khiển đồ họa.
Về tiến độ, một số bản phân phối đã và đang nỗ lực tích hợp những cải tiến này trong ngắn hạn và trung hạn. Nhân hệ điều hành có hỗ trợ cho... Bộ điều khiển cgroup DMEM Và khi các bản vá TTM được hợp nhất vào các phiên bản ổn định, sẽ phổ biến hơn khi tìm thấy các bản phân phối bao gồm... Ưu tiên VRAM cho trò chơi Thực tế là "sẵn sàng sử dụng ngay".
Đối với những người sử dụng môi trường máy tính để bàn khác ngoài KDE Plasma, giải pháp hợp lý nhất là tận dụng những lợi thế của... ống kính trò chơi Trong phiên bản mới nhất, Valve đang biến nó thành công cụ tiêu chuẩn để quản lý các phiên chơi game, đặc biệt là trên các thiết bị phần cứng như Steam Deck hoặc các máy móc tương lai giả định của công ty.
Ảnh hưởng đến trải nghiệm chơi game và tuổi thọ phần cứng.
Hậu quả trực tiếp của tất cả công việc này là: hàng triệu game thủ với GPU 8GB Họ có thể tiếp tục khai thác tối đa khả năng của card đồ họa mà không cần phải giảm đáng kể cài đặt đồ họa hoặc nâng cấp phần cứng ngay lập tức. Cách tiếp cận của Vock và Valve nhấn mạnh điều này. hiệu quả phần mềm và phân bổ tài nguyên thông minhBù đắp phần nào cho những hạn chế vật lý của chính con chip và bộ nhớ của nó.
Thay vì chấp nhận việc bộ nhớ VRAM đầy và hệ thống tự động quyết định loại bỏ dữ liệu nào, giờ đây đã có một chiến lược rõ ràng: Trò chơi đang hiển thị ở phía trước là trò chơi cuối cùng rời khỏi bộ nhớ VRAM.Điều này có nghĩa là ngay cả với các họa tiết nặng và môi trường phức tạp, công cụ trò chơi vẫn có nhiều khả năng giữ dữ liệu quan trọng trong bộ nhớ tốc độ cao của GPU, giảm thiểu sự cố treo máy.
Đối với người dùng thông thường, điều này có nghĩa là rất rõ ràng: bạn có thể tiếp tục sử dụng máy tính để bàn, mở trình duyệt với nhiều tab, trình phát nhạc hoặc ứng dụng trò chuyện, biết rằng, khi thời điểm quan trọng đến, Họ sẽ là những người hy sinh bản thân mình đầu tiên. Về vấn đề VRAM, chứ không phải trò chơi của bạn.
Từ một góc nhìn rộng hơn, tác phẩm của Vock cũng củng cố thông điệp rằng Valve rất nghiêm túc với việc phát triển game trên Linux.Việc này không chỉ dừng lại ở việc phát hành các thiết bị chơi game như Steam Deck hay Steam Machine với 8 GB bộ nhớ video GDDR6 dùng chung, mà còn đầu tư nguồn lực vào việc cải thiện toàn bộ hệ sinh thái: nhân hệ điều hành, trình điều khiển, môi trường desktop và các công cụ như Gamescope.
Đối với những ai quan tâm đến độ trễ, thời gian khung hình và độ ổn định trong các tựa game phức tạp, các bản vá này cung cấp chính xác những gì cần thiết: quản lý trục xuất dựa trên ngữ cảnhAi hiểu được thế nào là một trò chơi toàn màn hình và thế nào chỉ đơn thuần là tiếng ồn nền trên máy tính?
Tóm lại, cơ sở hạ tầng mới do Natalie Vock dẫn đầu thể hiện một bước tiến đáng kể trong cách Linux xử lý bộ nhớ video trên các hệ thống có tài nguyên hạn chế. Bằng cách kết hợp Các nhóm bộ nhớ thiết bị (cgroups), các bản vá cho hệ thống con TTM, dịch vụ dmemcg-booster và tích hợp với KDE Plasma và Gamescope.Cuối cùng thì hệ thống cũng hoạt động có lợi cho người chơi, chứ không phải ngược lại. Đối với bất kỳ ai chơi trên Linux với GPU 8GB trở xuống, đây là một trong những cải tiến thầm lặng mà một khi đã trải nghiệm, bạn sẽ cảm thấy rất tiếc nếu nó biến mất.
Người viết đam mê về thế giới byte và công nghệ nói chung. Tôi thích chia sẻ kiến thức của mình thông qua viết lách và đó là những gì tôi sẽ làm trong blog này, cho bạn thấy tất cả những điều thú vị nhất về tiện ích, phần mềm, phần cứng, xu hướng công nghệ, v.v. Mục tiêu của tôi là giúp bạn điều hướng thế giới kỹ thuật số một cách đơn giản và thú vị.
