Trên các máy console, người ta hiện có thể render 10000 – 20000 đối tượng trên mỗi khung hình và vẫn đạt mức 30-60 fps tùy theo chất lượng
Đều trở thành dễ dàng và có lí hơn nếu họ hoàn toàn nắm được việc các dòng code của mình tương tác với phần cứng như thế nào – mặc dầu điều này cũng đồng nghĩa với khối lượng công việc nhiều hơn chút xíu. Tuy thực tại không thể phủ nhận rằng AMD chỉ là nắm một phần trên miếng bánh đồ họa PC (đồng nghĩa với Mantle chẳng thể hoàn toàn thay thế Direct3D) nhưng ít nhất đây cũng là một bước tiến đáng kể khi cung cấp cho các lập trình viên một phương án để tận dụng lại các dòng code cấp thấp hiệu năng cao của mình, điều mà trước đây hầu như bất khả thi.
Hiện giờ Mantle mới chỉ được hiểu là một bộ phương tiện giúp các lập trình viên tiếp cận hơn với nền tảng phần cứng đồ họa trên PC. V. Nhưng rất tiếc các dòng mã lệnh cấp thấp không hoạt động đơn giản như vậy, ngay cả khi Mantle trên PC và trên console gần như là một thì khối lượng công việc mà các lập trình viên phải thực hiện cho riêng phiên bản này vẫn lớn hơn việc chỉ làm một bản Direct3D rất nhiều lần.
Cách tiếp cận của Mantle hoàn toàn trái lại. Về mặt ích lợi trước mắt, người dùng VGA của 3dfx có hiệu năng tốt hơn, nhiều tính năng hơn và ít lỗi hơn. Cũng nên mà Glide lúc đó rất được các lập trình viên ưa chuộng, đến mức mà có những thời điểm game mới ra mắt chỉ hỗ trợ mỗi Glide (tức chỉ chạy trên nền phần cứng của hãng 3dfx) hoặc nếu có phiên bản dựa trên Direct3D, OpenGL thì chất lượng cũng kém hơn so với phiên bản dùng Glide.
Kết luận: Mantle là một trong các API cấp thấp hiếm hoi loại bỏ hồ hết việc trừu tượng hóa, cho phép lập trình viên tiếp cận gần hơn với phần cứng và loại bỏ các vấn đề thường gặp trên API cấp cao như giới hạn số lượng draw call.
Cũng chính thành ra, sau này người ta coi sự lụi tàn của Glide và sự sụp đổ của 3dfx hồi 2002 là tin tốt cho toàn ngành công nghiệp. Một trong những Studio tên tuổi nhất của cả ngành công nghiệp game - DICE của EA – đã nhận vai trò tiền phong trong việc vận dụng Mantle vào trong phần tiếp theo của tựa game đình đám Battlefield.
Câu hỏi đặt ra là, với cùng một nền tảng kiến trúc vi xử lí, liệu có lí do nào để AMD – thay vì port thẳng các API này từ console lên PC – lại đi phát triển các bộ API cho từng hệ máy riêng biệt hay không? Tuy hãng chưa đưa ra câu trả lời chính thức, nhưng câu đáp mà rất nhiều chuyên gia trong ngành tin tưởng là không
Nhưng trên PC, do sự đa dạng của các kiến trúc GPU, các API cấp cao vẫn luôn chiếm ưu thế. Lúc này việc các hãng phát triển game có thể tụ họp mọi nguồn lực vào một API độc nhất đã đem đến kết quả tốt hơn cho tuốt người dùng thay vì phân tán sức lực vào các cách render khác nhau cho từng nền móng phần cứng khác nhau. Cách nhìn này nâng tầm vai trò của Mantle lên thêm một bậc.
Các API cấp cao vẫn có thể được sử dụng cho các công việc đơn giản, các công việc đòi hỏi nhiều sức mạnh xử lí từ phần cứng vẫn luôn phải được hiện trên các API cấp thấp. V. Và thật tâm mà nói thì cho tới giờ giới lập trình game, cả những người đảm đang mảng phần cứng và phần mềm đều chưa bao giờ ưng với tốc độ thực thi draw calls trên PC. Các bộ API về xử lí đồ họa mà chúng ta thường gặp như OpenGL hay Direct3D có mức trừu tượng hóa cao hơn, cắt giảm bớt khối lượng công việc mà các lập trình viên game và đồ họa phải thực hiện – cũng như cho phép chúng hoạt động trên nhiều loại nền tảng phần cứng khác nhau.
Lúc này các hãng lập trình game trên Xbox One có thể dễ dàng đem phần code đồ họa đã được viết cho console lên PC để tận dụng lại, hơn nữa lại vẫn tận dụng được các lợi thế về mặt hiệu năng khi dùng API cấp thấp (chí ít là cho các GPU GNC của AMD).
Từ trước tới giờ trên console, thực tế thì các API cấp cao và cấp thấp vẫn thường được sử dụng cùng lúc. Xét cho cùng, để có thể lột tả hết những gì mà các họa sĩ thiết kế dự định trình bày, các vật thể cần được xử lí càng tách biệt và chi tiết càng tốt. Tác hại của API cấp thấp Khác biệt lớn nhất của các máy console với PC là sự đồng nhất. Chúng chỉ được hợp nhất với nhau bởi các yêu cầu tính năng mà Microsoft đã định ra trong Direct3D
Câu hỏi đặt ra là, liệu AMD có thuyết phục nổi giới lập trình viên ưu ái mình đến vậy hay không? Và câu trả lời, theo như các thông báo mà AMD cung cấp thời kì gần đấy, thật may mắn là có. Đúc kết từ những điều này, có thể nhận ra rằng khi phát triển API cho các mẫu console mới, thực tiễn AMD sẽ cần phải phát triển hai bộ khác nhau, phục vụ hai mức cường độ công việc khác nhau.
Cụ thể hơn, chính AMD chứ không ai khác sẽ phải cung cấp các driver và API mà các nhà lập trình game cho các máy này sẽ cần dùng để tận dụng hết các sức mạnh xử lí của phần cứng trên đó. Mantle và vấn đề hiệu năng Để trình diễn.
Nhưng ngược lại người dùng card ATI (sau này thuộc về AMD) và NVIDIA cố nhiên sẽ không lấy gì làm vui vẻ, thậm chí đôi lúc gần như bị bỏ rơi.
Về cơ bản, các API cấp cao như Direct3D hay OpenGL đều phải đánh đổi các lợi thế đã nói ở trên với một phần hiệu năng. Để tổng kết lại cho buổi giới thiệu sản phẩm hôm 24/9 mới rồi, AMD có đưa ra một số giới thiệu khá ngắn gọn về bộ API (application programming interface) mới nhất mang tên Mantle của mình. Điều này dẫn đến kết luận rằng Mantle – dù được giới thiệu là sản phẩm cho PC – bản chất chính là bộ API cấp thấp của Xbox One được AMD port lên PC.
Để tạo ra một frame hình có thể cần tới hàng trăm thậm chí hàng ngàn draw calls (đặc biệt đối với các game 3D bối cảnh rộng), việc sắp xếp các thông tin cấp thiết cho việc render và gửi đi một draw calls sẽ tốn một khoảng thời kì nhất định. Tuy rằng hãng có hẹn rằng sẽ diễn đạt cụ thể các chi tiết kỹ thuật của Mantle tại AMD Developer Summit vào tháng 11 tới, nhiều cây bút của các trang tin công nghệ hiện đã đang phát sốt vì những thay đổi mà bộ API này có thể mang lại.
Một trong số những vấn đề thường gặp nhất là vấn đề về draw calls (tạm dịch: lệnh gọi vẽ), lệnh yêu cầu GPU tiến hành render một vật thể. Nói một cách xác thực và đầy đủ, Mantle là một bộ API cấp thấp chuyên dùng cho kiến trúc Graphic Core Next của AMD
Nhìn vào các phân tích trong phần 2, người ta có thể lầm tưởng làm thêm 1 phiên bản module đồ họa riêng cho các GPU GNC của AMD bằng cách sử dụng lại các dòng code viết trên nền Mantle API là rất đơn giản, thậm chí hầu như thường phải làm gì.
Thời điểm này có thể nói ngành công nghiệp máy tính đã qua thuở nguyên sơ, nhưng các API cấp cao với khả năng trừu tượng hóa mạnh vẫn còn rất hiếm hoi, và Microsoft thì vẫn còn đang vật lộn hoàn thiện Direct3D.
Nhưng để tránh đi vào vết xe đổ của Glide, câu hỏi cần đặt ra là liệu Mantle có tác dụng gì cho người dùng NVIDIA và Intel hay không.
Ít nhất thì cho đến giờ khắc này, Mantle đã có một khởi đầu khá tốt đẹp. Đối với các chuyên gia, mọi công việc từ quản lí bộ nhớ, quản dạng của các đối tượng trong game. Kiến trúc đồ họa của mỗi hãng là hoàn toàn khác nhau, thậm chí tùy theo khoảng cách về tuổi đời mà các dòng sản phẩm của cùng một hãng cũng có thể khác nhau một trời một vực.
Ngoài việc làm ẩn đi sức mạnh xử lí thực sự của phấn cứng, tách nó khỏi tầm kiểm soát của các lập trình viên, bản thân quá trình trừu tượng hóa của các API này cũng có những tác động không nhỏ lên hiệu năng. Một danh tiếng lớn khác của ngành công nghiệp vi xử lí đồ họa thời bấy giờ là 3dfx cũng có một bộ API cấp thấp cho riêng các phần cứng của mình mang tên Glide.
Giờ đây khi mà Direct3D đã già cỗi và các chướng ngại về hiệu năng như trong phần 1 ngày một gây phiền toái cho giới lập trình, sự xuất hiện của Mantle thực thụ là cần thiết.
Nhìn vào hình minh họa, nhiều người có thể lầm tưởng hiệu năng đã được cải thiện đáng kể trên DirectX 10? Nhưng thực tiễn đáng buồn là từ trước tới giờ số lượng draw calls mà một GPU high-end đích thực có thể xử lí (render) vẫn luôn lớn hơn nhiều lần so với số lực draw calls mà nó nhận được tại bất kỳ thời điểm nào.
Khoảng cuối thập kỷ 90 của thế kỷ trước. Ít nhất đó là những gì mà hãng này đang cố diễn đạt trong những thông báo cung cấp cho giới truyền thông
Cả hai máy console sắp ra mắt này đều có vi xử lí hoạt động dựa trên kiến trúc GCN, đồng nghĩa với việc AMD đóng vai trò cực lớn trong việc phát triển chúng – không chỉ trong phạm vi phần cứng mà còn có sự liên quan không nhỏ với hệ thống phần mềm, tức các game đi kèm. Chung cuộc Mantle có gì đặc biệt và liệu nó có đích thực có thể đổi thay cách các lập trình viên làm việc với vi xử lí đồ họa? Hãy cùng điểm qua các phân tích của chuyên trang AnandTech về vấn đề này.
Việc được tương tác trực tiếp đến phần cứng là điều không mấy khó khăn cho các lập trình viên console, trong đó kiến trúc phần cứng hầu như là nhất thiết – đặc biệt là với các máy console đời cũ khi mà hãng sinh sản sẽ luôn muốn cho phép các lập trình viên tận dụng mọi khả năng xử lí của phần cứng.
# Mantle, một chữ tắt API là hoàn không đủ. Nếu những thông báo AMD cung cấp là thật, chúng ta sẽ sớm thấy hàng loạt tựa game gán mác Mantle ra mắt trên thị trường. Direct3D được hoàn thiện và lên ngôi vua API trên thị trường PC.
Cách xử lí thường gặp trước giờ vẫn là nạm giảm bớt số lượng draw calls – nhưng với nhu cầu càng ngày càng tăng cao về mặt đồ họa, điều này ngày một lộ rõ nhiều nhược điểm.
Liệu các hãng sinh sản game có phải một lần nữa phân tán nhân lực của mình để phát triển song song các phiên bản game trên nền Mantle và Direct3D – đồng nghĩa với việc chất lượng bản game Direct3D sẽ phải đi xuống? Việc phát triển một API cấp thấp hoàn chỉnh không thể xong trong 1 sớm một chiều, và cũng không có vẻ rằng NVIDIA và Intel cũng sẽ cấp chạy theo cuộc đua này khiến cho thị trường xáo động.
Bây giờ trên thị trường đồ họa PC, 3 cái tên nắm nhiều quyền lực nhất vẫn là AMD, Intel và NVIDIA. Nếu không có sự tồn tại của các bộ API như Direct3D và OpenGL, việc chúng ta có thể dễ dàng tận hưởng mọi loại thể game trên phần đông nền tảng phần cứng như Hiện nay hầu như là bất khả thi, bởi mỗi máy PC có một cấu hình khác nhau.
Kể cả sau khi Microsoft và các đối tác dùng Direct3D khác đã cải thiện đáng kể điều này khi nâng cấp từ DirectX 9 lên DirectX 10
Lập trình viên Ngay cả khi những lợi thế của Mantle đã là khôn cùng rõ ràng, khả năng thành công của API này vẫn chưa phải là tuyệt đối. Không, Mantle ra đời bởi suốt bao lâu nay giới lập trình đã kêu gào khản cổ đề nghị các hãng sinh sản đồ họa PC cung cấp cho họ một bộ API cấp thấp để thỏa sức “vắt kiệt” tiềm năng xử lí của phần cứng - và AMD đã quyết định trả lời.
Bộ API này đi sâu hạ tầng hết mức có thể, đưa các dòng code của lập trình viên đến gần với thiết bị phần cứng hơn bao giờ hết. Còn trên PC? Chỉ ở mức 2 - 3000 là các lập trình viên đã phải vật lộn với sự cắt giảm mạnh về hiệu năng do API cấp cao gây ra.
Chúng ta sẽ cần phải chờ xem AMD sẽ thương thảo như thế nào để Mantle không đem lại những tác động xấu lên thị trường như Glide đã từng làm.
Mối liên tưởng với console Chúng ta đã nhắc sơ qua về lợi thế của việc lập trình game console trong phần thứ nhất.
Nếu Mantle chỉ đơn giản cung cấp khả năng tiếp cận gần hơn với kiến trúc GPU GCN của AMD, nó sẽ chỉ đơn giản.
Các giải pháp tình thế của DirectX như việc gộp chung một cụm cây trên bản đồ của các game chiến thuật vào thành một đối tượng (object) duy nhất để chỉ phải thực hành một draw call cho cả cụm đó vẫn sẽ hoàn toàn không đủ trong ngày mai sắp tới.
Nói chuẩn xác hơn, các lãnh đạo của AMD không ngơ ngơ đến mức đột nhiên một ngày đẹp trời nổi hứng bảo nhau phát triển Mantle rồi mới tính cách mời gọi các hãng game sử dụng API của mình. Hiện AMD là nhà cung cấp APU cho cả hai dòng máy được ưa thích Xbox One và PS4. Tham khảo: Anandtech. Khi port game từ console lên PC, các hãng game vốn ép phải có một phiên bản module đồ họa xây dựng trên nền API Direct3D nếu muốn game của mình chạy được với nhiều mẫu VGA khác nhau.
Tuy nhiên mối can dự của Mantle với các máy console có nhiều điều để nói hơn thế.
Không có nhận xét nào:
Đăng nhận xét