1 poin oleh GN⁺ 2024-01-30 | 1 komentar | Bagikan ke WhatsApp

Renderer baru untuk GTK

  • Dua renderer baru untuk GL dan Vulkan ditambahkan ke GTK.
  • Keduanya dinamai dengan menggunakan kembali nama yang sudah ada, yaitu "ngl" dan "vulkan".
  • Keduanya dibangun dari sumber yang sama dan juga disebut renderer "terpadu".

Satu sumber

  • Kedua renderer dibangun dari sumber yang sama dan dirancang dengan model yang mengikuti API Vulkan.
  • Ini mencakup abstraksi untuk menutupi perbedaan antara Vulkan dan GL.
  • Infrastruktur seperti penelusuran scene graph, pemeliharaan transformasi, serta cache tekstur dan glif dapat dibagikan.
  • Ada kemungkinan untuk diperluas ke renderer berbasis Metal di macOS atau renderer berbasis DirectX di Windows.

Detail implementasi

  • Renderer GL lama menggunakan shader sederhana dan bergantung pada rendering offscreen untuk konten yang kompleks.
  • Renderer terpadu memiliki shader untuk setiap node, dan menggunakan shader kompleks yang menafsirkan data dari buffer alih-alih offscreen.
  • Renderer terpadu kurang dioptimalkan, tetapi berfokus pada akurasi dan kemudahan pemeliharaan sehingga dapat menangani lebih banyak jenis pohon node render dengan tepat.

Fitur baru

  • Antialiasing: renderer GL lama memiliki masalah kehilangan detail, tetapi renderer terpadu memperbaikinya melalui antialiasing.
  • Penskalaan fraksional: renderer terpadu dapat menangani skala fraksional dengan benar.
  • Gradien arbitrer: renderer terpadu dapat menangani gradien dengan titik warna tanpa batas.
  • Dmabufs: renderer Vulkan dapat membuat dmabufs saat membuat tekstur melalui API render_texture.

Hal yang perlu diperhatikan

  • Node glshader tidak lagi didukung.
  • Posisi fraksional: renderer baru menempatkan objek pada posisi yang akurat.
  • Masalah driver: renderer baru menggunakan driver grafis dengan cara yang baru dan berbeda, sehingga masalah dapat muncul.

Apakah lebih cepat?

  • Untuk saat ini, renderer baru belum lebih cepat.
  • Renderer GL lama dioptimalkan untuk kecepatan, tetapi renderer baru menawarkan fitur baru dan akurasi.
  • Dalam benchmark tidak resmi, renderer Vulkan menunjukkan kinerja yang mirip dengan renderer GL lama.

Default baru

  • Dalam snapshot 4.13.6 yang baru diumumkan, renderer ngl ditetapkan sebagai default baru.
  • Ini adalah langkah eksperimental, dan jika ada masalah dapat dikembalikan ke renderer GL lama.

Rencana dan kemungkinan ke depan

  • Renderer baru menjadi dasar yang baik untuk mewujudkan pemrosesan warna yang layak termasuk HDR, path rendering di GPU, rendering di luar thread utama, peningkatan performa, dan lainnya.

Ringkasan

  • Renderer baru memiliki fitur-fitur menarik, dan lebih banyak fitur akan ditambahkan.
  • Pengguna diminta untuk mencoba renderer baru dan memberikan umpan balik tentang apakah itu bekerja dengan baik.

Pendapat GN⁺

  • Renderer baru merupakan kemajuan penting yang memberi pengembang opsi rendering yang lebih akurat dan beragam.
  • Pendekatan terpadu Vulkan dan GL memiliki potensi untuk meningkatkan kompatibilitas rendering di berbagai platform di masa depan.
  • Kemajuan teknis seperti ini akan membantu meningkatkan pengalaman pengguna dan kualitas visual aplikasi.

1 komentar

 
GN⁺ 2024-01-30
Opini Hacker News
  • Sekitar tahun 2010, ada renderer HTML eksperimental yang memungkinkan UI aplikasi GTK diimplementasikan di browser hanya dengan HTML dan CSS. Saat itu, sebelum Atom, VS Code, Electron, dan mungkin NodeJS muncul, ini sangat mengesankan. Saat ini tidak jelas apakah renderer HTML itu masih ada.
  • Ada rasa sayang karena GTK mengikuti tren yang mengizinkan widget di title bar. Sebagian bisa diseret dan sebagian tidak, sehingga ruang yang dialokasikan untuk nama aplikasi dan nama file berkurang. Ini bukan masalah yang terbatas pada GTK saja.
  • Kurang memahami cara kerja lingkungan desktop Linux. Rasanya semakin kompleks dan seolah terus ditambahi banyak hal.
  • Antusias dengan fractional scaling presisi tingkat piksel.
  • Menyebut bahwa dengan memakai wgpu.rs, DirectX dan Metal bisa didapat secara gratis.
  • Tertarik pada renderer teks ANSI, yang memungkinkan program GTK dijalankan di dalam xterm. Secara opsional, fitur sixel juga bisa ditambahkan.
  • Mempertanyakan mengapa penurunan performa dianggap bisa diterima. Sebagian besar komputasi dilakukan di perangkat keras lama, dan fitur-fitur ini bisa dinonaktifkan atau mungkin tidak didukung GPU.
  • Pekerjaan GTK terlihat menyenangkan dan keren. Ada penyebutan tentang anti-aliasing serta harapan akan kemungkinan menerapkan teknik signed distance field yang digunakan untuk rendering font di game engine. Berbagai teknik yang dipakai di renderer game juga bisa berguna untuk kode GUI.
  • Ada banyak pengembang graphics engine yang telah membuat renderer beberapa generasi lebih maju daripada renderer toolkit GUI open source, tetapi kebanyakan bekerja di perusahaan pengembang game sehingga tidak punya waktu untuk berkontribusi ke stack open source. Jika komunitas dapat mengatur anggaran rutin untuk membayar para pengembang ini, desktop open source mungkin akan melihat pembaruan besar pada rendering dan toolkit.
  • Komentar tertentu dilaporkan sehingga isinya disembunyikan.