В чем разница между D3DERR_OUTOFVIDEOMEMORY и E_OUTOFMEMORY - PullRequest
2 голосов
/ 12 февраля 2010

Я разрабатываю инструмент для рисования примитивов с DX9 в моем XP-32.

При создании буфера вершин и буфера индекса может быть ошибка создания.

Код возврата может быть D3DERR_OUTOFVIDEOMEMORY или E_OUTOFMEMORY.

Я не уверен, в чем их разница.

Я использую инструмент VideoMemory в примере DX для проверки памяти, и он сообщает 1024 МБ.

Означает ли это, что если я создам группу управляемых ресурсов размером более 1024 МБ, она сообщит о D3DERR_OUTOFVIDEOMEMORY?

Если в процессе больше нет свободной виртуальной памяти и происходит сбой malloc, DX9 сообщит E_OUTOFMEMORY?

Ответы [ 2 ]

2 голосов
/ 13 февраля 2010

E_OUTOFMEMORY означает, что DirectX не удалось выделить (т. Е. Через malloc или new) запрашиваемый вами блок памяти.

D3DERR_OUTOFVIDEOMEMORY означает, что DirectX не удалось выделить (т.е. из пула памяти, либо на карте gfx, либо зарезервировано в основной памяти) запрашиваемый вами блок памяти.

Предостережение: водители могут лгать.

1 голос
/ 12 февраля 2010

D3DERR_OUTOFVIDEOMEMORY - это ошибка памяти Directx ... не обязательно связанная с видеопамятью, она может быть занята для хранения сцены или рисования изображения, так как вы обнаружили, что для вашего процесса недостаточно памяти, вы получите E_OUTOFMEMORY , Последнее относится к исчерпанию памяти, выделенной вашему процессу. Вы не сказали, какая у вас операционная система / аппаратное обеспечение, лучше всего было бы подумать о том, чтобы получить обновление системной памяти, если у вас мало ресурсов ..

Редактировать: Некоторые ноутбуки / нетбуки оснащены графическим адаптером, который «оснащен системной памятью», хорошо, эти графические карты несерьезны для подобных «Beyond Call of Duty» и других топовых игр ... видеокарта фактически крадет часть памяти у основной платы, увеличивая объем оперативной памяти, доступной графическим контроллерам. Они хороши, если вы занимаетесь обработкой текста / электронной почтой и т. Д. ... но за счет системной памяти, которая сожрена контроллером а-ля "Интегрированный графический контроллер" ...

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

...