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 टिप्पणियां
Hacker News राय