В общем, нет.OpenGL - это, в конечном счете, аппаратная абстракция.А OpenGL просто не предоставляет способ получения такой информации.
Существуют специфичные для поставщика расширения, которые дадут вам способы задать вопрос, хотя то, что вы получите, зависит от архитектуры.Аппаратное обеспечение AMD обеспечивает расширение ATI_meminfo .Он разбивает память на типы объектов: буферные объекты, текстуры и буфер визуализации.
NVIDIA предоставляет экспериментальное расширение NVX_gpu_memory_info.В реестре нет информации о том, как его использовать, поэтому я не могу связать вас с чем-либо.
В любом случае, наиболее эффективный способ узнать, что использует графический процессор, - просто отслеживатьсам.Всегда используйте внутренние форматы изображений с размерами ;это означает, что вы можете вычислить довольно хорошую оценку того, сколько памяти занимает текстура.То же самое относится и к буферным объектам и т. Д.
Вы не получите точных чисел, так как отступы, выравнивание и тому подобное могут вас запутать.Но вы получите что-то довольно приличное.