3 votes

Le "Uninitialized Buffer Data" peut-il être un faux positif dans l'analyseur OpenGL ES?

Lorsque vous ne faites que rendre un sous-ensemble d'un tampon d'index, si le reste du tampon contient des indices de sommets non initialisés, l'analyseur "OpenGL ES" d'Instruments semble signaler un avertissement de "Données de tampon non initialisées".

Est-il sécuritaire de l'ignorer? Y a-t-il un moyen de s'en débarrasser? Cela pourrait-il cacher un problème réel?

1voto

Martin Berger Points 321

contient des indices de sommets non initialisés -> "Données du tampon non initialisées"

Est-il sûr de l'ignorer?

Non. Car vous pourriez avoir défini une valeur incorrecte pour le sous-ensemble et un accès mémoire illégal peut se produire.

Y a-t-il un moyen de s'en débarrasser?

Oui. Initialisez vos sommets. Ou l'objet de tampon de sommets (VBO) si vous en utilisez un.

Pourrait-il cacher un problème réel?

Non. Il indique clairement quel est votre problème.

Ce fragment de mon application ne rend qu'un sous-ensemble du tampon :

glBindVertexArrayOES(_vertexArrays[currentObjectIndex]);
glUseProgram(_program);
glUniformMatrix4fv(uniforms[UNIFORM_MODELVIEWPROJECTION_MATRIX], 1, 0, _mvpMatrices[currentObjectIndex].m);
ObjectGL* object = [self.graphicsDataSource.arrayOfObjects objectAtIndex:currentObjectIndex];
// première partie du tampon
glDrawArrays(GL_TRIANGLES, 0, section_object.sglSize);
// deuxième partie du tampon, accédée avec le décalage donné par le deuxième paramètre
glDrawArrays(GL_LINE_LOOP, section_object.sglSize, section_object.sglSizeBounds);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X