Как уже упоминалось, ваша ОС (в сотрудничестве с диспетчером ресурсов драйвера) должна освобождать ресурсы. Для этого и нужны ОС. Стоит отметить, что это не имеет ничего общего с OpenGL, но является частью устава хорошо управляемых ОС и связанных с ними драйверов. Операционная система предназначена для обработки всех системных ресурсов. OpenGL - это всего лишь подмножество, и они ничем не отличаются от дескриптора файла. Теперь, чтобы получить более конкретную информацию, вы должны указать, какая ОС вам нужна.
Кстати, я возражаю против ответа ChrisF. Это не должно быть до водителя, чтобы решить, что он должен сделать очистку. Модели драйверов ОС будут иметь четкий интерфейс между драйвером OpenGL пользовательского режима (который не должен выполнять фактическое распределение ресурсов gfx, поскольку он совместно используется в машине), ОС (которая обеспечивает эквивалент системных вызовов для распределения ресурсов) и драйвер режима ядра (он просто предназначен для выполнения команд ОС способом, совместимым с gpu). По крайней мере, это относится к моделям WIN2K и WDDM.
Итак ... если ваш процесс завершается сбоем или иным образом завершается, в этих моделях ответственность за вызов драйвера режима ядра ОС освобождает все ресурсы, которые были связаны с процессом.
Теперь, если вы должны или нет, на самом деле это что-то вроде того, как спрашивать символы табуляции или пробелы в исходном коде. У разных людей здесь разные убеждения. «операционная система сделает это в любом случае, немедленное завершение работы - лучший опыт для конечного пользователя». vs «Я хочу знать, не теряю ли я память, потому что, если моя программа работает долго, я действительно не хочу, чтобы она вызывала ошибки OOM «Лучший способ сделать это - быть без утечек» - вот две основные мысли, которые мне известны.