В OpenGL это обычная практика для бесхозных буферов, которые часто используются.В идеале драйверы замечают, что запрашивается буфер одинакового размера, и, если возможно, возвращают старый буфер, если он больше не нужен.Буфер выделяет новую память только тогда, когда старый буфер все еще используется и не может быть повторно использован.
In OpenCL (на оборудовании NVIDIA с использованием последних драйверов разработчиков), я не уверен вэта техника.Я получил буфер 256 КБ, который обрабатывается пересчетом обёртки c ++, который я часто перераспределяю.В большинстве случаев это работает нормально, но в некоторых случаях OpenCL генерирует ошибку CL_OUT_OF_MEMORY при выделении нового буфера.
Как вы думаете, должен ли я переключить свой подход (например, используя постоянное количество буферов)?Или мне следует заняться другой возможной причиной этой проблемы?
С уважением, Флориан