जैसा कि अन्य लोगों ने उल्लेख किया है, आपके ओएस (ड्राइवर संसाधन प्रबंधक के सहयोग से) को संसाधनों को छोड़ना चाहिए। ओएस के लिए यही है। यह ध्यान देने योग्य है कि इसका ओपनजीएल के साथ कुछ लेना देना नहीं है, लेकिन ऐसा कुछ ऐसा है जो अच्छी तरह से व्यवहार किए गए ओएस और उनके संबंधित ड्राइवरों के चार्टर का हिस्सा है। ओएस सभी सिस्टम संसाधनों को संभालने के लिए है। ओपनजीएल सिर्फ एक हैंडसेट हैं, और वे फाइल हैंडल कहने से अलग नहीं हैं। अब अधिक ठोस पाने के लिए, आपको यह निर्दिष्ट करना चाहिए कि आप किस ओएस की परवाह करते हैं।
बीटीडब्ल्यू, यह वह जगह है जहां मैं क्रिसफ़ के जवाब के साथ अपवाद लेता हूं। यह तय करने के लिए ड्राइवर को नहीं होना चाहिए कि इसे सफाई करने की आवश्यकता है। ओएस ड्राइवर मॉडल के पास उपयोगकर्ता-मोड ओपनजीएल ड्राइवर (जो वास्तविक जीएफएक्स संसाधन आवंटन नहीं करता है, क्योंकि यह मशीन में साझा किया गया है) के बीच एक स्पष्ट अंतरफलक होगा, ओएस (जो संसाधन आवंटित करने के लिए सिस्टम कॉल के बराबर प्रदान करता है) और कर्नेल-मोड ड्राइवर (जो केवल ओएस ऑर्डर को जीपीयू के साथ संगत करने के लिए निष्पादित करने के लिए है)। यह कम से कम WIN2K और WDDM मॉडल के मामले में है।
तो ... यदि आपकी प्रक्रिया क्रैश हो जाती है या अन्यथा समाप्त हो जाती है, तो उन मॉडलों में, प्रक्रिया के साथ जुड़े सभी संसाधनों को मुक्त करने के लिए कर्नेल-मोड ड्राइवर को कॉल करने की ओएस ज़िम्मेदारी है।
अब, चाहे आप हो या वास्तव में कुछ ऐसा नहीं है जो स्रोत कोड में टैब-या-स्पेस पूछने जैसा छोटा हो। अलग-अलग लोगों के यहां अलग-अलग विश्वास हैं। "ओएस इसे वैसे भी करेगा, तुरंत छोड़ना बेहतर अंत उपयोगकर्ता अनुभव" बनाम "है, मैं जानना चाहता हूं कि मैं स्मृति लीक कर रहा हूं क्योंकि यदि मेरा प्रोग्राम लंबे समय से चल रहा है, तो मैं वास्तव में यह नहीं चाहता कि यह ओओएम त्रुटियों को दबाए ऐसा करने का सबसे अच्छा तरीका पूरे रिसाव मुक्त होना है "विचारों की 2 मुख्य पंक्तियां हैं जिन्हें मैं जानता हूं।
"है" की अपनी परिभाषा पर निर्भर करता है। आपको कुछ भी करने की ज़रूरत नहीं है। यदि आप "सही" होना चाहते हैं, हाँ; जब आप पूरा कर लेंगे तो आपको हमेशा अपने संसाधनों को छोड़ना होगा। – GManNickG
मैं यह जानना चाहता था कि यह स्वचालित रूप से क्लीनअप हो जाएगा, * प्रोग्राम बंद होने के तुरंत बाद, या अगली रीबूट तक GPU स्मृति खो जाती है। मुझे उम्मीद थी कि कोई मुझे ओपनजीएल विनिर्देश की ओर इंगित कर सकता है और इसे वहां परिभाषित किया गया था (हालांकि मेरे पसंदीदा खोज इंजन ने मुझे कुछ भी उपयोगी नहीं किया था)। – drahnr
दोनों! वास्तव में, अपने आप को साफ करें, भले ही ओएस आपके लिए करता है। आपको किसी भी 'नई' मेमोरी को कभी भी 'डिलीट' करने की ज़रूरत नहीं है, ओएस प्रोग्राम खत्म होने पर इसे मुक्त कर देगा, लेकिन फिर भी ऐसा कुछ नहीं है जो मैं सुझाता हूं। –