Получить объем графической памяти

Я знаю о DXGI_ADAPTER_DESC, но в 32-битных сборках тип SIZE_T в Direct3D имеет длину 4 байта, поэтому я получаю 3 ГБ вместо 11.

Есть ли способ получить правильное значение даже в 32-битной сборке?

PS Мне нужно значение, чтобы вычислить верхний размер для большого массива 2D текстур. Хотя маловероятно, что у пользователя будет 32-битная Windows с 11 ГБ видеопамяти VRAM, вполне возможно иметь 4 ГБ видеопамяти с 32-битной ОС, например, в результате обновления. И я не хочу ограничивать мой массив до 0 в этом случае.

1 ответ

Согласно моим исследованиям, нет простого способа достичь этого.

Вместо этого есть (в стиле Microsoft) несколько совершенно разных способов достижения этого, каждый из которых более сложен, чем другой.

Раньше было удобно pd3dDevice->GetAvailableTextureMem() в DX9, но это не так в DX11.

В этом примере кода MSDN вы можете найти несколько способов запроса доступного видеопамяти (с источником). Я надеюсь, что один из них подходит вам.

Другие вопросы по тегам