आईफोन/आईपैड के लिए एक छोटी परियोजना के लिए कुछ परीक्षण करने के दौरान, मैंने देखा कि GL_LINES के साथ glDrawElements का उपयोग करके वायरफ्रेम ड्राइंग में एक बड़ा सीपीयू प्रदर्शन जुर्माना है ।GL_LINES के साथ glDrawElements gleRunVertexSubmitARM को मजबूर करता है? (या: आईओएस पर वायरफ्रेम क्यों धीमा है?)
यह परिदृश्य है:
- 640 vertexes (पद के लिए 4 तैरता, Normals के लिए 3 तैरता है, कोई संरेखण समस्याओं ... सभी 4 बाइट्स पर सीमाओं)
- 3840 अनुक्रमित (अहस्ताक्षरित कम) के साथ एक मॉडल
- दोनों vertexes और अनुक्रमित VBOs (कोई VAO)
- ऊपर मॉडल GL_TRIANGLES साथ glDrawElements के साथ तैयार काम करता है ठीक
:
- 640 vertexes
- 2560 अनुक्रमित
- VBOs और कोई VAO
- साथ एक ही मॉडल GL_LINES साथ glDrawElements के साथ तैयार gleRunVertexSubmitARM के लिए निरंतर कॉल, CPU उपयोग आकाश रॉकेट से चलाता है ...
दोनों मामलों में मॉडल अपेक्षित दिखते हैं और कोई ग्लिटर नहीं ...
ऐसा लगता है कि समस्या डिवाइस निर्भर है। मैं इसे आईफोन 3 जीएस और आईफोन 4 पर अनुभव करता हूं, आईपैड 2 पर नहीं और सिमुलेटर। आईपैड 2 फ्रेम-टाइम सीपीयू = 1 एमएमएस पर और एक आईफोन 4 फ्रेम-टाइम सीपीयू = 12 एमएमएस पर gleRunVertexSubmitARM पर कोई कॉल नहीं, और gleRunVertexSubmitARM को लगातार कॉल करता है।
क्या कोई इस व्यवहार को समझा सकता है या बता सकता है कि मैं कौन सी गलतियों को कर सकता हूं?
किसी भी अंतर्दृष्टि की अत्यधिक सराहना की जाती है। अग्रिम धन्यवाद,
फ्रांसेस्को