Trình kết xuất mới cho GTK
(blog.gtk.org)Trình kết xuất mới của GTK
- GTK đã bổ sung hai trình kết xuất mới cho GL và Vulkan.
- Chúng được đặt tên bằng cách tái sử dụng các tên hiện có là "ngl" và "vulkan".
- Chúng được xây dựng từ cùng một mã nguồn nên cũng được gọi là trình kết xuất "hợp nhất".
Một nguồn mã duy nhất
- Hai trình kết xuất được xây dựng từ cùng một mã nguồn và được thiết kế theo mô hình tuân theo API Vulkan.
- Chúng bao gồm các lớp trừu tượng để bao phủ sự khác biệt giữa Vulkan và GL.
- Có thể chia sẻ hạ tầng như duyệt scene graph, duy trì phép biến đổi, bộ nhớ đệm texture và glyph.
- Có khả năng mở rộng sang trình kết xuất dựa trên Metal của macOS hoặc trình kết xuất dựa trên DirectX của Windows.
Chi tiết triển khai
- Trình kết xuất GL hiện có dùng các shader đơn giản và với nội dung phức tạp thì phụ thuộc vào kết xuất offscreen.
- Trình kết xuất hợp nhất có shader cho từng node, và thay vì offscreen thì dùng các shader phức tạp diễn giải dữ liệu từ buffer.
- Trình kết xuất hợp nhất ít được tối ưu hơn, nhưng tập trung vào tính chính xác và khả năng bảo trì nên có thể xử lý chính xác nhiều cây render node đa dạng hơn.
Tính năng mới
- Khử răng cưa: trình kết xuất GL hiện có từng gặp vấn đề làm mất chi tiết, còn trình kết xuất hợp nhất cải thiện điều này bằng khử răng cưa.
- Tỷ lệ thu phóng phân số: trình kết xuất hợp nhất có thể xử lý đúng tỷ lệ thu phóng phân số.
- Gradient tùy ý: trình kết xuất hợp nhất có thể xử lý gradient với số lượng color stop không giới hạn.
- Dmabufs: trình kết xuất Vulkan có thể tạo dmabufs khi tạo texture thông qua API
render_texture.
Những điểm cần lưu ý
- Node
glshaderkhông còn được hỗ trợ. - Vị trí phân số: trình kết xuất mới đặt đối tượng ở vị trí chính xác.
- Vấn đề driver: trình kết xuất mới sử dụng driver đồ họa theo cách mới và khác nên có thể phát sinh vấn đề.
Có nhanh hơn không?
- Hiện tại trình kết xuất mới vẫn chưa nhanh hơn.
- Trình kết xuất GL hiện có được tối ưu cho tốc độ, còn trình kết xuất mới cung cấp các tính năng mới và độ chính xác cao hơn.
- Trình kết xuất Vulkan cho thấy hiệu năng tương đương trình kết xuất GL hiện có trong các benchmark không chính thức.
Mặc định mới
- Trong snapshot 4.13.6 được công bố gần đây, trình kết xuất ngl đã được đặt làm mặc định mới.
- Đây là biện pháp thử nghiệm, và nếu có vấn đề xảy ra thì có thể quay lại trình kết xuất GL cũ.
Kế hoạch và khả năng trong tương lai
- Trình kết xuất mới là nền tảng tốt để hiện thực xử lý màu đúng chuẩn bao gồm HDR, path rendering trên GPU, rendering ngoài main thread, cải thiện hiệu năng và nhiều thứ khác.
Tóm tắt
- Trình kết xuất mới có các tính năng thú vị và sẽ còn được bổ sung thêm nhiều tính năng.
- Họ kêu gọi mọi người thử trình kết xuất mới và gửi phản hồi về việc nó có hoạt động tốt hay không.
Ý kiến của GN⁺
- Trình kết xuất mới là một bước tiến quan trọng, mang đến cho các nhà phát triển các tùy chọn rendering chính xác hơn và đa dạng hơn.
- Cách tiếp cận hợp nhất Vulkan và GL có tiềm năng cải thiện khả năng tương thích rendering trên nhiều nền tảng trong tương lai.
- Những tiến bộ kỹ thuật này sẽ góp phần cải thiện trải nghiệm người dùng và nâng cao chất lượng hình ảnh của ứng dụng.
1 bình luận
Ý kiến trên Hacker News