article on Imagination's website में, मैं निम्नलिखित पैराग्राफ पढ़ा है:यूबीओ/एसएसबीओ वल्कन के शेडर मेमोरी बाइंडिंग से अलग कैसे हैं?
उदाहरण के लिए, कोई
glUniform*()
Vulkan में बराबर प्रवेश द्वारों हैं; इसके बजाय, जीपीयू मेमोरी को लिखना शेडर्स को डेटा पास करने का एकमात्र तरीका है।जब आप
glUniform*()
पर कॉल करते हैं, तो ओपनजीएल ईएस ड्राइवर को आम तौर पर ड्राइवर प्रबंधित बफर आवंटित करने और उसमें डेटा कॉपी करने की आवश्यकता होती है, जिसका प्रबंधन सीपीयू ओवरहेड में आता है। वल्कन में, आप बस मेमोरी एड्रेस को मैप करते हैं और उस मेमोरी लोकेशन को सीधे लिखते हैं।
क्या इसके बीच कोई अंतर है और वर्दी बफर का उपयोग कर रहा है? उन्हें स्पष्ट रूप से आवंटित किया जाता है और मनमाना डेटा ले जा सकते हैं। चूंकि वर्दी बफर आकार में काफी सीमित हैं, शायद Shader Storage Buffers एक बेहतर समानता है।
OpenGL ड्राइवर एक बफर और संदर्भ में सभी वर्दी युक्त पहले से ही नहीं एक समान बफर बनाने के लिए स्वतंत्र हैं:
चश्मा अभी तक जारी नहीं किया गया है, यहाँ क्या यह की तरह लग सकता है की एक काल्पनिक उदाहरण है कि glUniform कॉल में; वल्कन को यह स्पष्ट लगता है कि –
समान बफर के समान लगता है। मुझे लगता है कि हम 5 वें स्थान पर पाएंगे जब वाल्व अपनी जीडीसी बात करेंगे। – Robinson