1 पॉइंट द्वारा GN⁺ 2024-01-30 | 1 टिप्पणियां | WhatsApp पर शेयर करें

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_texture API के जरिए 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 टिप्पणियां

 
GN⁺ 2024-01-30
Hacker News राय
  • लगभग 2010 के आसपास एक प्रयोगात्मक HTML renderer था, जो केवल HTML और CSS का उपयोग करके ब्राउज़र में GTK application का UI implement कर सकता था। उस समय Atom, VS Code, Electron, शायद NodeJS भी आने से पहले की बात थी, इसलिए यह बहुत प्रभावशाली था। अब यह स्पष्ट नहीं है कि वह HTML renderer अभी भी मौजूद है या नहीं।
  • GTK के title bar में widgets की अनुमति देने वाले रुझान का अफसोस। कुछ हिस्सों को drag किया जा सकता है और कुछ को नहीं, जिससे application और file name के लिए आवंटित जगह कम हो जाती है। यह समस्या केवल GTK तक सीमित नहीं है।
  • Linux desktop environments कैसे काम करते हैं, इस बारे में समझ की कमी। यह लगातार अधिक जटिल और जोड़-तोड़ से भरा हुआ महसूस होता है।
  • pixel-level precise fractional scaling को लेकर उत्साह।
  • यह उल्लेख कि wgpu.rs का उपयोग करने पर DirectX और Metal मुफ्त में मिल जाते हैं।
  • ANSI text renderer में रुचि, जिससे xterm के भीतर GTK programs चलाए जा सकते हैं। विकल्प के रूप में sixel functionality भी जोड़ी जा सकती है।
  • इस बात पर सवाल कि performance degradation को स्वीकार क्यों किया जाता है। ज़्यादातर computing पुराने hardware पर की जाती है, और ये features बंद किए जा सकते हैं या शायद GPU पर supported न हों।
  • GTK पर हो रहा काम मज़ेदार और शानदार लगता है। anti-aliasing का उल्लेख और game engines में font rendering के लिए इस्तेमाल होने वाली signed distance field तकनीक के लागू होने की उम्मीद। game renderers में इस्तेमाल होने वाली कई तकनीकें GUI code में भी उपयोगी हो सकती हैं।
  • कई graphics engine developers ने ऐसे renderers विकसित किए हैं जो open source GUI toolkit renderers से कई पीढ़ियाँ आगे हैं, लेकिन वे ज़्यादातर game development companies में काम करते हैं, इसलिए open source stack में योगदान देने का समय नहीं होता। अगर community नियमित बजट संगठित करके ऐसे developers को भुगतान कर सके, तो open source desktop में rendering और toolkit के बड़े अपडेट देखे जा सकते हैं।
  • एक विशेष comment को report किए जाने के कारण उसका content छिपा दिया गया।