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


जवाबों:


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.