WebKit 2D ग्राफ़िक्स रेंडरिंग के लिए Skia पर स्विच कर रहा है

WebKit के GTK और WPE पोर्ट्स 2D rendering के लिए Cairo graphics library की जगह Google के Skia engine पर जा रहे हैं, ताकि Linux और embedded devices पर बड़े performance gains और बेहतर GPU utilization मिल सके। टिप्पणीकार ध्यान दिलाते हैं कि यह बदलाव Apple के Safari को प्रभावित नहीं करता, जो Core Graphics का उपयोग जारी रखता है, और इन non-Apple WebKit ports के रखरखाव में Igalia की केंद्रीय भूमिका को रेखांकित करते हैं। यह कदम Skia की तुलना Blend2D, Vello और Flutter के Impeller जैसे विकल्पों से भी कराता है, और build complexity, API stability, licensing, तथा long-term maintenance जैसे tradeoff पर सवाल उठाता है.

Skia माइग्रेशन का दायरा

  • यह बदलाव WebKitGTK और WPEWebKit पोर्ट्स पर लागू होता है, Apple के macOS/iOS WebKit पर नहीं।
  • लेख का शीर्षक बाद में स्पष्ट किया गया; टिप्पणीकार बार-बार जोर देते हैं कि यह Safari नहीं है।
  • WPE का लक्ष्य embedded / kiosk-शैली के उपकरण हैं; WebKitGTK GNOME के ब्राउज़र और कुछ ऐप webviews को शक्ति देता है।

प्रेरणा और माने गए लाभ

  • इन पोर्ट्स के लिए मौजूदा स्टैक Cairo + CPU-केंद्रित आर्किटेक्चर है।
  • डेस्कटॉप पर Skia के साथ किए गए आंतरिक परीक्षणों में गंभीर अनुकूलन से पहले ही MotionMark स्कोर दोगुने हो गए।
  • टिप्पणीकार बेहतर प्रदर्शन और अधिक आधुनिक GPU-त्वरित pipeline की उम्मीद करते हैं।
  • कुछ लोग इस बात से खुश हैं कि Skia BSD-शैली का लाइसेंस उपयोग करता है जो GPL के साथ संगत है।

Cairo की सीमाएँ

  • Cairo को प्रभावी रूप से केवल maintenance-only, बहुत कम सक्रिय डेवलपर्स वाला बताया गया है।
  • GPU backends (जैसे OpenGL) हटा दिए गए क्योंकि उनका प्रदर्शन खराब था और उनके रखरखावकर्ता नहीं थे।
  • आर्किटेक्चर PostScript पर आधारित है: गुणवत्ता अच्छी और API सरल है, लेकिन GPU के लिए retarget करना कठिन है और corner cases धीमे हैं।
  • कई प्रोजेक्ट Cairo से दूर जा रहे हैं या उसके fast path से बाहर निकल रहे हैं।

Skia की ताकत और ecosystem

  • व्यापक रूप से उपयोग किया जाता है: Chrome, Android, Firefox Canvas, Flutter (ऐतिहासिक रूप से), .NET, JetBrains UI, और विभिन्न graphics tools तथा frameworks में।
  • API मॉडल: drawing commands को queue करना, optimize करना, फिर tiles या regions को कुशलता से render करना।
  • कुछ प्रोजेक्ट्स को “Chrome जैसा render” करने की मजबूत गारंटी देता है।

चिंताएँ, build, API स्थिरता, और C interface

  • कई रिपोर्टें बताती हैं कि Skia को build करना कठिन है: custom tools, भारी dependencies, बदलती आवश्यकताएँ, धीमे या fragile builds।
  • दूसरे लोग कहते हैं कि current Bazel/GN builds निर्देशों का पालन करने पर तेज़ हैं।
  • लगातार बदलते C++ APIs और पहले किए गए C API प्रयास को हटाने पर शिकायतें हैं।
  • कुछ लोग चाहते हैं कि WebKit एक C API expose करे या उसे स्थिर करने में मदद करे; अन्य तर्क देते हैं कि Skia को internal implementation detail ही रहना चाहिए।

विकल्प और व्यापक 2D परिदृश्य

  • उल्लिखित विकल्प: Blend2D, AGG, NanoVG, Vello, thorvg, BGFX, The-Forge, AmanithVG/SVG, Qt का QPainter और GSK, Impeller, custom engines।
  • Blend2D के लेखक तेज़ CPU-only rendering के पक्ष में तर्क देते हैं, जिसमें Cairo/AGG के उत्तराधिकारी के रूप में एक स्थिर C ABI हो।
  • कुछ लोग संदेह करते हैं कि 2D के लिए GPU हमेशा सही उत्तर है; अन्य जोर देते हैं कि browsers में अब GPU मानक है।