मैं डायरेक्टएक्स का उपयोग करके वीडियो मेमोरी को कैसे क्वेरी कर सकता हूं?


जवाबों:


8

गेम कोडिंग कम्प्लीट 3 के अनुसार, कुछ तरीके हैं:

  • DX7 का गेटअवलेविडवीम () - आमतौर पर बहुत अच्छा होता है। साझा मेमोरी वाले कार्ड पर बहुत अच्छा काम नहीं करता है।
  • WMI (विंडोज मैनेजमेंट इंटरफेस) का उपरोक्त परिणाम समान है।
  • DxDiag बेहतर परिणाम देने के लिए दोनों का उपयोग करता है।
  • डी 3 डी 9 में एक गेटअवेलेक्टेक्च्योरमेरी () फ़ंक्शन है, लेकिन इसका उपयोग केवल विंडोज विस्टा / 7 पर किया जा सकता है।

मार्च 08 में डीएक्स नमूने के लिए देखें या बाद में एसडीके को 'वीडियोमेरी' कहा जाता है।


वीडियो मेमोरी के लिए डीएक्स नमूना महान है - यह पूछना चाहिए कि पूछने से पहले;)
विन्सेन्ट स्किब

1
यह देखते हुए कि कितने कंप्यूटर साझा मेमोरी का उपयोग करेंगे, मैं DX7 के संस्करण की सिफारिश नहीं करूंगा। और इसका डी 3 डी 9 संस्करण केवल विस्टा + पर कैसे उपलब्ध हो सकता है? डी 3 डी 9 एक्सपी में था ...
बाहार

5

Vista और बाद में DX9EX के लिए:

IDXGIDevice * pDXGIDevice;
hr = g_pd3dDevice->QueryInterface(__uuidof(IDXGIDevice), (void **)&pDXGIDevice);
IDXGIAdapter * pDXGIAdapter;
pDXGIDevice->GetAdapter(&pDXGIAdapter);
DXGI_ADAPTER_DESC adapterDesc;
pDXGIAdapter->GetDesc(&adapterDesc);
return adapterDesc.DedicatedVideoMemory;

( http://msdn.microsoft.com/en-us/library/bb174526(v=VS.85).aspx से )


कॉल नहीं Release()पर pDXGIDeviceबाद एक सफल कॉल करने के लिए QueryInterface()एक स्मृति रिसाव के लिए नेतृत्व करेंगे।
विंज़ नोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.