Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.09;
Скачать: CL | DM;

Вниз

[D3D] Утекает видеопамять :(   Найти похожие ветки 

 
dRake ©   (2005-09-24 12:51) [0]

Вот такой вот прикол:

[code]

// GetAvailableMemory = 213Mb

Texture := D3DDevice.CreateTexture(....);

// GetAvailableMemory = 212Mb

Texture := nil;

// GetAbailableMemory = 212Mb :(

[/code]

Вот такая вот засада. Что делать?


 
DR0N ©   (2005-09-24 13:02) [1]

Кстати нечто похожее у меня в OpenGl:
создаю текстуру, удоляю glDeleteTexture
А память высвобождается но не все, немного хавается хз почему,
а конкретно ты чувак просто обнуляешб указатель на текстуру а саму текстуру из памяти не удаляешь.


 
Sphinx ©   (2005-09-24 14:37) [2]

2 DR0N ©
А это особенность DirectX+Delphi
Полностью код удаления текстуры выглядит так:
Texture._Release;
Texture := nil;

но прикол в том, что при выполнении для интерфейса := nil Delphi вызывает ._Release автоматом...
Поэтому самостоятельный вызов релиза может вызвать (а может и не вызвать) AV, вот такая багофича :)

2 dRake ©
Я бы не сильно доверял этим счетчикам...


 
dRake ©   (2005-09-24 23:59) [3]

Sphinx

>Поэтому самостоятельный вызов релиза может вызвать (а может и не >вызвать) AV, вот такая багофича :)

Ага в том и багофича, самостоятельный релиз вызывает AV.
Где-то по коду у меня увеличивается рефкаунтер текстуры, поэтому по хорошему я бы с радостью сделал что то вроде



while Texture._Release > 0 do begin;end;



Чтобы гарантированно замочить текстуру при любом значении рефкаунтера,
но добрая делфя мне не дает этого сделать :(


 
dRake ©   (2005-09-25 00:01) [4]

DR0N

>а конкретно ты чувак просто обнуляешб указатель на текстуру а саму >текстуру из памяти не удаляешь.

Учи матчасть (COM)


 
dRake ©   (2005-09-25 00:07) [5]

Что же делать то? :(


 
Sphinx ©   (2005-09-25 11:35) [6]

2 dRake ©
Попробуй создать массив из нескольких десятков текстур...
Чтобы памяти "отъелось" не 1 МБ а поприличней, ну хотя бы 15-20 МБ
а потом удали текстуры и посмотри на показания счетчика...
И еще попробуй посоздавать текстуру в разных пулах, потому что например в MANAGED текстура создается и в видео памяти и в системной и копируется туда/обратно по необходимости, и посмотреть что будет в памятью...


 
Micke ©   (2005-09-26 20:43) [7]

dRake, звиняй за новости на сайте :)


 
dRake ©   (2005-09-26 23:53) [8]

Micke

Супер :)
Та сайт просто сейчас знакомые ребята переделывают вот они на том что есть обкатывают новостную систему :) Так что сайт пока в разрухе..


 
dRake ©   (2005-09-27 00:24) [9]

Залью ка пока старую статическую версию :)
На живом отлаживать это зло :))



Страницы: 1 вся ветка

Текущий архив: 2006.04.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
2-1143213758
Nirvana
2006-03-24 18:22
2006.04.09
Вопрос по DBLookupComboBox


15-1142772733
kaif
2006-03-19 15:52
2006.04.09
Определение понятия "иметь".


15-1142636613
Германн
2006-03-18 02:03
2006.04.09
Давно тут не было сабжей на музыкальные темы.


1-1141665861
Navi
2006-03-06 20:24
2006.04.09
Ошибка при вызове GetActiveOleObject из DLL


3-1140007823
atruhin
2006-02-15 15:50
2006.04.09
Потеряна информация при сбое питания Firebird