1 puan yazan GN⁺ 2024-01-30 | 1 yorum | WhatsApp'ta paylaş

GTK için yeni render motorları

  • GTK'ye GL ve Vulkan için iki yeni render motoru eklendi.
  • Bunlar, mevcut adları yeniden kullanarak "ngl" ve "vulkan" olarak adlandırıldı.
  • Aynı kaynaktan derlendikleri için "birleşik" render motoru olarak da anılıyorlar.

Tek kaynak

  • İki render motoru da aynı kaynaktan derleniyor ve Vulkan API'sini izleyen bir modelle tasarlanmış durumda.
  • Vulkan ile GL arasındaki farkları kapsamak için soyutlamalar içeriyor.
  • Sahne grafiği dolaşımı, dönüşümlerin korunması, doku ve glif önbellekleme gibi altyapıların paylaşılmasını mümkün kılıyor.
  • macOS'taki Metal tabanlı bir render motoruna veya Windows'taki DirectX tabanlı bir render motoruna genişletilme potansiyeli bulunuyor.

Uygulama ayrıntıları

  • Mevcut GL render motoru basit shader'lar kullanıyor ve karmaşık içerikler için offscreen rendering'e dayanıyor.
  • Birleşik render motoru, her düğüm için shader'lara sahip ve offscreen yerine tamponlardaki veriyi yorumlayan daha karmaşık shader'lar kullanıyor.
  • Birleşik render motoru daha az optimize edilmiş olsa da doğruluk ve bakım kolaylığına odaklanarak daha çeşitli render düğümü ağaçlarını doğru biçimde işleyebiliyor.

Yeni özellikler

  • Anti-aliasing: Mevcut GL render motorunda ayrıntı kaybı sorunu vardı; birleşik render motoru bunu anti-aliasing ile iyileştiriyor.
  • Kesirli ölçekleme: Birleşik render motoru kesirli ölçekleri düzgün şekilde işleyebiliyor.
  • İsteğe bağlı gradyanlar: Birleşik render motoru, sınırsız sayıda renk durağına sahip gradyanları işleyebiliyor.
  • Dmabufs: Vulkan render motoru, render_texture API'si üzerinden doku oluştururken dmabuf üretebiliyor.

Dikkat edilmesi gerekenler

  • glshader düğümleri artık desteklenmiyor.
  • Kesirli konumlar: Yeni render motoru nesneleri tam doğru konumlara yerleştiriyor.
  • Sürücü sorunları: Yeni render motoru grafik sürücülerini yeni ve farklı şekillerde kullandığı için sorunlar ortaya çıkabilir.

Daha hızlı mı?

  • Şimdilik yeni render motoru daha hızlı değil.
  • Mevcut GL render motoru hız için optimize edilmiş durumda; yeni render motoru ise yeni özellikler ve doğruluk sunuyor.
  • Vulkan render motoru, gayriresmî kıyaslamalarda mevcut GL render motoruna benzer performans gösteriyor.

Yeni varsayılan

  • Kısa süre önce duyurulan 4.13.6 snapshot sürümünde ngl render motoru yeni varsayılan olarak ayarlandı.
  • Bu deneysel bir adım; sorun çıkarsa mevcut GL render motoruna geri dönülebilir.

Gelecek planları ve olasılıklar

  • Yeni render motoru; HDR dahil doğru renk işleme, GPU üzerinde path rendering, ana iş parçacığı dışında rendering ve performans iyileştirmeleri gibi hedeflerin hayata geçirilmesi için iyi bir temel oluşturuyor.

Özet

  • Yeni render motoru ilgi çekici özellikler sunuyor ve gelecekte daha fazlası eklenecek.
  • Yeni render motorunu denemeniz ve çalışıp çalışmadığına dair geri bildirim vermeniz isteniyor.

GN⁺ görüşü

  • Yeni render motoru, geliştiricilere daha doğru ve daha çeşitli render seçenekleri sunan önemli bir ilerleme.
  • Vulkan ile GL'nin birleşik yaklaşımı, gelecekte farklı platformlarda render uyumluluğunu artırma potansiyeli taşıyor.
  • Bu teknik ilerleme, kullanıcı deneyimini iyileştirmeye ve uygulamaların görsel kalitesini yükseltmeye katkı sağlayacaktır.

1 yorum

 
GN⁺ 2024-01-30
Hacker News görüşleri
  • 2010 civarında, yalnızca HTML ve CSS kullanarak tarayıcıda GTK uygulamalarının arayüzünü oluşturabilen deneysel bir HTML renderer vardı. O dönemde Atom, VS Code, Electron ve muhtemelen NodeJS henüz ortada yoktu; bu yüzden oldukça etkileyiciydi. Şu anda bu HTML renderer'ın hâlâ var olup olmadığı belirsiz.
  • GTK'nin başlık çubuğunda widget'lara izin verme eğilimini takip etmesine yönelik hayal kırıklığı. Bazıları sürüklenebiliyor, bazıları sürüklenemiyor ve bu da uygulama ile dosya adına ayrılan alanı azaltıyor. Bu yalnızca GTK'ye özgü bir sorun değil.
  • Linux'taki masaüstü ortamlarının nasıl çalıştığına dair anlayış eksikliği. Her şey giderek daha karmaşık ve sonradan eklenmiş gibi geliyor.
  • Piksel düzeyinde hassas kesirli ölçeklendirme konusunda heyecan.
  • wgpu.rs kullanıldığında DirectX ve Metal desteğinin bedavaya geldiğinden bahsediliyor.
  • ANSI metin renderer'ına ilgi; bunun sayesinde GTK programları xterm içinde çalıştırılabilir. İsteğe bağlı olarak sixel özelliği de eklenebilir.
  • Performans düşüşünün neden kabul edilebilir görüldüğüne dair soru işaretleri. Çoğu hesaplama eski donanımda yapılıyor ve bu özellikler devre dışı bırakılabilir ya da GPU tarafından desteklenmiyor olabilir.
  • GTK üzerindeki çalışmaların eğlenceli ve havalı göründüğü belirtiliyor. Antialiasing'den söz ediliyor ve oyun motorlarında yazı tipi render etmede kullanılan signed distance field tekniğinin uygulanabilme ihtimali heyecan yaratıyor. Oyun renderer'larında kullanılan çeşitli teknikler GUI kodu için de faydalı olabilir.
  • Açık kaynak GUI toolkit renderer'larından birkaç nesil ileride renderer geliştirmiş birçok grafik motoru geliştiricisi var; ancak çoğu oyun şirketlerinde çalıştığı için açık kaynak yığınına katkı verecek zaman bulamıyor. Topluluk düzenli bir bütçe organize edip bu geliştiricilere ödeme yapabilseydi, açık kaynak masaüstünde kayda değer renderer ve toolkit güncellemeleri görülebilirdi.
  • Belirli bir yorum şikâyet edildiği için içeriği gizlendi.