GTK के लिए नए renderer
(blog.gtk.org)GTK के नए renderer
- GTK में GL और Vulkan के लिए दो नए renderer जोड़े गए हैं.
- इन्हें मौजूदा नामों का पुन: उपयोग करते हुए "ngl" और "vulkan" नाम दिया गया है.
- इन्हें एक ही source से build किया गया है, इसलिए इन्हें "unified" renderer भी कहा जाता है.
एकल source
- दोनों renderer एक ही source से build किए जाते हैं और Vulkan API का पालन करने वाले मॉडल के रूप में डिज़ाइन किए गए हैं.
- इनमें Vulkan और GL के बीच के अंतर को कवर करने के लिए abstraction शामिल है.
- scene graph traversal, transform बनाए रखना, texture और glyph caching जैसी infrastructure को साझा करना संभव है.
- इन्हें macOS के Metal-आधारित renderer या Windows के DirectX-आधारित renderer तक बढ़ाया जा सकता है.
implementation details
- मौजूदा GL renderer सरल shader का उपयोग करता है और जटिल content के लिए offscreen rendering पर निर्भर करता है.
- unified renderer में हर node के लिए shader है, और offscreen के बजाय buffer में data की व्याख्या करने वाले जटिल shader का उपयोग होता है.
- unified renderer अभी कम optimized है, लेकिन accuracy और maintainability पर ज़ोर देता है, इसलिए यह अधिक विविध render node tree को सही तरीके से संभाल सकता है.
नई सुविधाएँ
- anti-aliasing: मौजूदा GL renderer में details खो जाने की समस्या थी, लेकिन unified renderer इसे anti-aliasing के जरिए बेहतर करता है.
- fractional scaling: unified renderer fractional scale को सही ढंग से संभाल सकता है.
- arbitrary gradient: unified renderer असीमित color stop वाले gradient को संभाल सकता है.
- Dmabufs: Vulkan renderer
render_textureAPI के जरिए texture बनाते समय dmabufs बना सकता है.
ध्यान देने योग्य बातें
- glshader node अब समर्थित नहीं हैं.
- fractional position: नया renderer objects को सटीक position पर रखता है.
- driver problems: नया renderer graphics driver का नए और अलग तरीके से उपयोग करता है, इसलिए समस्याएँ हो सकती हैं.
क्या यह तेज़ है?
- अभी नया renderer ज़्यादा तेज़ नहीं है.
- मौजूदा GL renderer speed के लिए optimized है, जबकि नया renderer नई सुविधाएँ और accuracy देता है.
- अनौपचारिक benchmark में Vulkan renderer ने मौजूदा GL renderer जैसी performance दिखाई है.
नया default
- हाल ही में घोषित 4.13.6 snapshot में ngl renderer को नए default के रूप में सेट किया गया है.
- यह एक प्रयोगात्मक कदम है, और समस्या होने पर पुराने GL renderer पर वापस जाया जा सकता है.
भविष्य की योजनाएँ और संभावनाएँ
- नया renderer HDR सहित उचित color handling, GPU पर path rendering, main thread के बाहर rendering, performance improvements आदि को लागू करने के लिए एक अच्छा आधार है.
सारांश
- नए renderer में दिलचस्प सुविधाएँ हैं, और आगे और फीचर जोड़े जाएंगे.
- नए renderer को आज़माने और यह कैसे काम करता है, इस पर feedback देने का अनुरोध किया गया है.
GN⁺ की राय
- नया renderer डेवलपर्स के लिए अधिक सटीक और विविध rendering options देने वाली एक महत्वपूर्ण प्रगति है.
- Vulkan और GL का unified approach भविष्य में विभिन्न platforms पर rendering compatibility को बेहतर बनाने की क्षमता रखता है.
- ऐसी तकनीकी प्रगति user experience को सुधारने और applications की visual quality बढ़ाने में योगदान देगी.
1 टिप्पणियां
Hacker News राय