Card tăng tốc đồ họa 3dfx Voodoo, vốn vẫn còn nổi tiếng trong giới phần cứng PC và game retro, giờ đây đã "trở lại" sân khấu với cách triển khai FPGA mới. Trên cơ sở nhiều trình mô phỏng DOS và PC có thể tái tạo tốt hiệu suất của Voodoo, một nhà phát triển đã chọn tái tạo trực tiếp con chip cổ điển của thế kỷ trước này trên phần cứng có thể lập trình.

Thương hiệu 3dfx được NVIDIA mua lại vào năm 2000 và cuối cùng biến mất. Tuy nhiên, các thẻ tăng tốc dòng Voodoo của nó vẫn là những “quân bài ma thuật” trong lòng nhiều người chơi và những người đam mê đồ họa 3D, đồng thời cũng là thành phần cốt lõi trong nhiều dự án sửa đổi cổ điển và giải pháp phần cứng trò chơi cũ. Hiện tại, chip Voodoo đã được mô phỏng gần như hoàn toàn trên nhiều trình mô phỏng khác nhau như DOSBox-X, PCem và 86Box, đồng thời người chơi phần cứng không ngừng thử nghiệm các dự án sửa đổi dựa trên chip gốc hoặc giải pháp tự chế.
Francisco Ayala Le Brun, giám đốc công nghệ của công ty VideowindoW của Hà Lan, đã chọn tìm ra con đường "tái sinh" mới cho Voodoo thông qua FPGA. Anh ấy đã sử dụng SpinalHDL, một ngôn ngữ mô tả phần cứng, để mô tả đầy đủ card đồ họa Voodoo 1, sau đó chuyển đổi nó thành mô hình mạch kỹ thuật số có thể chạy trên mảng cổng lập trình trường hiện đại (FPGA).
Le Brun nhấn mạnh trong phần mô tả kỹ thuật rằng mặc dù Voodoo 1 đã rất cũ nhưng nó hoàn toàn không phải là một con chip được thiết kế đơn giản. Không giống như các GPU hiện đại, nó không có phần cứng chuyển đổi và chiếu sáng hoặc các chức năng đổ bóng có thể lập trình. Tất cả các khả năng đồ họa đều được "mã hóa cứng" trong chip silicon dưới dạng các chức năng cố định, bao gồm một hệ thống tính toán độ dốc hoàn chỉnh cho bóng Gouraud, lấy mẫu kết cấu, mipmapping, lọc kết cấu đa cấp (song tuyến và tam tuyến), cắt alpha, tính toán cắt, v.v.


Trong quá trình kết xuất đồ họa dựa trên 3dfx, CPU chịu trách nhiệm hoàn thành các phép toán phức tạp cần thiết để mô tả cảnh 3D, trong khi Máy gia tốc Voodoo vẽ các hình tam giác có kết cấu lên màn hình càng nhanh càng tốt. Le Brun chỉ ra rằng sự phân chia trách nhiệm “trông có vẻ đơn giản” này có thể dễ dàng khiến mọi người nghĩ rằng cấu trúc phần cứng cũng rất đơn giản. Trên thực tế, ngay cả khi chỉ hiển thị một hình tam giác, một loạt thao tác như nội suy màu, lấy mẫu kết cấu, chọn mức mip, lọc, so sánh độ sâu, cắt xén và hiệu ứng sương mù phải được hoàn thành bên trong chip. Hơn nữa, đây không phải là những quá trình có thể lập trình được theo nghĩa hiện đại mà được củng cố trong chip dưới dạng mạch cố định.
Trong quá trình xây dựng lại Voodoo 1, Le Brun cần làm sáng tỏ sự phức tạp ẩn giấu bên trong nó: tổ chức lại đường dẫn điều khiển, đăng ký ngữ nghĩa và thiết kế định thời đường ống cực kỳ "sâu", để bộ tăng tốc 3D đời đầu này có thể phân chia các tác vụ kết xuất phức tạp theo pixel trên FPGA như trước đây và xử lý đường ống theo nhiều giai đoạn, từ đó đạt được khả năng thông lượng dữ liệu cho đến nay vượt quá kết xuất phần mềm thuần túy.
Với sự trợ giúp của các công cụ hiện đại như SpinalHDL và thiết kế cấp độ truyền đăng ký (RTL), Le Brun đã "mã hóa" các khái niệm kiến trúc của Voodoo vào triển khai FPGA mà không làm mất chi tiết. Anh đặt tên cho dự án này là "SpinalVoodoo" và biến nó thành nguồn mở trên GitHub. Hiện tại, chỉ một phần nhỏ chức năng của chip Voodoo nguyên bản vẫn chưa được hoàn thiện.

Mặc dù dự án đã tạo được tiếng vang trong cộng đồng những người đam mê phần cứng cổ điển, nhưng Le Brun vẫn chưa tỏ ra quan tâm đến việc tung ra và bán phần cứng FPGA có sẵn xung quanh SpinalVoodoo. Đối với những người hâm mộ 3dfx và những game thủ cổ điển, việc triển khai nguồn mở này vẫn mang đến một con đường mới hấp dẫn cho các dự án phần cứng, thẻ DIY hoặc giải pháp sửa đổi trong tương lai.
Tìm hiểu thêm:
https://noquiche.fyi/voodoo