OpenGL 4.6 ve OpenGL® ES 3.2 desteği
- M1 uzun süredir yalnızca OpenGL 4.1'i destekliyordu, ancak artık OpenGL® 4.6 ve OpenGL® ES 3.2'yi tamamen destekliyor.
- En güncel M1/M2 serisi sürücüler için Fedora kurmanız yeterli.
- Zaten kuruluysa, yalnızca
dnf upgrade --refresh komutuyla yükseltme yapılabilir.
- Mevcut üreticinin standart dışı 4.1 sürücülerinin aksine, bu açık kaynaklı Linux sürücüleri en güncel OpenGL sürümlerine göre sertifikalandırıldı ve Blender, Ryujinx, Citra gibi modern OpenGL iş yükleriyle geniş uyumluluk vadediyor.
Sürücü sertifikasyonu ve standart desteği
- Sertifikalı 4.6/3.2 sürücülerin doğruluğu garanti etmek için 100.000'den fazla testi geçmesi gerekiyor.
- Resmen sertifikalandırılmış sürücü listesine artık OpenGL 4.6 ve ES 3.2 de dahil edildi.
- Üretici hâlâ modern OpenGL gibi grafik standartlarını desteklemiyor, ancak bu şirket destekliyor.
- Şirket, birlikte çalışabilir açık standartlara olan bağlılığını açıkça ifade ediyor ve kullanıcılarla geliştiricilere, özel portlar olmadan uygulamaları istedikleri yerde çalıştırma özgürlüğü sunmak istiyor.
OpenGL 4.6'daki yenilikler
- OpenGL 4.6, 4.1'e kıyasla onlarca zorunlu özellik ekliyor:
- Robustness (sağlamlık)
- SPIR-V
- Clip control
- Cull distance
- Compute shaders
- Geliştirilmiş transform feedback
M1 ve grafik standartlarıyla uyumluluk sorunu
- M1, OpenGL ES 3.1'den daha yeni grafik standartlarıyla pek uyumlu değil.
- Vulkan bazı özellikleri isteğe bağlı hâle getiriyor, ancak DirectX ve OpenGL için katmanlarda gerekli özellikler eksik kalıyor.
- M1 üzerinde OpenGL 4.1 özellik kümesinin ötesine geçen mevcut bir çözüm bulunmuyor.
4.1 engelini aşma yöntemi
- Donanım desteği olmadan yeni özellikleri uygulamak için yeni yöntemlere ihtiyaç var.
- Geometri shader'ları, tessellation ve transform feedback, compute shader'larla değiştiriliyor.
- Cull distance, dönüştürülmüş enterpolasyon değerleriyle değiştiriliyor.
- Clip control, vertex shader epiloguyla değiştiriliyor.
Sağlamlıkla ilgili zorluklar
- Geleneksel olarak GPU'lar güvenlikten çok ham performansa öncelik verir.
- Web tarayıcısı gibi uygulamalar için bu ödünleşim tercih edilir değildir.
- Sağlamlık özellikleri, shader'da tampon dışı erişim gerçekleştiğinde uygulamanın tanımlı bir davranış seçmesine izin vererek performanstan bir miktar ödün verip saldırı yüzeyini azaltabilir.
Tampon sağlamlığı
- Farklı API'ler, sağlamlık etkin olduğunda tampon sınırları dışındaki yüklemelerin ne döndüreceğini farklı şekilde tanımlar.
- OpenGL, sınır dışı yüklemenin tamponun son öğesini döndürmesini sağlar.
- Sağlamlık için ek işlemler shader'ın preamble kısmına taşınır, böylece ana shader için ek maliyet oluşmaz.
Görüntü sağlamlığı
- Görüntü sağlamlığı, sınır dışı görüntü yüklemelerinin 0 döndürmesini gerektirir.
- M1 GPU'da mip'lenmiş görüntü yüklemelerinin başarısız olduğu tek bir test vardır.
- Sağlamlık için geçici çözüm; geçersiz seviyelerden yükleme yapmamak ya da spekülatif yükleme sonrası karşılaştırma ve seçim işlemleri kullanmaktır.
GN⁺ görüşü
- Bu yazı, M1 cihazlarda en güncel OpenGL standardının desteklenmesine yönelik önemli bir ilerlemeyi ele alıyor. Bu, Linux kullanıcıları ve geliştiricileri için daha geniş uyumluluk ve daha iyi performans anlamına geliyor.
- OpenGL 4.6'nın yeni özellikleri, grafik uygulamalarının performansını ve sağlamlığını ciddi ölçüde iyileştirebilir; bu özellikle oyun geliştirme ve yüksek performanslı hesaplama alanlarında önemlidir.
- Yazı, açık kaynaklı sürücülerin ticari çözümlere kıyasla nasıl daha iyi standart uyumu ve uyumluluk sunabildiğini gösteren iyi bir örnek.
1 yorum
Hacker News görüşleri