2011-10-04 11 views
8

सी ++ में ओपनजीएल द्वारा उपयोग किए गए बाइट्स में कुल मेमोरी कैसे प्राप्त करें?सी ++ में ओपनजीएल द्वारा उपयोग किए गए बाइट्स में कुल मेमोरी कैसे प्राप्त करें?

मैं एक ओपन आवेदन और कुल स्मृति का उपयोग किया निर्माण कर रहा हूँ मैं कुल चर & वस्तुओं अपने आप के द्वारा बनाई द्वारा इस्तेमाल किया स्मृति के बारे में जानकारी प्राप्त कर सकते, बढ़ती प्रतीत हो रहा है लेकिन गारंटी नहीं दे सकते स्मृति कितना ओपन के लिए उपयोग कर रहा है इसके चर & ऑब्जेक्ट्स & बनावट इत्यादि। तो क्या सी ++ में ओपनजीएल द्वारा उपयोग किए गए बाइट्स में कुल मेमोरी प्राप्त करना संभव है?

उत्तर

7

सामान्य तौर पर, आप नहीं। ओपनजीएल अंत में एक हार्डवेयर अमूर्त है। और ओपनजीएल बस उस तरह की जानकारी प्राप्त करने का एक तरीका प्रदान नहीं करता है।

, विक्रेता-विशेष विस्तारण कि आप से पूछना करने के लिए तरीके दे देंगे कर रहे हैं, हालांकि क्या आप वापस पाने के आर्किटेक्चर पर निर्भर करता है। एएमडी हार्डवेयर ATI_meminfo extension प्रदान करता है। यह वस्तुओं के प्रकारों में स्मृति को तोड़ देता है: बफर ऑब्जेक्ट्स, बनावट, और रेंडरबफर।

NVIDIA प्रायोगिक एक्सटेंशन NVX_gpu_memory_info प्रदान करता है। रजिस्ट्री में इसका उपयोग करने के बारे में कोई जानकारी नहीं है, इसलिए मैं आपको कुछ भी लिंक नहीं कर सकता।

किसी भी मामले में, सबसे प्रभावी तरीका पता है कि GPU उपयोग कर रहा है बस अपने आप को यह नज़र रखने के लिए है। हमेशा internal image formats with sizes का उपयोग करें; इसका मतलब है कि आप एक सुंदर अनुमान लगा सकते हैं कि एक बनावट कितनी मेमोरी लेती है। बफर वस्तुओं और इतने आगे के लिए भी यही है।

आपको सटीक संख्याएं नहीं मिलेंगी, जैसे पैडिंग, संरेखण, और जैसे आपको परेशान कर सकते हैं। लेकिन आप कुछ सुंदर सभ्य हो जाएगा।

+0

मुझे लगता है कि बनावट मिपमैप्स को मेमोरी उपयोग आंकड़े के लिए भी ध्यान में रखा जाएगा। – Luca

+0

+1 अच्छा जवाब। मैंने वास्तव में इस सवाल का जवाब नहीं दिया क्योंकि मुझे यह धारणा मिली कि ओपी ओपनजीएल कार्यान्वयन (ड्राइवर) द्वारा उपयोग की जाने वाली सीपीयू मेमोरी जानना चाहता है। अन्यथा (यदि GPU स्मृति को प्रतिबिंबित किया जाता है) मुझे नहीं पता कि उसे कैसे देखा जाना चाहिए कि "उपयोग की जाने वाली कुल स्मृति बढ़ती जा रही है"। –

+0

मैं mipmaps का उपयोग कर रहा हूं और इसमें बिटमैप बनावट का उपयोग करने से 50% अधिक स्मृति लेनी चाहिए। लेकिन जीएल रैम और वीडियो रैम दोनों का उपयोग करता प्रतीत होता है – jondinham

संबंधित मुद्दे

 संबंधित मुद्दे