사용중인 비디오 카드 메모리 용량을 어떻게 알 수 있습니까?


15

프로그램에서 사용하는 비디오 카드 메모리 양을 런타임에 프로그래밍 방식으로 결정하고 싶습니다. 특히 OpenGL을 사용하여 Windows 컴퓨터에서 수행하는 방법에 대해 궁금하지만 다른 플랫폼에서도 수행하는 방법에 관심이 있습니다.

프로그램이 실행될 때 메모리 사용량을 보여주는 유틸리티가 있다는 것을 알고 있지만 코드에서 해당 정보를 쿼리 할 수 ​​있기를 원합니다.


추신 : 나는 이미 당신의 질문에 대답했지만, 이것은 일반적인 프로그래밍 질문이기 때문에 stackoverflow.com 에 더 적합했을 것 입니다. 내 답변이 충분하지 않으면 다시 게시하여 어떤 답변을 제공하는지 확인할 수 있습니다.
Ricket

나는 또한 stackoverflow에 있지만 여전히 여기에 어떤 질문이 유효한지 배우고 있습니다.
Hitesh

3
이 질문은 여기서 완벽하게 괜찮습니다. 결국, 그는 아마도 필요한 농담을 받았을 것입니다. 이 참조 meta.gamedev.stackexchange.com/questions/3/...
테트라

답변:


14

NVX_gpu_memory_info 확장명을 사용하는 Nvidia 카드 또는 ATI_meminfo를 사용하는 ATI 카드 의 비디오 메모리를 찾을 수 있습니다 . 다음은 코드 스 니펫입니다. 내가 시작할 수있는 .


그러나 플립 코드의 Paul Nettle은 왜 사용 가능한 비디오 메모리를 찾고 싶어하는지 궁금해합니다 .

비디오 메모리의 양을 결정하기 어려운 (때로는 불가능한) 이유는 OpenGL이 프레임 버퍼를 잠그고 직접 액세스 할 수없는 이유와 매우 유사합니다.

그리고 본질적 으로 "비디오 메모리의 양"은 실제로는 아무 의미가 없다고 설명 합니다. 예를 들어, Windows Vista / 7 컴퓨터의 "사용 가능한"메모리 양이 중요하지 않다는 이유로 그와 동의합니다. 사용 가능한 메모리는 메모리 낭비이기 때문에 사용 가능한 메모리가 없기를 바랍니다. 그러나 응용 프로그램에서 필요로하는 경우 Windows가 지우는 캐시 전용 메모리 영역이 항상 있습니다.


훌륭한 자료. 나는 며칠 안에 그것을 시험해 볼 수있는 기회를 얻어야한다.
Hitesh

+1, 스 니펫이 훌륭합니다. 그러나 나는 아무것도 의미하지 않는 것에 대해 완전히 동의하지는 않습니다. 프로그램의 장관을 실패시키는 것보다 항상 메모리 양을 확인하는 것이 좋습니다.
Kornel Kisielewicz

글쎄, 요점은 반드시 메모리 양을 확인해서는 안되는 것이 아니라 메모리 양이 아무것도 나타내는 것이 아니라고 생각합니다. 카드의 메모리가 부족하면 카드가 고장 나거나 필요에 따라 텍스처 데이터가 자동으로 스왑 및 인출 될 수 있습니다. 0 메모리는 실제로 치명적인 메모리 부족 오류를 의미하지 않을 수 있습니다.
Ricket

1
개인적으로 누출을 추적하고 하드웨어 호환성을 관찰하기위한 간단한 지침으로 사용할 계획입니다. "20mb"를 사용하십니까? 네, 아마도 오늘 시장에 나와있는 모든 것에서 실행될 것입니다. 동적으로 할당 된 수십 개의 텍스처가 많은 이탈이있는 간단한 게임에서 "500mb"를 사용하십니까? 가비지 수집에 문제가있는 것 같습니다.
ZorbaTHut

1
불행히도 GL 사양에 따르면 드라이버가 GL_OUT_OF_MEMORY를 반환하면 이제는 불확실합니다. 메모리가 부족하면 기본적으로 SOL For game은 나쁘지 않지만 Photoshop과 같은 응용 프로그램은 용납 할 수 없습니다.
gman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.