Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Direct3D приложение зависает 
V
    Опции темы
Joyer
Дата 13.1.2009, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 22.1.2008

Репутация: нет
Всего: нет



Здравствуйте!
Вопрос по отладке приложений. Я написал Direct3D-шный screensaver. 
Все работает стабильно, но иногда приложение зависает. Не могу найти закономерности. 
Суть программы в показе примитивного слайд-шоу. Работает с одними и теми же файлами.
Изображения для слайд-шоу загружаются в отдельных потоках, потом синхронизируются, потом загружаются в текстуры.
Проверял process explorer-ом на предмет утечки памяти. Объем занимаемой памяти не увеличивается,
но постоянно растет page faults.
Я не очень опытный в вопросе работы с DirectX, возможно я неправильно освобождаю текстуры или что-нибудь еще…
Бывают ли утечки видео памяти? Если да, то как их проверить? Нужно ли освобождать текстуру и спрайт перед каждой загрузкой нового изображения?

Извините за изобилие вопросов, просто теряюсь в догадках. Основной вопрос: как найти ошибку?
Заранее благодарен,
Дмитрий.

PM MAIL   Вверх
Alexeis
Дата 13.1.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



  Если используются потоки, то начинать нужно с них. Может там элементарный дедлок Если используются WaitForSingleObject, то в случае длительного ожидания, можно выдавать ошибку.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Joyer
Дата 13.1.2009, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 22.1.2008

Репутация: нет
Всего: нет



WaitForSingleObject точно не использую.
изучаю пока http://forum.vingrad.ru/forum/topic-60076.html
А что такое дедлок?
Это когда осн. поток ждет другого а тот уже не работает?
PM MAIL   Вверх
Alexeis
Дата 13.1.2009, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Цитата(Joyer @  13.1.2009,  19:59 Найти цитируемый пост)
Это когда осн. поток ждет другого а тот уже не работает? 

  Когда потоки ждут друг друга.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Joyer
Дата 14.1.2009, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 22.1.2008

Репутация: нет
Всего: нет



Да нет, вроде как не потоки. Дело в том, что я отображаю изображения с жесткого диска. Их не много и когда последний из списка показан, программа отображает первый.
т.е. действия цикличны, а зависает программа по истечении произвольного количества времени.
Это приводит к мысли о воздействии внешних факторов (кол-во) свободной памяти, место на HDD, или кол-во доступной видео памяти.
Можно ли как-то проверить наличие не освобожденных указателей? Ведь при загрузки текстуры резервируется видеопамять...
PM MAIL   Вверх
Joyer
Дата 16.1.2009, 03:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 22.1.2008

Репутация: нет
Всего: нет



Кто-нибудь в курсе по поводу page faults?
Это единственное, что приходиться подозревать.
Очень внимательно пересмотрел структуру потоков.
Перечитал http://forum.vingrad.ru/forum/topic-60076.html
Может есть особенности в конструкциях try - except, при использовании их в потоках?  smile 
PM MAIL   Вверх
Alexeis
Дата 17.1.2009, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Joyer, ну решение таких вопрос из области телепатии. Если проект большой, то никто не будет его изучать целиком за вас. Если есть подозрительные фрагменты, то выкладывайте. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Joyer
Дата 20.1.2009, 05:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 22.1.2008

Репутация: нет
Всего: нет



Проблемма была в организации потоков.
Больше ответов получил на более корректно поставленный вопрос здесь:
http://forum.vingrad.ru/forum/topic-244130...y1761595/0.html

Alexeis Спасибо, за время потраченное на мою проблему. smile

Добавлено через 1 минуту и 9 секунд
 smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.1865 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.