Сбой iOS OpenGL glClear при запуске приложения

#c #ios #opengl-es

#c #iOS #opengl-es

Вопрос:

В нашей игре мы используем OpenGL для рендеринга. Иногда приложение случайно вылетает сразу после запуска при первом вызове этого метода:

 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  

Мы вызываем этот метод перед рендерингом игровой сцены.
Вот трассировка стека сбоя:

 0 Crashed: com.apple.main-thread EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x000000a4

0 IMGSGX543GLDriver sgxTextureGetImageRowBytes(GLDTextureRec*, unsigned int, unsigned int)   7
1 IMGSGX543GLDriver CalculateChunkPlaneSizes(GLDTextureRec*, int, unsigned int*, unsigned int*, unsigned int*, unsigned int*)   108
2 IMGSGX543GLDriver CalculateChunkPlaneSizes(GLDTextureRec*, int, unsigned int*, unsigned int*, unsigned int*, unsigned int*)   108
3 IMGSGX543GLDriver sgxConfigureTexturePrivate(GLDTextureRec*)   82
4 IMGSGX543GLDriver glrUpdateTexture   952
5 libGPUSupportMercury.dylib gldLoadFramebuffer   110
6 GLEngine gleUpdateDrawFramebufferState
7 GLEngine glClear_Exec   164
  

Мы понятия не имеем, почему может возникнуть этот сбой.
Кто-нибудь сталкивался с подобной проблемой?
Спасибо за помощь.

Комментарии:

1. вы пробовали размещать сообщения на powervr и форуме разработчиков Apple? у меня были некоторые проблемы с ios, которые давали мне контекст, который был «еще не готов», который я так и не решил… мне пришлось перенести некоторую логику с выполнения только в первом кадре на выполнение каждого кадра.

2. @racarate, спасибо за совет, я задам этот вопрос там. Кстати, я вызываю glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); каждый кадр. Может быть, мне следует пропустить первый кадр и попытаться вызвать методы рендеринга в следующем кадре? Что вы думаете?

3. Привет, Сергей, ты это как-то исправил? У меня такая же проблема.

4. @SuleaCosmin, пока нет, все еще не могу понять причину этой проблемы.

5. @Sergey … это зависит от устройства