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

OpenGL 4.6 और OpenGL® ES 3.2 सपोर्ट

  • M1 लंबे समय तक केवल OpenGL 4.1 को सपोर्ट करता था, लेकिन अब यह OpenGL® 4.6 और OpenGL® ES 3.2 को पूरी तरह सपोर्ट करता है।
  • नवीनतम M1/M2 सीरीज़ ड्राइवरों के लिए Fedora इंस्टॉल करना होगा।
  • यदि यह पहले से इंस्टॉल है, तो केवल dnf upgrade --refresh कमांड से अपग्रेड किया जा सकता है।
  • मौजूदा vendor के गैर-मानक 4.1 ड्राइवरों के विपरीत, ये open source Linux ड्राइवर नवीनतम OpenGL वर्ज़न के अनुरूप प्रमाणित हैं, और Blender, Ryujinx, Citra जैसे आधुनिक OpenGL workloads के साथ व्यापक संगतता का वादा करते हैं।

ड्राइवर प्रमाणन और मानक सपोर्ट

  • प्रमाणित 4.6/3.2 ड्राइवरों को शुद्धता सुनिश्चित करने के लिए 100,000 से अधिक टेस्ट पास करने होते हैं।
  • आधिकारिक रूप से प्रमाणित ड्राइवरों की सूची में अब OpenGL 4.6 और ES 3.2 शामिल हैं।
  • vendor अभी तक आधुनिक OpenGL जैसे graphics standards को सपोर्ट नहीं करता, लेकिन यह कंपनी सपोर्ट करती है।
  • यह कंपनी interoperable open standards के प्रति अपने प्रेम को सार्वजनिक रूप से व्यक्त करती है, और उपयोगकर्ताओं व डेवलपर्स को यह स्वतंत्रता देना चाहती है कि वे बिना किसी विशेष port के अपनी applications को जहाँ चाहें चला सकें।

OpenGL 4.6 में नया क्या है

  • OpenGL 4.6, 4.1 की तुलना में दर्जनों अनिवार्य features जोड़ता है:
    • Robustness (मज़बूती)
    • SPIR-V
    • Clip control
    • Cull distance
    • Compute shaders
    • Upgraded transform feedback

M1 और graphics standards की संगतता समस्या

  • M1, OpenGL ES 3.1 से नए graphics standards के लिए अच्छी तरह उपयुक्त नहीं है।
  • Vulkan कुछ features को वैकल्पिक बनाता है, लेकिन DirectX और OpenGL के लिए layers में ज़रूरी features नहीं हैं।
  • M1 पर OpenGL 4.1 feature set से आगे जाने वाला कोई मौजूदा समाधान नहीं है।

4.1 बाधा को पार करने का तरीका

  • hardware support के बिना नए features लागू करने के लिए नए तरीकों की ज़रूरत है।
  • geometry shaders, tessellation, और transform feedback को compute shaders से बदला गया है।
  • Cull distance को transformed interpolants से बदला गया है।
  • Clip control को vertex shader epilogue से बदला गया है।

Robustness से जुड़ी चुनौतियाँ

  • पारंपरिक रूप से GPU सुरक्षा की तुलना में raw performance को प्राथमिकता देते रहे हैं।
  • web browser जैसी applications के लिए यह trade-off वांछनीय नहीं है।
  • Robustness features, shader में buffer से बाहर access होने पर application को परिभाषित behavior चुनने की अनुमति देकर, प्रदर्शन में थोड़ी कमी के बदले attack surface को कम कर सकते हैं।

Buffer robustness

  • जब robustness सक्षम हो, तब buffer के दायरे से बाहर load क्या लौटाए, इसे लेकर अलग-अलग API की अलग परिभाषाएँ हैं।
  • OpenGL में दायरे से बाहर load, buffer का आख़िरी element लौटाता है।
  • robustness के लिए अतिरिक्त operations को shader के preamble में शिफ्ट किया गया है, इसलिए main shader पर इसकी कोई लागत नहीं है।

Image robustness

  • image robustness यह मांगती है कि दायरे से बाहर image load, 0 लौटाए।
  • M1 GPU पर एक single test है जिसमें mipmapped image load विफल हो जाता है।
  • robustness के लिए workaround यह है कि invalid level पर load न किया जाए, या speculative load के बाद compare और select operations का उपयोग किया जाए।

GN⁺ की राय

  • यह लेख M1 डिवाइसों पर आधुनिक OpenGL standards सपोर्ट करने की दिशा में एक महत्वपूर्ण प्रगति को कवर करता है। इससे Linux उपयोगकर्ताओं और डेवलपर्स को अधिक व्यापक संगतता और बेहतर प्रदर्शन मिलेगा।
  • OpenGL 4.6 के नए features graphics applications के प्रदर्शन और robustness को काफ़ी बेहतर बना सकते हैं, जो विशेष रूप से game development और high-performance computing क्षेत्रों में महत्वपूर्ण है।
  • यह लेख इस बात का एक अच्छा उदाहरण है कि open source ड्राइवर, commercial solutions की तुलना में बेहतर standards compliance और compatibility कैसे दे सकते हैं।

1 टिप्पणियां

 
GN⁺ 2024-02-15
Hacker News राय
  • Alyssa Rosenzweig समुदाय में लगातार योगदान देने वाली शख्सियत हैं, और उनकी ब्लॉग पोस्ट पढ़ने पर आधुनिक graphics hardware के अंदरूनी कामकाज के बारे में बहुत कुछ सीखने को मिलता है जो पहले पता नहीं था। यह मेहनत साबित करती है कि काबिलियत शब्दों से ज़्यादा मायने रखती है, और सिर्फ ब्लॉग पढ़ना भी सोचने पर मजबूर कर देता है। अहम संदेश आख़िरी नहीं बल्कि दूसरे वाक्य में है, और पाठक rabbit hole में उतरकर bit manipulation की दुनिया का आनंद लेने लगता है।
  • M1 chip, OpenGL ES 3.1 से नए graphics standards के लिए बहुत उपयुक्त नहीं है, और Vulkan में कुछ features को वैकल्पिक रूप से इस्तेमाल किया जा सकता है, लेकिन DirectX और OpenGL के लिए layering में ज़रूरी features गायब हैं। M1 पर OpenGL 4.1 feature set से आगे जाने वाला कोई समाधान नहीं है। इसका performance पर क्या असर होगा, खासकर macOS के Metal से तुलना करने पर, यह जानने की जिज्ञासा है।
  • graphics programming में out-of-bounds access को trap से बदलकर random data return करना और उसे 'robustness' कहना काफ़ी मज़ेदार लगता है।
  • कभी न कभी Apple, OpenGL 3.3 core को हटा देगा, और तब शायद सब लोग उसे छोड़ दें। आम तौर पर कहा जाता है कि OpenGL, Vulkan से इस्तेमाल में आसान है, लेकिन अगर चीज़ें बहुत जटिल हो जाएँ तो कम अनुभवी developers के लिए GPU का उपयोग करना एक बाधा बन सकता है, और इससे कुछ indie game developers हतोत्साहित हो सकते हैं। Unity और Unreal का इस्तेमाल आम है, लेकिन शुरू से game बनाना अब अजीब समझा जाता है। open source game development की स्थिति कभी-कभी बहुत निराशाजनक लगती है, और next-generation graphics API का आना हालात को और कठिन बना देता है।
  • यह M1 chip के लिए Fedora के बारे में है, और अगर इसे macOS पर लागू किया जाए तो वह चौंकाने वाला होगा। इसे हासिल करने के लिए किस तरह के काम की ज़रूरत होगी, यह जानने की उत्सुकता है।
  • यह जिज्ञासा है कि पहले Vulkan को target क्यों नहीं किया जाता। आजकल Vulkan ज़्यादा महत्वपूर्ण target लगता है, और OpenGL implementation पहले से मौजूद है।
  • 4.1 की बाधा को कैसे तोड़ा जाएगा? hardware support के बिना नए features लागू करने के लिए नए तरीकों की ज़रूरत होगी। geometry shader, tessellation, transform feedback को compute shader से, cull distance को transformed interpolated values से, और clip control को vertex shader के epilogue से लागू किया जाता है। यह जानने की जिज्ञासा है कि M1 GPU code में यह काम कितना किया जा रहा है, और दूसरे features के ज़रिए feature implementation को कितनी हद तक दोबारा इस्तेमाल किया जा सकता है।
  • एक और सिफारिश, यह एक और ऐसा लेख है जिसे अधिक ज्ञान और धैर्य के साथ संदर्भ में बेहतर समझना चाहूँगा। फिर भी Alyssa की लिखाई पढ़ने में मज़ेदार लगती है।
  • यह बात पागलपन जैसी लगती है कि 3D gaming में OpenGL के इस्तेमाल की एकमात्र वजह 90 के दशक में Quake II के लिए John Carmack का उस पर अड़े रहना था।