OpenGLRenderer: ошибка GL: недостаточно памяти - PullRequest
0 голосов
/ 23 мая 2018

Я написал приложение OpenGL ES 3.1 для Android.Он отлично работает на Nexus 5X (графический процессор Adreno 418), но на Samsung Galaxy S7 (Mali T880) он умирает с

E/OpenGLRenderer: Error:glFinish::execution failed
E/OpenGLRenderer: GL error:  Out of memory!

в logcat.

Теперь, я действительно не думаю, что это потому, что приложение действительно использует много памяти (у него только 1 текстура, 2 FBOs размер экрана, нет шрифтов, больше ничего, что я могу придумать, чтобы использоватьмного памяти).По крайней мере, это то, что я думаю приложение загружает в GPU.

Я бы хотел отладить это, не полагаясь на мое ограниченное понимание OpenGL, то есть было бы лучше, если бы был инструмент, которыйбудет показывать мне основные вещи, такие как

1) объем памяти, доступной на GPU
2) объем памяти, занятой
3), занятый чем

РЕДАКТИРОВАТЬ: Я решил это с некоторой помощью от Mali Graphics Debugger, предложенной в комментариях.Оказалось, что это бегущая петля в фрагментном шейдере, которая при определенных обстоятельствах (как это ни странно не возникало в Adreno) могла продолжать петлю вечно.Под «OUT_OF_MEMORY» я думаю, что это означало «выполнение фрагментного шейдера занимает слишком много времени».

...