Vì sao chơi game 4K lại ngốn VRAM nhiều đến thế? Đây là câu trả lời cho bạn
Không chỉ có độ phân giải tăng nên mới ngốn VRAM đâu, mà việc chơi game 4K còn dính tới nhiều vấn đề khác khiến VRAM bị hao hụt rất nhiều.
Ngoài số nhân, xung nhịp GPU ra, một trong những thông số cũng quan trọng không kém khi lựa mua card màn hình đó là dung lượng VRAM, nhất là trong bối cảnh hiện nay – khi mà những tựa game bom tấn đang có xu hướng càng ngày càng ngốn nhiều VRAM. Chẳng hạn, Star Wars Jedi: Survivor, The Last of Us Part 1, Warhammer 40K: Darktide, Hogwarts Legacy, Final Fantasy 7 Remake, Elden Ring,… đều là những tựa game đình đám có thể ngốn hơn 8GB VRAM, hay thậm chí là vượt ngưỡng 12GB (tùy theo thiết lập đồ họa và độ phân giải màn hình). Lý do thật sự khiến game càng ngốn VRAM là gì? Và rốt cuộc game thủ chúng ta phải lựa card có bao nhiêu VRAM mới đủ? Mời các bạn cùng GVN 360 đi tìm câu trả lời trong bài này nhé.
Theo lẽ thường tình thì chúng ta sẽ nghĩ rằng độ phân giải càng cao, VRAM sẽ bị ngốn càng nhiều. Dù gì thì 4K (3840 x 2160) cũng có số lượng pixel nhiều gấp 4 lần so với FullHD (1920 x 1080), và gấp 2,5 lần so với 2K (2560 x 1440), cho nên chuyện nó ngốn VRAM nhiều hơn cũng là điều dễ hiểu. Ừ thì điều đó đúng chứ không có sai, nhưng nếu chỉ có bản thân độ phân giải thôi thì nó không thể ngốn nhiều VRAM đến như vậy các bạn ạ.
Game bây giờ có rất nhiều buffers (tạm dịch: “bộ nhớ đệm”) như: buffers khung hình, buffers chiều sâu, buffers hình học, buffers cho hiệu ứng đổ bóng và ánh sáng, hay thậm chí là có thêm cả buffers cho các công nghệ upscale như Nvidia DLSS và AMD FSR. Ngoài ra, hiệu ứng ray tracing cũng có thể ngốn VRAM nữa đó. Nôm na là có rất nhiều thứ cần lưu vào trong VRAM chứ không chỉ riêng gì độ phân giải đâu nhé.
Khi độ phân giải tăng thì những thứ ở trên cũng đòi nhiều VRAM hơn. Chẳng hạn, đối với frame buffer, từ FullHD bay lên 4K thường sẽ cần gấp 4 lần lượng VRAM. Nếu áp dụng cách tính tương tự cho mỗi buffer thì nghe có vẻ nhiều đó, nhưng khi chúng ta ngồi tính lại thì thấy cũng không bao nhiêu đâu.
Đối với độ phân giải FullHD, mỗi buffer sẽ cần 8.294.400 bytes (1920 x 1080 pixels, với 4 bytes cho mỗi pixel). Đối với độ phân giải 4K, chúng ta sẽ cần nhân 4 lần, thành 33.177.600 bytes; còn đối với 2K thì sẽ cần 14.745.600 bytes. Giả sử trong 1 game cần tới 10 buffers như đã đề cập bên trên, vị chi khác biệt giữa 4K và FullHD cũng chỉ có tầm 237MB mà thôi. Ngoài ra, đối với một số loại buffer nhất định, thế hệ GPU ngày nay còn có khả năng nén và giải nén theo thời gian thực, giúp giảm mức độ ngốn VRAM thêm nữa.
Phần lớn card đồ họa hiện tại đều có ít nhất là 8GB VRAM, cho nên việc ngốn thêm tầm 200MB cũng chẳng đáng là bao cả. Tuy nhiên, thực tế thì không như vậy các bạn ạ, bằng chứng là 8GB VRAM sẽ dư đối với FullHD, nhưng sẽ thiếu đối với 4K, nhất là những trò AAA. Vậy thì ngoài buffer ra, vẫn còn cái gì đó khác ngốn rất nhiều VRAM.
Nguyên nhân thật sự khiến VRAM bị ngốn nhiều đến thế chính là textures các bạn ạ. Nó bao gồm shadow maps, environment maps, và những thứ khác được lưu trên VRAM mà có liên quan đến texture. Tới đây thì hẳn nhiều bạn sẽ nói “Biết rồi! Khổ lắm! Nói mãi!”, nhưng mấu chốt ở đây không chỉ là vì texture có chất lượng cao hơn, mà nguyên nhân còn là do yếu tố khác các bạn ạ.
Lấy ví dụ như Far Cry 6 đi. Khi xài thêm gói HD texture và chạy ở độ phân giải 4K trên một con card đồ họa có 8GB VRAM, game sẽ xảy ra một số vấn đề liên quan tới VRAM. Far Cry 6 vẫn chạy ổn ở độ phân giải 1440p với thiết lập Ultra (tắt ray tracing) trên con card RTX 3070, đạt fps trung bình tầm 100. Nhưng khi tăng lên 4K thì hiệu năng lúc này có khi xuống dưới mức 60 fps luôn, và đôi lúc chạm đáy 10–20 fps.
Tương tự với Total War: Warhammer 3 khi chạy trên con card RTX 3070 có 8GB VRAM. Ở độ phân giải 2K Ultra, game đạt trung bình 65 fps, còn khi chuyển sang 4K thì chỉ còn có 28 fps mà thôi, tức là cách biệt tới 57%. Trong khi đó, đối với RTX 3060 (12GB VRAM), hiệu năng bị giảm từ 44 fps xuống còn 23 fps khi xài thiết lập đồ họa tương tự, nhưng cách biệt lúc này chỉ có 48% mà thôi.
Thủ phạm vẫn chính là texture, và nó dính với 1 thứ gọi là MIP mapping. Mipmaps được dùng trong đồ họa máy tính hàng chục năm qua rồi. Ý tưởng ở đây là tính toán trước các phiên bản độ phân giải thấp của 1 texture nào đó, thường là sẽ xài phương thức resize chất lượng cao như bicubic filtering chẳng hạn. Việc này có thể sẽ ngốn rất nhiều tài nguyên khi chạy theo thời gian thực (hoặc chí ít là đối với GPU hồi đó), cho nên các nhà phát triển game đã phải tính toán trước các mipmaps.
Lợi ích của việc này đó là bạn có thể cải thiện chất lượng của hình ảnh, giảm thiểu tình trạng moiré, răng cưa, và những lỗi khác. Nhưng lợi ích lớn nhất đó là mipmaps có thể giúp game bớt ngốn VRAM – thứ cần dùng để lưu trữ tất cả các texture. GPU chỉ cần lưu độ phân giải cao nhất được sử dụng (highest accessed resolution) của 1 texture trong VRAM (cùng với tất cả mipmaps ở độ phân giải thấp hơn, nhưng cộng dung lượng của những mipmaps này lại thì nó cũng chưa bằng phân nửa so với mipmap chính). Đây cũng chính là mấu chốt vì sao chơi game 4K lại khó khăn hơn FullHD hay 2K rất nhiều.
Đi sâu hơn một chút, thường thì engine game áp texture lên khung hình, nó sẽ dùng độ phân giải texture cao hơn 1 nấc so với số lượng pixel mà vật thể đó sẽ chiếm trên màn hình – cứ cho là độ phân giải texture đó có sẵn đi. Ví dụ, có 1 đa giác hình chữ nhật chiếm 1/3 màn hình FullHD, vậy thì nó sẽ chiếm 640 x 360 pixels, suy ra hầu hết engine game sẽ xài texture có độ phân giải 1024 x 1024 cho nó.
Khi dịch chuyển viewport đến gần đa giác đó để nó chiếm toàn bộ màn hình, nghĩa là nó chiếm 1920 x 1080 pixels, thì engine game có thể xài mipmap 2048 x 2048 pixels. Tiến tới gần hơn nữa để toàn bộ màn hình hiển thị chỉ ½ đa giác đó, khi này (và chỉ khi này) engine game thường sẽ chọn texture 4096 x 4096 pixels (cứ cho là độ phân giải texture này có sẵn).
Điều này có nghĩa là game hỗ trợ texture 2K (2048 x 2048 pixels) theo lý thuyết sẽ hiển thị chất lượng texture “tối đa” nếu bạn chỉ chơi game ở độ phân giải FullHD. Với việc mấy tựa game ngày nay xài nhiều hình thù phức tạp, cộng với môi trường rườm rà, khả năng là hầu hết đa giác và texture sẽ chẳng cần đến texture 2K làm gì, chỉ cần 1K là đủ ngon lành rồi. Ngay cả độ phân giải 2K thường cũng chỉ cần xài texture 2K (hoặc thấp hơn) mà thôi. Lý do là vì ngay cả khi texture 4K (4096 x 4096 pixels) có sẵn để xài đi chăng nữa thì hầu hết đa giác đều chiếm ít hơn 2048 pixels (chiều ngang hoặc chiều dọc), trừ khi bạn đến sát rạt bề mặt của vật thể đó, khiến nó vượt ngưỡng kia.
Tới đây thì các bạn hẳn cũng đã mường tượng được phần nào câu chuyện tiếp theo rồi đó. Tăng độ phân giải lên 4K, và thế là engine game và GPU sẽ phải lưu trữ và sử dụng texture độ phân giải cao hơn trong VRAM một cách thường xuyên hơn. Chất lượng hình ảnh có thể tăng không nhiều, nhưng VRAM sẽ bị ngốn nhiều hơn thấy rõ, có khi ngốn nhiều gấp 3 lần chứ chẳng đùa đâu. Hậu quả là hiệu năng sẽ bị giảm rõ rệt, nhất là khi VRAM không còn đủ chỗ chứa nữa.
Epic
High
Medium
Low
Bộ hình trên cho thấy trò Redfall ở thiết lập Epic, chỉ trừ 1 điều là chất lượng texture được giảm về các mức High, Medium, và Low ứng với từng tấm hình. Nếu bạn xài màn hình 4K thì có thể bật toàn màn hình để soi rõ từng pixel trong tấm hình nhé. Có thể thấy khác biệt trong trường hợp này là rất ít, chỉ có tấm thảm ở bên phải là bớt chi tiết ở preset Medium, còn preset Low thì có thêm vài vật thể bị mất chi tiết nữa. Theo phỏng đoán thì thiết lập Epic sẽ xài texture 2K, High thì xài 1K, Medium thì xài 512, và Low thì xài 256. Con số ước lượng này có thể sai lệch đôi chút, nhưng nói chung là khác biệt rất ít các bạn ạ.
Có nhiều luồng ý kiến tranh cãi về việc liệu texture 2K và 4K có thật sự cần thiết hay không. Hầu hết GPU có thể upscale texture gấp 2 lần mà không làm giảm chất lượng hình ảnh quá nhiều, và những thứ như Nvidia DLSS, AMD FSR, Intel XeSS có thể giúp lấy lại một phần chất lượng thông qua việc thu thập dữ liệu từ nhiều khung hình (frame). Rõ ràng là việc xài texture 8K sẽ không giúp tăng chất lượng hình ảnh khi chơi game trên màn hình 4K hoặc thấp hơn, và có một số người còn cho biết chỉ cần áp một lớp lọc đơn giản để giúp hình ảnh trở nên sắc nét hơn (sharpening filter) là nó đã cho ra chất lượng ngon hơn so với việc xài texture độ phân giải cao rồi.
Ngoài độ phân giải texture ra, chúng ra còn một vấn đề khác nữa. Texture thường được lưu theo định dạng nén: BTC (Block Truncation Coding), S3TC, vân vân. Những định dạng này đều có chung 1 điểm, đó là chúng có tốc độ cao và cho phép truy xuất ngẫu nhiên, với tỷ lệ nén thường rơi vào tầm 4X-8X. Các thuật toán như JPEG có thể đạt tỷ lệ nén tốt hơn, nhưng nó không thể truy xuất ngẫu nhiên được.
Do việc render ở độ phân giải 4K sẽ cần thêm VRAM để lưu texture, các công nghệ upscale như Nvidia DLSS, AMD FSR, Intel XeSS đã trở nên hữu ích hơn rất nhiều trong việc tăng hiệu năng. Khi chọn upscale 2X (chế độ Quality) ở độ phân giải FullHD, hiệu năng có thể chỉ tăng tầm 10–20% mà thôi, nhưng khi chơi ở độ phân giải 4K, hiệu năng có thể được cải thiện tới 50%. Nhờ upscaling mà ngay cả khi render ở 4K, engine game cũng chỉ cần dung lượng VRAM tương đương với khi render ở độ phân giải thấp hơn.
Việc bạn có muốn chiến game ở độ phân giải 4K hay không, có muốn chỉnh thiết lập đồ họa lên mức cao nhất hay không, và có muốn bật tính năng upscaling hay không, tất cả đều là quyết định của bạn. Cái nào cũng có ưu điểm và nhược điểm của nó cả: cái thì sẽ giúp bạn chiêm ngưỡng hình ảnh đẹp hơn, cái thì sẽ giúp bạn chơi game mượt mà hơn. Dù bạn chọn hướng đi nào đi chăng nữa thì việc hiểu rõ vì sao 4K lại ngốn tài nguyên card đồ họa nhiều đến thế cũng là một điều hữu ích.
Với những thế hệ card đồ họa sắp ra mắt, chúng ta sẽ còn nghe bàn luận nhiều về vấn đề dung lượng VRAM. Cũng cần phải nhắc lại rằng đôi lúc, việc giảm chất lượng texture và hiệu ứng đổ bóng có thể giúp cải thiện hiệu năng một cách đáng kể mà không phải hi sinh chất lượng hình ảnh quá nhiều. Ngoài Redfall ở trên ra, vẫn còn có rất nhiều trò khác mà chất lượng hình ảnh ở mức thiết lập cao nhất hầu như chả khác gì nhiều so với mức thấp hơn, mà hiệu năng thì lại cách biệt rõ rệt. Thế mới nói card đồ họa sau này được trang bị nhiều hơn 16GB VRAM thì tốt đó, nhưng thực tế mà nói thì card 8GB VRAM vẫn có chỗ đứng nhất định trong thị trường hiện nay chứ không phải là không có đâu.
Hi vọng bài viết này sẽ giúp bạn hiểu thêm về card đồ họa nói chung, và mối tương quan giữa độ phân giải trong game với dung lượng VRAM nói riêng. Nếu các bạn có góp ý hoặc bổ sung thì hãy chia sẻ với mình bên dưới phần bình luận nhé. Cảm ơn các bạn đã quan tâm.
Để quẹo lựa các mẫu card màn hình mới nhất với mức giá hấp dẫn và deal thơm, các bạn có thể xem thêm tại đây (Nvidia) và tại đây (AMD) nhé.
Mời các bạn tham khảo thêm một số thông tin liên quan tại GVN 360 như:
- Khéo tay hay mò, modder nâng gấp đôi VRAM cho RTX 3070 giúp card mạnh hơn gấp 9 lần
- GPU bị xệ có thể làm hỏng VRAM trên những con card to nạc
- AMD chê Nvidia vì không đưa đủ VRAM cho game thủ chiến game 4K
- Giải mã xu hướng “sát ổ cứng” của các tựa game ngày nay
Nguồn: tom’s HARDWARE
Mời các bạn theo dõi fanpage của chúng mình theo đường link dưới đây để cập nhật những tin tức về game, công nghệ và nhiều thông tin thú vị khác nữa nhé!