RenderingNG

वेब कॉन्टेंट की अगली पीढ़ी के लिए तैयार

Chris Harrelson
Chris Harrelson

RenderingNG, रेंडरिंग के लिए अगली पीढ़ी का आर्किटेक्चर है. यह पहले के मुकाबले काफ़ी बेहतर परफ़ॉर्म करता है. RenderingNG को बनाने में आठ साल से ज़्यादा का समय लगा है. इसमें Chromium के कई डेवलपर ने मिलकर काम किया है. इससे, तेज़, आसान, भरोसेमंद, रिस्पॉन्सिव, और इंटरैक्टिव वेब कॉन्टेंट बनाने की बहुत सारी संभावनाएं मिलती हैं.

RenderingNG के अलग-अलग एलिमेंट का स्केच
RenderingNG

यहां आपको यह जानकारी मिलेगी कि हमने क्या बनाया है, हमने इसे क्यों बनाया है, और यह कैसे काम करता है.

नॉर्थ स्टार लक्ष्य

RenderingNG को बनाने का मकसद यह है कि ब्राउज़र इंजन को लागू करने और उसके रेंडरिंग एपीआई की बेहतर सुविधाओं से, वेब पर यूज़र एक्सपीरियंस पर असर न पड़े.

आपको ब्राउज़र के गड़बड़ियों की वजह से, सुविधाओं के काम न करने या अपनी साइट के रेंडरिंग में रुकावट आने की चिंता नहीं करनी चाहिए.

परफ़ॉर्मेंस में अचानक गिरावट नहीं आनी चाहिए. साथ ही, आपको पहले से मौजूद सुविधाओं के बिना काम नहीं करना पड़ेगा.

यह आसानी से काम करेगा.

RenderingNG, इस मुख्य लक्ष्य को हासिल करने की दिशा में एक बड़ा कदम है. RenderingNG से पहले, हम रेंडरिंग की सुविधाएं जोड़ सकते थे और परफ़ॉर्मेंस को बेहतर बना सकते थे. हमने ऐसा किया भी. हालांकि, डेवलपर के लिए उन सुविधाओं को भरोसेमंद बनाने में हमें परेशानी हुई. साथ ही, परफ़ॉर्मेंस में कई गिरावटें आईं. अब हमारे पास एक ऐसा आर्किटेक्चर है जो उनमें से कई समस्याओं को व्यवस्थित तरीके से हल करता है. साथ ही, ऐसी बेहतर सुविधाओं को भी अनब्लॉक करता है जिन्हें पहले मुमकिन नहीं माना जाता था. इससे:

  • अलग-अलग प्लैटफ़ॉर्म, डिवाइस, और ऑपरेटिंग सिस्टम के कॉम्बिनेशन में, मुख्य सुविधाएं बेहतरीन हों.
  • इसकी परफ़ॉर्मेंस का अनुमान लगाया जा सकता है और यह भरोसेमंद होती है.
  • हार्डवेयर की क्षमताओं (कोर, जीपीयू, स्क्रीन रिज़ॉल्यूशन, रीफ़्रेश रेट, लो-लेवल रेस्टर एपीआई) का ज़्यादा से ज़्यादा इस्तेमाल करता है.
  • यह सिर्फ़ वही काम करता है जो दिखने वाले कॉन्टेंट को दिखाने के लिए ज़रूरी है.
  • इसमें सामान्य विज़ुअल डिज़ाइन, ऐनिमेशन, और इंटरैक्शन डिज़ाइन पैटर्न के लिए, पहले से मौजूद सहायता है.
  • रेंडरिंग के खर्च को आसानी से मैनेज करने के लिए, डेवलपर एपीआई उपलब्ध कराता है.
  • डेवलपर के ऐड-इन के लिए, रेंडरिंग पाइपलाइन एक्सटेंशन पॉइंट उपलब्ध कराता है.
  • यह सभी कॉन्टेंट को ऑप्टिमाइज़ करता है—एचटीएमएल, सीएसएस, 2D कैनवस, 3D कैनवस, इमेज, वीडियो, और फ़ॉन्ट.

दूसरे ब्राउज़र रेंडरिंग इंजन से तुलना

Gecko और Webkit ने भी इन ब्लॉग पोस्ट में बताई गई, आर्किटेक्चर से जुड़ी ज़्यादातर सुविधाओं को लागू किया है. कुछ मामलों में, इन्हें Chromium से पहले ही जोड़ा गया था.

जब कोई ब्राउज़र तेज़ और भरोसेमंद होता है, तो इसे खुशी से स्वीकार किया जाता है और इसका असर भी ज़रूर पड़ता है. हमारा मकसद सभी ब्राउज़र के लिए बेसलाइन को बेहतर बनाना है, ताकि डेवलपर उस पर भरोसा कर सकें.

सफलता का पिरामिड

मेरा मानना है कि किसी भी प्रोजेक्ट की सफलता के लिए, सबसे पहले उसे भरोसेमंद बनाना ज़रूरी है. इसके बाद, उसकी परफ़ॉर्मेंस को बेहतर बनाना और आखिर में उसे बड़े पैमाने पर इस्तेमाल करने लायक बनाना ज़रूरी है.

लेबल वाला पिरामिड. सबसे नीचे भरोसेमंदता, बीच में परफ़ॉर्मेंस, और सबसे ऊपर एक्सटेंसिबिलिटी

असल पिरामिड की तरह ही, हर लेवल से ऊपर वाले लेवल के लिए एक मज़बूत बुनियाद मिलती है.

विश्वसनीयता

इस स्केच में दिखाया गया है कि RenderingNG की सुविधाओं को, उपयोगकर्ताओं को परेशान किए बिना कैसे जोड़ा जा सकता है

अगर उपयोगकर्ताओं को बेहतर और जटिल अनुभव देने हैं, तो सबसे पहले हमें एक बेहतरीन प्लैटफ़ॉर्म की ज़रूरत है. मुख्य सुविधाएं और बुनियादी चीज़ें ठीक से काम करनी चाहिए और समय के साथ काम करती रहनी चाहिए. साथ ही, यह भी ज़रूरी है कि ये सुविधाएं अच्छी तरह से काम करें और इनमें कोई गड़बड़ी या अजीब व्यवहार न हो.

इस स्केच में, सुविधाएं जोड़ने, सुझाव/राय पाने, और भरोसेमंदता को बेहतर बनाने की प्रोसेस को दिखाया गया है

इस वजह से, RenderingNG के लिए भरोसा सबसे अहम है. भरोसेमंद क्वालिटी, अच्छी जांच, क्वालिटी फ़ीडबैक लूप, मेट्रिक, और सॉफ़्टवेयर डिज़ाइन पैटर्न का नतीजा होती है.

भरोसे को कितना अहम माना जाता है, यह बताने के लिए हमने पिछले आठ सालों में ज़्यादातर समय इस पर ही लगाया. सबसे पहले, हमने सिस्टम के बारे में पूरी जानकारी हासिल की. इसके लिए, हमने गड़बड़ी की रिपोर्ट से सीखा कि सिस्टम की कमजोरियां कहां हैं और उन्हें ठीक किया. साथ ही, हमने पूरी तरह से जांच करने की सुविधा शुरू की और साइटों की परफ़ॉर्मेंस की ज़रूरतों और Chromium की परफ़ॉर्मेंस की सीमाओं को समझा. इसके बाद, हमने ज़रूरी डिज़ाइन पैटर्न और डेटा स्ट्रक्चर को ध्यान से और धीरे-धीरे डिज़ाइन किया और लॉन्च किया. इसके बाद ही, हम रिस्पॉन्सिव डिज़ाइन, स्केलेबिलिटी, और रेंडरिंग को पसंद के मुताबिक बनाने के लिए, अगली पीढ़ी के प्राइमिटिव जोड़ने के लिए तैयार थे.

स्केच ग्राफ़ में, समय के साथ भरोसेमंदता, परफ़ॉर्मेंस, और एक्सटेंसिबिलिटी में होने वाली बढ़ोतरी को दिखाया गया है

इसका मतलब यह नहीं है कि इस दौरान Chromium में कोई सुधार नहीं हुआ. असल में, इसके उलट होता है! इन सालों में, भरोसेमंदता और परफ़ॉर्मेंस में लगातार बढ़ोतरी हुई. ऐसा इसलिए हुआ, क्योंकि हमने हर सुधार को सिलसिलेवार तरीके से रीफ़ैक्टर किया और रोल आउट किया.

जांच और मेट्रिक

पिछले आठ सालों में, हमने हज़ारों यूनिट, परफ़ॉर्मेंस, और इंटिग्रेशन टेस्ट जोड़े हैं. इसके अलावा, हमने कई तरह की मेट्रिक विकसित की हैं. इनसे यह पता चलता है कि Chromium की रेंडरिंग, लोकल टेस्टिंग, परफ़ॉर्मेंस के मानदंडों, और असल उपयोगकर्ताओं और डिवाइसों के साथ असल साइटों पर कैसे काम करती है.

भले ही, RenderingNG (या किसी दूसरे ब्राउज़र का रेंडरिंग इंजन) कितना भी बेहतर क्यों न हो, अगर ब्राउज़र के बीच बहुत सारे गड़बड़ियां या व्यवहार में अंतर हैं, तो वेब के लिए इसे डेवलप करना आसान नहीं होगा. इस समस्या को हल करने के लिए, हम वेब प्लैटफ़ॉर्म टेस्ट का ज़्यादा से ज़्यादा इस्तेमाल करते हैं. इनमें से हर टेस्ट, वेब प्लैटफ़ॉर्म के इस्तेमाल के पैटर्न की पुष्टि करता है. सभी ब्राउज़र को इस टेस्ट को पास करना चाहिए. हम मेट्रिक पर भी नज़र रखते हैं, ताकि समय के साथ ज़्यादा टेस्ट पास किए जा सकें और कोर के साथ काम करने की क्षमता को बढ़ाया जा सके.

वेब प्लैटफ़ॉर्म टेस्ट, कई लोगों के सहयोग से किए जाते हैं. उदाहरण के लिए, Chromium के इंजीनियरों ने सीएसएस की सुविधाओं के लिए, WPT के कुल टेस्ट में से सिर्फ़ 10% टेस्ट जोड़े हैं. बाकी टेस्ट, दूसरे ब्राउज़र वेंडर, स्वतंत्र योगदान देने वाले लोग, और स्पेसिफ़िकेशन के लेखक जोड़ते हैं. इंटरऑपरेबल वेब को बनाने में पूरे समुदाय का सहयोग ज़रूरी है!

अलग-अलग इंजन में पास होने वाली टेस्ट
wpt.fyi/compat2021 से, मुख्य सुविधाओं के लिए WPTs के पास होने की दर का आकलन करना

सॉफ़्टवेयर डिज़ाइन के अच्छे पैटर्न

अगर कोड को आसानी से समझा जा सकता है और उसे इस तरह से डिज़ाइन किया गया है कि बग की संभावना कम हो, तो भरोसेमंद और बेहतर सॉफ़्टवेयर डिलीवर करना काफ़ी आसान हो जाता है. आने वाले समय में, हम RenderingNG के सॉफ़्टवेयर डिज़ाइन के बारे में ज़्यादा जानकारी देंगे.

बेहतर परफ़ॉर्मेंस

RenderingNG का अगला सबसे अहम पहलू, बेहतर परफ़ॉर्मेंस हासिल करना है. इसमें, स्पीड, मेमोरी, और बिजली के इस्तेमाल के सभी डाइमेंशन शामिल हैं. हम चाहते हैं कि सभी वेब साइटों के साथ इंटरैक्शन आसान और रिस्पॉन्सिव हो. साथ ही, डिवाइस के काम करने में कोई रुकावट न आए.

हालांकि, हमें सिर्फ़ परफ़ॉर्मेंस नहीं चाहिए, बल्कि हमें स्केलेबल परफ़ॉर्मेंस चाहिए. ऐसा आर्किटेक्चर चाहिए जो लो-एंड और हाई-एंड मशीनों पर अच्छी परफ़ॉर्म करे. साथ ही, यह सभी ओएस प्लैटफ़ॉर्म पर अच्छी परफ़ॉर्म करे. हम इसे स्केलिंग अप कहते हैं. इसका मतलब है, हार्डवेयर डिवाइस के सभी फ़ायदों का फ़ायदा लेना. इसके अलावा, स्केलिंग डाउन का मतलब है, ज़रूरत पड़ने पर सिस्टम की मांग को कम करना और परफ़ॉर्मेंस को बेहतर बनाना.

ऐसा करने के लिए, हमें कैश मेमोरी का ज़्यादा से ज़्यादा इस्तेमाल करना पड़ा. साथ ही, परफ़ॉर्मेंस को अलग-अलग रखना और जीपीयू हार्डवेयर से तेज़ी लाने की सुविधा का भी ज़्यादा से ज़्यादा इस्तेमाल करना पड़ा. आइए, इनमें से हर एक के बारे में बारी-बारी से जानते हैं. इसे बेहतर तरीके से समझने के लिए, आइए इस बारे में सोचें कि वेब पेजों पर होने वाले एक अहम इंटरैक्शन, स्क्रोलिंग की परफ़ॉर्मेंस में इनमें से हर एक का क्या योगदान है.

कैश मेमोरी में सेव करना

वेब जैसे डाइनैमिक, इंटरैक्टिव यूज़र इंटरफ़ेस (यूआई) प्लैटफ़ॉर्म में, परफ़ॉर्मेंस को काफ़ी बेहतर बनाने के लिए, कैश मेमोरी का इस्तेमाल करना सबसे अहम तरीका है. ब्राउज़र में कैश मेमोरी में सेव करने का सबसे ज़्यादा इस्तेमाल किया जाने वाला तरीका, एचटीटीपी कैश मेमोरी है. हालांकि, रेंडरिंग में भी कई कैश मेमोरी होती हैं. स्क्रोल करने के लिए, कैश मेमोरी में सेव किए गए जीपीयू टेक्सचर और डिसप्ले की सूचियां सबसे ज़्यादा अहम होती हैं. इनकी मदद से, स्क्रोल करने की प्रोसेस तेज़ी से होती है. साथ ही, बैटरी की खपत कम होती है और यह सुविधा कई तरह के डिवाइसों पर अच्छी तरह से काम करती है.

कैश मेमोरी का इस्तेमाल करने से, स्क्रोल करने के लिए बैटरी लाइफ़ और ऐनिमेशन फ़्रेम रेट में मदद मिलती है. हालांकि, इससे मुख्य थ्रेड से परफ़ॉर्मेंस अलग होने की समस्या भी ठीक हो जाती है.

परफ़ॉर्मेंस आइसोलेशन

नए डेस्कटॉप कंप्यूटर पर, आपको कभी भी इस बात की चिंता नहीं करनी पड़ती कि बैकग्राउंड में चल रहे ऐप्लिकेशन, आपके काम में इस्तेमाल किए जा रहे ऐप्लिकेशन की परफ़ॉर्मेंस को धीमा कर देंगे. ऐसा, पहले से मल्टीटास्किंग की सुविधा की वजह से होता है. यह सुविधा, परफ़ॉर्मेंस को अलग-अलग रखने का एक तरीका है. इससे यह पक्का किया जाता है कि अलग-अलग टास्क, एक-दूसरे की परफ़ॉर्मेंस पर असर न डालें.

वेब पर, परफ़ॉर्मेंस अलग करने का सबसे अच्छा उदाहरण स्क्रोलिंग है. जिन वेबसाइटों पर बहुत धीमा JavaScript होता है उन पर भी स्क्रीन को आसानी से स्क्रोल किया जा सकता है. ऐसा इसलिए होता है, क्योंकि यह एक अलग थ्रेड पर चलता है. इस थ्रेड को JavaScript और लेआउट थ्रेड पर निर्भर नहीं रहना पड़ता. हमने RenderingNG में काफ़ी मेहनत की है, ताकि यह पक्का किया जा सके कि हर संभव स्क्रोल को थ्रेड किया गया हो. इसके लिए, हमने कैश मेमोरी का इस्तेमाल किया है, जो सिर्फ़ डिसप्ले सूची से परे, ज़्यादा जटिल स्थितियों में भी काम करती है. उदाहरणों में, तय और स्टिक वाली जगह पर मौजूद एलिमेंट, पैसिव इवेंट लिसनर, और अच्छी क्वालिटी के टेक्स्ट रेंडरिंग को दिखाने वाला कोड शामिल है.

स्केच से पता चलता है कि RenderingNG की मदद से, JavaScript के बहुत धीमे होने पर भी परफ़ॉर्मेंस अच्छी बनी रहती है.

जीपीयू एक्सेलेरेशन

जीपीयू की मदद से, पिक्सल जनरेट करने और स्क्रीन पर ड्रॉ करने की प्रोसेस काफ़ी तेज़ी से होती है. कई मामलों में, हर पिक्सल को दूसरे पिक्सल के साथ-साथ ड्रॉ किया जा सकता है. इससे, प्रोसेस की स्पीड काफ़ी बढ़ जाती है. RenderingNG का एक मुख्य कॉम्पोनेंट, जीपीयू रेस्टर और हर जगह ड्रॉ करना है. यह वेब कॉन्टेंट को तेज़ी से रेंडर करने और ऐनिमेशन देने के लिए, सभी प्लैटफ़ॉर्म और सभी डिवाइसों पर जीपीयू का इस्तेमाल करता है. यह खास तौर पर, कम या ज़्यादा बेहतरीन डिवाइसों के लिए ज़रूरी है. इनमें अक्सर, डिवाइस के अन्य हिस्सों की तुलना में बेहतर जीपीयू होता है.

स्केच से पता चलता है कि RenderingNG की मदद से, परफ़ॉर्मेंस में इतनी गिरावट नहीं आती.

एक्सटेंसिबिलिटी: काम के लिए सही टूल

भरोसेमंद और स्केलेबल परफ़ॉर्मेंस मिलने के बाद, अब हम कई टूल बनाने के लिए तैयार हैं. इनसे डेवलपर को एचटीएमएल, सीएसएस, और कैनवस के पहले से मौजूद हिस्सों को बड़ा करने में मदद मिलेगी. साथ ही, इन टूल की मदद से, परफ़ॉर्मेंस और भरोसे को बनाए रखा जा सकेगा.

इसमें रिस्पॉन्सिव डिज़ाइन, प्रोग्रेसिव रेंडरिंग, बेहतर और तेज़ रेंडरिंग, और थ्रेड की सुविधा वाले रेंडरिंग के बेहतर इस्तेमाल के उदाहरणों के लिए, पहले से मौजूद और JavaScript-एक्सपोज़्ड एपीआई शामिल हैं.

Chromium के समर्थन वाले इन ओपन वेब एपीआई को RenderingNG की मदद से बनाया गया है. पहले इन्हें असंभव माना जाता था.

इन सभी को ओपन स्पेसिफ़िकेशन के साथ और ओपन वेब पार्टनर के साथ मिलकर डेवलप किया गया था. इन पार्टनर में, दूसरे ब्राउज़र के इंजीनियर, विशेषज्ञ, और वेब डेवलपर शामिल हैं. आने वाले समय में, हम इनमें से हर सुविधा के बारे में ज़्यादा जानकारी देंगे. साथ ही, यह भी बताएंगे कि RenderingNG इन सुविधाओं को कैसे उपलब्ध कराता है.

  • content-visibility: इससे साइटों को, स्क्रीन पर न दिखने वाले कॉन्टेंट को रेंडर करने से आसानी से बचने में मदद मिलती है. साथ ही, फ़िलहाल न दिखाए जा रहे सिंगल पेज ऐप्लिकेशन व्यू के लिए, रेंडरिंग को कैश मेमोरी में सेव किया जा सकता है.
  • OffscreenCanvas: इससे कैनवस रेंडरिंग (2D कैनवस एपीआई और WebGL, दोनों) को अपनी थ्रेड पर चलाने की अनुमति मिलती है, ताकि बेहतर परफ़ॉर्मेंस मिल सके. यह प्रोजेक्ट, वेब के लिए एक और अहम माइलस्टोन है—यह पहला ऐसा वेब एपीआई है जो JavaScript (या WebAssembly!) को एक से ज़्यादा थ्रेड से एक वेब पेज दस्तावेज़ को रेंडर करने की अनुमति देता है.
  • कंटेनर क्वेरी: इससे किसी एक कॉम्पोनेंट को अपने हिसाब से लेआउट बनाने की अनुमति मिलती है. साथ ही, प्लग-एंड-प्ले कॉम्पोनेंट के पूरे यूनिवर्स को अनब्लॉक किया जा सकता है. फ़िलहाल, इसे एक्सपेरिमेंट के तौर पर लागू किया जा रहा है.
  • ऑरिजिन आइसोलेशन: इससे साइटों को iframes के बीच परफ़ॉर्मेंस आइसोलेशन के लिए ऑप्ट इन करने की सुविधा मिलती है.
  • मुख्य थ्रेड से बाहर के पेंट वर्कलेट: इससे डेवलपर को एलिमेंट को पेंट करने के तरीके को बेहतर बनाने में मदद मिलती है. इसके लिए, वे कॉम्पोज़र थ्रेड पर चलने वाले कोड का इस्तेमाल करते हैं.

साफ़ तौर पर बताए गए वेब एपीआई के अलावा, RenderingNG की मदद से हमने कई अहम "अपने-आप काम करने वाली सुविधाएं" लॉन्च की हैं. इनसे सभी साइटों को फ़ायदा मिलता है:

  • साइट अलगाव: बेहतर सुरक्षा और परफ़ॉर्मेंस अलगाव के लिए, क्रॉस-ऑरिजिन iframe को अलग-अलग सीपीयू प्रोसेस में डालता है.
  • Vulkan, D3D12, और Metal: ये ऐसे लोअर-लेवल एपीआई हैं जो OpenGL की तुलना में जीपीयू का ज़्यादा बेहतर तरीके से इस्तेमाल करते हैं.
  • ज़्यादा कंपोज़िट किए गए ऐनिमेशन: SVG, बैकग्राउंड का रंग.

RenderingNG की मदद से, आने वाले समय में ये सुविधाएं भी उपलब्ध होंगी. इनमें हम काफ़ी दिलचस्पी रखते हैं:

RenderingNG में शामिल मुख्य प्रोजेक्ट

यहां RenderingNG के मुख्य प्रोजेक्ट की सूची दी गई है.

CompositeAfterPaint

CompositeAfterPaint, स्टाइल, लेआउट, और पेंट से कॉम्पोज़ करने की प्रोसेस को अलग करता है. इससे, कॉम्पोज़ करने की प्रोसेस ज़्यादा भरोसेमंद और अनुमानित परफ़ॉर्मेंस वाली हो जाती है. साथ ही, ज़्यादा थ्रूपुट मिलता है और परफ़ॉर्मेंस में कमी आए बिना कम मेमोरी का इस्तेमाल होता है.

साल प्रगति
2015 शिप डिसप्ले की सूचियां.
2017 अमान्य होने की नई जानकारी भेजें.
2018 शिपिंग प्रॉपर्टी के ट्री का पहला भाग.
2019 शिप प्रॉपर्टी ट्री का दूसरा हिस्सा.
2021 प्रोजेक्ट की शिपिंग पूरी हो गई है.

LayoutNG

सभी लेआउट एल्गोरिदम को फिर से लिखा गया है, ताकि भरोसेमंदता और परफ़ॉर्मेंस को बेहतर बनाया जा सके.

LayoutNG के बारे में ज़्यादा जानें.

साल प्रगति
2019 शिप ब्लॉक फ़्लो.
2020 शिपिंग फ़्लेक्स, एडिटिंग.
2021 बाकी सभी आइटम शिप करें.

BlinkNG

हमने Blink रेंडरिंग इंजन को फिर से तैयार किया है और उसे अलग-अलग चरणों में बांट दिया है. इससे बेहतर तरीके से कैश मेमोरी में कॉन्टेंट सेव किया जा सकता है. साथ ही, कॉन्टेंट को फिर से लोड करने या देर से रेंडर करने की सुविधाएं भी मिलती हैं. जैसे, कॉन्टेंट दिखने की सुविधा और कंटेनर क्वेरी.

हर जगह जीपीयू ऐक्सेलरेशन

जीपीयू ऐक्सेलरेशन की मदद से, ज़्यादातर कॉन्टेंट को तेज़ी से रेंडर किया जा सकता है, क्योंकि हर पिक्सल को एक साथ प्रोसेस किया जा सकता है. यह उन डिवाइसों की परफ़ॉर्मेंस को बेहतर बनाने का भी असरदार तरीका है जिनमें जीपीयू होता है.

साल प्रगति
2014 कैनवस की सहायता टीम. Android पर ऑप्ट-इन कॉन्टेंट के साथ शिप किया गया.
2016 Mac पर शिप करें.
2017 Android के 60% से ज़्यादा पेज व्यू पर, जीपीयू का इस्तेमाल किया जाता है.
2018 Windows, ChromeOS, और Android Go पर उपलब्ध है.
2019 थ्रेड वाला जीपीयू रेस्टराइज़ेशन.
2020 बाकी बचे Android कॉन्टेंट को शिप करें.

थ्रेड वाला स्क्रोलिंग, ऐनिमेशन, और डिकोड

यह एक लंबी प्रक्रिया है, जिसमें सभी स्क्रोलिंग, ऐसे ऐनिमेशन जिन्हें लेआउट में बदलाव करने की ज़रूरत नहीं होती, और इमेज को डिकोड करने की प्रोसेस को मुख्य थ्रेड से हटाया जाता है. यह प्रोसेस जारी है.

साल प्रगति
2011 थ्रेड किए गए स्क्रोल और ऐनिमेशन के लिए शुरुआती सहायता.
2015 लेयर को छोटा करना.
2016 यूनिवर्सल ओवरफ़्लो स्क्रोलिंग.
2017 इमेज को कंपोज़िटर थ्रेड पर डीकोड किया जाता है.
2018 कंपोज़िटर थ्रेड पर इमेज ऐनिमेशन.
2020 हमेशा फ़्रीज़ किए गए हिस्से को कंपोज करें.
2021 प्रतिशत में बदलाव करने वाले ऐनिमेशन, एसवीजी ऐनिमेशन.

Viz

Chromium के लिए, एक ही जगह पर रेस्टर और ड्रॉ प्रोसेस करने की सुविधा. इससे, थ्रूपुट बढ़ता है, मेमोरी ऑप्टिमाइज़ होती है, और हार्डवेयर की क्षमताओं का बेहतर तरीके से इस्तेमाल किया जा सकता है. इसकी वजह से, वेब डेवलपर को कम फ़ायदे मिलते हैं, लेकिन उपयोगकर्ताओं को ज़्यादा फ़ायदे मिलते हैं. जैसे, साइट आइसोलेशन को अनब्लॉक करना और रेंडरिंग पाइपलाइन को ब्राउज़र यूज़र इंटरफ़ेस (यूआई) रेंडरिंग से अलग करना.

साल प्रगति
2018 OOP-R, Android, Mac, और Windows पर उपलब्ध है.
2019 OOP-D शिप कर दिया गया. OOP-R को हर जगह शिप किया जाता है. हालांकि, कैनवस को छोड़कर. Linux पर उपलब्ध SkiaRenderer.
2020 SkiaRenderer, Windows और Android पर उपलब्ध है. Android पर उपलब्ध Vulkan.
2021 SkiaRenderer, Mac पर उपलब्ध है. यह जल्द ही ChromeOS पर भी उपलब्ध होगा.

ऊपर दिए गए चार्ट में मौजूद शब्दों की परिभाषाएं:

OOP-D
प्रोसेस से बाहर का डिसप्ले कंपोजिटर. डिसप्ले कॉम्पोज़िंग, ओएस कंपोजर जैसी ही गतिविधि है. प्रोसेस के बाहर का मतलब है कि इसे वेब पेज की रेंडर प्रोसेस या ब्राउज़र यूज़र इंटरफ़ेस (यूआई) प्रोसेस के बजाय, विज़ प्रोसेस में किया जा रहा है.
OOP-R
प्रोसेस से बाहर का रेस्टर. रेस्टर, डिसप्ले सूचियों को पिक्सल में बदल रहा है. प्रोसेस के बाहर का मतलब है कि इसे वेब पेज की रेंडर प्रोसेस के बजाय, विज़ प्रोसेस में किया जा रहा है.
SkiaRenderer
नया डिसप्ले कंपोजिटर लागू किया गया है. यह कई अलग-अलग GPU API पर काम कर सकता है. जैसे, Vulkan, D3D12 या Metal.

थ्रेड की मदद से और तेज़ी से कैनवस रेंडर करना

इस प्रोजेक्ट की मदद से, OffscreenCanvas को बनाया गया है.

साल प्रगति
2018 OffscreenCanvas को शिप करें.
2019 ImageBitmapRenderingContext को शिप करें.
2021 शिप OOP-R.

VideoNG

VideoNG, वेब पर वीडियो चलाने के लिए एक बेहतरीन, भरोसेमंद, और अच्छी क्वालिटी का प्लैटफ़ॉर्म है. इसे बनाने में हमें लंबा समय लगा है.

साल प्रगति
2014 Mojo पर आधारित रेंडरिंग फ़्रेमवर्क को लॉन्च किया गया.
2015 वीडियो को आसानी से रेंडर करने के लिए, Project Butter और वीडियो ओवरले की सुविधा जोड़ी गई है.
2016 Android और डेस्कटॉप के लिए, डिकोडिंग और रेंडरिंग की एकीकृत पाइपलाइन को शिप किया गया.
2017 एचडीआर और कलर में बदलाव किए गए वीडियो को रेंडर करने की सुविधा जोड़ी गई.
2018 Mojo पर आधारित वीडियो डिकोडिंग पाइपलाइन को शिप किया गया.
2019 डिवाइस के डिसप्ले के हिसाब से वीडियो रेंडर करने की पाइपलाइन.
2021 ChromeOS पर, सुरक्षित 4K कॉन्टेंट को रेंडर करने की सुविधा जोड़ी गई.

ऊपर दिए गए चार्ट में मौजूद शब्दों की परिभाषाएं:

Mojo
Chromium के लिए, नेक्स्ट-जनरेशन IPC सबसिस्टम.
प्लैटफ़ॉर्म
एक कॉन्सेप्ट, जो विज़ प्रोजेक्ट के डिज़ाइन का हिस्सा है.

इमेज: यूना क्रावेट.