Форум программистов, компьютерный форум, киберфорум
Наши страницы
OpenGL
Войти
Регистрация
Восстановить пароль
 
koker007
16 / 19 / 1
Регистрация: 04.08.2015
Сообщений: 339
Завершенные тесты: 2
#1

GPU исчерпывает свои ресурсы

14.08.2017, 12:26. Просмотров 389. Ответов 11
Метки нет (Все метки)

Снова здравствуйте, возникла проблема что OpenGL выдает ошибку - "Request for more GPU memory than is available" и ошибка перенаправляет на эту страницу http://nvidia.custhelp.com/app/answers/detail/a_id/3553

На странице где написано как исправить, есть следующее: "You can also try manipulating smaller blocks of data in your application."
Что перевелось как: "Вы также можете попробовать манипулировать небольшими блоками данных в своем приложении."
Можно узнать что подразумевается под "небольшими блоками данных"? И как это реализовывается в OpenGL.

Сейчас чтобы приложение запустилось приходится браузер выключать. Что крайне не удобно, потому что необходимо лазить по документациям библиотек.

Мои личные догадки что проблема в том что я загружаю слишком много текстур в первом кадре OpenGL, но я сомневаюсь потому не решаюсь переделывать довольно большой участок кода. Пожалуйста объясните насколько я прав или ошибаюсь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2017, 12:26
Ответы с готовыми решениями:

GPU ускорение в Media Encoder
Мы организация, которая планирует профессионально заниматься видео продакшн в...

Кто чем занимается? GPU и CPU
Собственно запутался кто чем занимается. Дальше постараюсь написать свою точку...

Как можно нагрузить GPU на 100%?
Как используя OpenGL можно нагрузить GPU по макималке?

После запуска игры gpu загружается на 99%, игра начинает выдавать 5fps и даже после завершения gpu не падает
после запуска игры gpu загружается на 99% игра начинает выдавать 5fps и даже...

Многопоточность для Windows. Ресурсы языка программирования vs Ресурсы WinAPI
Добрый день. Подскажите пож-та, если пишется многопоточное приложение для...

11
vindast
56 / 54 / 10
Регистрация: 25.04.2017
Сообщений: 498
14.08.2017, 15:18 #2
может это утечка памяти?
1
Igor3D
1227 / 594 / 74
Регистрация: 01.10.2012
Сообщений: 2,844
14.08.2017, 16:01 #3
Цитата Сообщение от koker007 Посмотреть сообщение
На странице где написано как исправить, есть следующее: "You can also try manipulating smaller blocks of data in your application."
Имеется ввиду примерно такое: "не выделяйте блок напр 1000 Mb, вместо этого выделяйте 10 (или 20) блоков по 100 Mb". Ну это конечно если есть свобода выбора.

Сомневаюсь что от это имеет отношение к Вашей проблеме, гораздо более вероятна банальная утечка - где-то буфер не освобождаете. Это легко проверить в отладчике - он показывает сколько чего загружено в память GPU. Ну или просто тестовая печать в каждом выделении/освобождении, если ID буфера растет и растет - значит "потекло"
1
koker007
16 / 19 / 1
Регистрация: 04.08.2015
Сообщений: 339
Завершенные тесты: 2
14.08.2017, 21:54  [ТС] #4
Цитата Сообщение от vindast Посмотреть сообщение
может это утечка памяти?
Цитата Сообщение от Igor3D Посмотреть сообщение
банальная утечка - где-то буфер не освобождаете
Как видно по скрину, где игра запущенна без параллельно работающего браузера, стабильного подъема - утечки, нет. Иначе наверняка она бы вызывала эту же ошибку где-то во время работы.
GPU исчерпывает свои ресурсы


Хотел показать скрин ошибки но.. в этот момент даже кнопка принт скрин не выполняет что должна
0
vindast
56 / 54 / 10
Регистрация: 25.04.2017
Сообщений: 498
14.08.2017, 22:06 #5
На скрине у тебя оперативка...

Добавлено через 2 минуты
Скачай какой нибудь афтербернер и просто посмотри стабильно у тебя юзается видеопамять...
1
koker007
16 / 19 / 1
Регистрация: 04.08.2015
Сообщений: 339
Завершенные тесты: 2
15.08.2017, 09:18  [ТС] #6
Цитата Сообщение от vindast Посмотреть сообщение
Скачай какой нибудь афтербернер и просто посмотри стабильно у тебя юзается видеопамять...
Скачал посмотрел, в общем скачет сильней всего только ЦП причем частенько до 100 при запуске. Из-за него ведь скорей всего? Попробовал использовать sleep (); на 10 секунд, ну чтобы хоть чуть-чуть разгрузить.. И все равно ошибка.

Ошибка после первой загрузки текстур при использовании glGetError(); которую решил вызвать после
glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

Добавлено через 1 час 9 минут
Так.. В общем кажется понял проблему. Я загружал все текстуры разом при запуске игры, сейчас сделал чтобы оставшиеся подгружались тогда когда начинают использоваться. И все работает.
Надо сделать чтобы загружалась одна текстура в кадр, так мне кажется возникновение этой ошибки минимально. Спасибо за помощь.
0
vindast
56 / 54 / 10
Регистрация: 25.04.2017
Сообщений: 498
15.08.2017, 11:53 #7
по видеопамяти у тебя что? она растет с момента загрузки твоей программы или нет?
Цитата Сообщение от koker007 Посмотреть сообщение
Надо сделать чтобы загружалась одна текстура в кадр, так мне кажется возникновение этой ошибки минимально. Спасибо за помощь.
Чтоооооооо?

Просто скинь график использования видеопамяти из афтебернора. Посмотрим, скажем.
0
koker007
16 / 19 / 1
Регистрация: 04.08.2015
Сообщений: 339
Завершенные тесты: 2
15.08.2017, 12:39  [ТС] #8
Цитата Сообщение от vindast Посмотреть сообщение
Чтоооооооо?
Допустим игра использует всего 20 текстур. Разом их загрузить не получается, ошибка. По этому, дабы ее обойти, каждый кадр будет загружать всего одну текстуру из заданного списка. Пока список не кончится. Разумеется загружая текстуры тогда когда это требуется и выгружая когда в них больше нет нужды. Это я имел в виду.

По край не мере, приложение работает, после того как я решил разделить загрузку текстур.

Цитата Сообщение от vindast Посмотреть сообщение
Просто скинь график использования видеопамяти из афтебернора. Посмотрим, скажем.
GPU исчерпывает свои ресурсы

Проблема с использованием GPU; GPU = графический процессор = ГП
ГП == видео память ?

Я просто не особо по этой части, оно и понятно, был бы хорош то наверняка этой темы бы не было
0
vindast
56 / 54 / 10
Регистрация: 25.04.2017
Сообщений: 498
15.08.2017, 13:16 #9
Цитата Сообщение от koker007 Посмотреть сообщение
ГП
графический процессор
Цитата Сообщение от koker007 Посмотреть сообщение
Допустим игра использует всего 20 текстур
сколько же должна весить каждая из них? по 100 мб?
Они весят мб 10 каждая максимум, 200мб смешной обьем и 10 лет назад.

Кидайте исходные коды короче. Уж разберемся, я уже готов поспорить что Вы грузите свои тексутры каждый кадр (при первом подходе) и это тупо утечка памяти.
Цитата Сообщение от koker007 Посмотреть сообщение
Допустим игра использует всего 20 текстур. Разом их загрузить не получается, ошибка. По этому, дабы ее обойти, каждый кадр будет загружать всего одну текстуру из заданного списка. Пока список не кончится. Разумеется загружая текстуры тогда когда это требуется и выгружая когда в них больше нет нужды. Это я имел в виду.
ЧТООООООООООООООООООООООООООООООООО?

Пока список не кончится ... от этого должен быть выигрышь в памяти?
У Вас явно закралась ошибка в логику... в вашу логику ...
0
koker007
16 / 19 / 1
Регистрация: 04.08.2015
Сообщений: 339
Завершенные тесты: 2
15.08.2017, 18:23  [ТС] #10
Цитата Сообщение от vindast Посмотреть сообщение
Пока список не кончится ... от этого должен быть выигрышь в памяти?
Я думаю дело не в памяти а в пропускной способности. Потому что я отложил загрузку 40 текстур каждая из которых 500х500 и весит не более 1-го мегабайта.
Цитата Сообщение от vindast Посмотреть сообщение
Они весят мб 10 каждая максимум, 200мб смешной обьем и 10 лет назад.
По этому и думаю что дело не в памяти а в пропускной способности, если их разом загружать, у меня такое чувство что просто не может видео карта принять все и сразу, ей нужно время на обработку, не знаю как именно она обрабатывает возможно просто группирует полученною информацию в своей памяти, иначе я просто не знаю как объяснить что после того как я все-таки отложил загрузку половины текстур и все сразу же стало работать.
0
vindast
56 / 54 / 10
Регистрация: 25.04.2017
Сообщений: 498
15.08.2017, 18:33 #11
Цитата Сообщение от koker007 Посмотреть сообщение
Я думаю дело не в памяти а в пропускной способности. Потому что я отложил загрузку 40 текстур каждая из которых 500х500 и весит не более 1-го мегабайта.
При чем тут пропускная способность? Ты разве грузишь их все разом пачкой (в разных потоках),
а не по очереди?

Цитата Сообщение от koker007 Посмотреть сообщение
По этому и думаю что дело не в памяти а в пропускной способности, если их разом загружать, у меня такое чувство что просто не может видео карта принять все и сразу, ей нужно время на обработку, не знаю как именно она обрабатывает возможно просто группирует полученною информацию в своей памяти, иначе я просто не знаю как объяснить что после того как я все-таки отложил загрузку половины текстур и все сразу же стало работать.
Это звучит смешно, у тебя все указывает на утечку памяти, ты просто не видишь ее. И ты упорно игнорируешь необходимость проверить как расходуется видеопамять.
0
Igor3D
1227 / 594 / 74
Регистрация: 01.10.2012
Сообщений: 2,844
16.08.2017, 09:04 #12
Цитата Сообщение от koker007 Посмотреть сообщение
По этому и думаю что дело не в памяти а в пропускной способности, если их разом загружать, у меня такое чувство что просто не может видео карта принять все и сразу, ей нужно время на обработку, не знаю как именно она обрабатывает возможно просто группирует полученною информацию в своей памяти, иначе я просто не знаю как объяснить что после того как я все-таки отложил загрузку половины текстур и все сразу же стало работать.
"Не верю". Меньше фантазий, больше отладки, напр так (после каждой загрузки текстуры)
C++
1
2
static int numLoaded = 0;
printf("%d textures loaded, error = %d\n", ++numLoaded, glGetError());
1
16.08.2017, 09:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2017, 09:04

Вывести на печать 3-х значные числа, которые делятся на свои цифры и перевертыш этого числа тоже делится на свои цифры
Вывести на печать 3-х значные числа, которые делятся на свои цифры и перевертыш...

Вывести на печать 3-х значные числа, которые делятся на свои цифры и перевертыш этого числа тоже делится на свои цифры
здравствуйте. мне попалась одна задачка с перевертышем, раньше с таким не...

Lowfps,gpu 99%
Проблема такая, подключал две видео карты к компу, и у обоих Загрузка ГП 99% и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru