Ne kadar ekran kartı belleği kullandığımı nasıl anlayabilirim?


15

Programlı olarak, programım tarafından ne kadar video kartı belleği kullanıldığını çalışma zamanında belirlemek istiyorum. Özellikle OpenGL kullanarak bir Windows makinesinde nasıl yapacağımı merak ediyorum, ancak diğer platformlarda da yapmanın yollarıyla ilgileniyorum.

Programım çalışırken bana bellek kullanımını gösterecek yardımcı programlar olduğunu biliyorum, ancak kodumdan bu bilgileri sorgulamak istiyorum.


PS Sorunuzu zaten yanıtladım, ancak bu sadece genel bir programlama sorusu olduğu için stackoverflow.com için daha uygun olurdu . Cevabım yeterince kapsamlı değilse, orada yeniden gönderebilir ve hangi yanıtları verdiklerini görebilirsiniz.
Ricket

Ben de stackoverflow üzerinde, ama hala burada geçerli olan soruların karışımını öğreniyorum.
Hitesh

3
Bu soru burada gayet iyi görünüyor. Sonuçta, muhtemelen ihtiyaç duyduğu saçmalıklara sahipti. Şuna
Tetrad

Yanıtlar:


14

NVX_gpu_memory_info uzantısını kullanarak bir Nvidia kartının video belleğini veya ATI_meminfo kullanarak bir ATI kartını bulabilirsiniz . İşte size başlayabilecek bir kod snippet'i .


Bununla birlikte, flipcode'daki Paul Nettle, neden mevcut video belleğini bulmak istediğini merak ediyor :

Video belleği miktarını belirlemek zor (ve bazen imkansız) nedeni, OpenGL'nin çerçeve arabelleğini kilitlemenize ve doğrudan erişmenize izin vermemesinin nedenlerine çok benzer.

Ve özünde, bir "video belleği miktarı" nın aslında hiçbir şey ifade etmeyebileceğini açıklamaya devam ediyor . Bir Windows Vista / 7 makinesindeki "boş" bellek miktarının alakasız olduğu gerekçesiyle onunla aynı fikirdeyim; umarım boş hafıza yoktur, çünkü boş hafıza boşa harcanır. Ancak, bir uygulamanın gereksinim duyması durumunda, Windows tarafından temizlenen önbelleklere ayrılmış bazı bellek alanları vardır.


Bazı harika kaynaklar. Birkaç gün içinde denemek için bir şans bulmalıyım.
Hitesh

+1, parçacıklar harika. Ancak, hiçbir şey ifade etmeme konusunda tamamen aynı fikirde değilim - bellek miktarını kontrol etmek, programınızın muhteşem olmasına izin vermekten daha iyidir.
Kornel Kisielewicz

Ama bence önemli olan şey, bellek miktarını kontrol etmemeniz değil, bellek miktarının hiçbir şeyin net bir göstergesi olmadığıydı. Kartın belleği bittiğinde, başarısız olacağı anlamına gelebilir veya doku verilerinizin gerektiğinde otomatik olarak takas edileceği anlamına gelebilir. 0 bellek aslında önemli bir bellek yetersiz hatası anlamına gelmeyebilir.
Ricket

1
Şahsen bunu sızıntıları izlemek ve donanım uyumluluğumu izlemek için basit bir kılavuz olarak kullanmayı planlıyorum. "20mb" mi kullanıyorsunuz? Evet, muhtemelen bugün piyasadaki herhangi bir şey üzerinde çalışacaktır. Çok fazla karmaşalı yarım düzine dinamik olarak ayrılmış doku ile basit bir oyunda "500mb" kullanmak? Hata! Çöp koleksiyonumla ilgili bir şeyler yanlış gitti.
ZorbaTHut

1
Ne yazık ki GL spec, sürücü GL_OUT_OF_MEMORY döndüğünde artık belirsiz olduğunu söylüyor, bu yüzden bellekten çıktıktan sonra temelde SOL oyun için çok kötü değil ama Photoshop gibi bir uygulama için kabul edilemez olduğunu söylüyor.
gman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.