Я использую объекты пиксельного буфера OpenGL (PBO / GL_PIXEL_UNPACK_BUFFER) для асинхронной загрузки данных из памяти ЦП в память графического процессора.
Я использую классический подход для быстрой загрузки данных с помощью PBO: я создаю GL_PIXEL_UNPACK_BUFFER, сопоставляю его, чтобы получить адрес в пространстве памяти ЦП, копирую свои данные в это место. Позже, когда рендереру потребуются данные, я добавляю PBO в свою текстуру OpenGL. Это работает очень хорошо и очень быстро. Я уверен, что моя реализация правильна, но дело не в этом.
Насколько я понимаю, память PBO выделяется в выделенной области внутри системной памяти. Эта область также называется «общая память графического процессора», и вы можете увидеть ее состояние, т.е. в диспетчере задач Windows.
Я столкнулся со следующей проблемой: я использую много PBO, и в какой-то момент «общая память графического процессора» заполнена, мое приложение аварийно завершает работу, а драйвер NVidia выдает ошибку нехватки памяти. Я не могу отловить эту ошибку с помощью glGetError() == GL_OUT_OF_MEMORY. Насколько я понимаю, этот отчет об ошибках не является надежным.
Как я могу проверить размер общей/доступной на данный момент памяти PBO/общей памяти графического процессора?
Я пока не нашел способа с OpenGL. Предлагают ли другие API-интерфейсы графических процессоров (DirectX, Vulkan, CUDA) полезные функции для этого?
Подробнее здесь: https://stackoverflow.com/questions/776 ... -available
Как запросить текущий статус памяти OpenGL PBO (всего/доступно на данный момент)? ⇐ C++
Программы на C++. Форум разработчиков
1766565397
Anonymous
Я использую объекты пиксельного буфера OpenGL (PBO / GL_PIXEL_UNPACK_BUFFER) для асинхронной загрузки данных из памяти ЦП в память графического процессора.
Я использую классический подход для быстрой загрузки данных с помощью PBO: я создаю GL_PIXEL_UNPACK_BUFFER, сопоставляю его, чтобы получить адрес в пространстве памяти ЦП, копирую свои данные в это место. Позже, когда рендереру потребуются данные, я добавляю PBO в свою текстуру OpenGL. Это работает очень хорошо и очень быстро. Я уверен, что моя реализация правильна, но дело не в этом.
Насколько я понимаю, память PBO выделяется в выделенной области внутри системной памяти. Эта область также называется «общая память графического процессора», и вы можете увидеть ее состояние, т.е. в диспетчере задач Windows.
Я столкнулся со следующей проблемой: я использую много PBO, и в какой-то момент «общая память графического процессора» заполнена, мое приложение аварийно завершает работу, а драйвер NVidia выдает ошибку нехватки памяти. Я не могу отловить эту ошибку с помощью glGetError() == GL_OUT_OF_MEMORY. Насколько я понимаю, этот отчет об ошибках не является надежным.
Как я могу проверить размер общей/доступной на данный момент памяти PBO/общей памяти графического процессора?
Я пока не нашел способа с OpenGL. Предлагают ли другие API-интерфейсы графических процессоров (DirectX, Vulkan, CUDA) полезные функции для этого?
Подробнее здесь: [url]https://stackoverflow.com/questions/77618671/how-to-query-current-opengl-pbo-memory-status-total-currently-available[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия