हम यह पता लगाने की कोशिश कर रहे हैं कि हमारे पास आईफोन 4 और आईपैड पर अपेक्षाकृत धीमी एफपीएस क्यों है। हम अपने खुले जीएल विश्लेषण: लॉजिकल बफर लोड में चेतावनी की इस श्रेणी को देख रहे हैं। सारांश "धीमी फ्रेमबफर लोड" है। सिफारिश कहती है कि फ्रेमबफर को प्रतिपादन से पहले GPU द्वारा लोड किया जाना चाहिए। यह अनुशंसा करता है कि हम प्रत्येक फ्रेम के लिए शुरुआत में एक पूर्णस्क्रीन स्पष्ट संचालन करने में विफल रहे हैं। हालांकि, हम glclear के साथ ऐसा कर रहे हैं।लॉजिकल बफर लोड - धीमी फ्रेमबफर लोड - आईओएस
[EAGLContext setCurrentContext:_context];
glBindFramebuffer(GL_FRAMEBUFFER, _defaultFramebuffer);
glClear(GL_COLOR_BUFFER_BIT);
// Our OpenGL Drawing Occurs here
... ... ...
// hint to opengl to not bother with this buffer
const GLenum discards[] = {GL_DEPTH_ATTACHMENT};
glBindFramebuffer(GL_FRAMEBUFFER, _defaultFramebuffer);
glDiscardFramebufferEXT(GL_FRAMEBUFFER, 1, discards);
// present render
[_context presentRenderbuffer:GL_RENDERBUFFER];
हम वास्तव में एक गहराई या स्टेंसिल बफर का उपयोग नहीं कर रहे हैं।
यह तब होता है जब हम बनावट को टाइल्स के रूप में प्रस्तुत करते हैं और यह हर बार होता है जब हम एक नया टाइल लोड करते हैं। यह हमारे glDrawArrays कमांड को इंगित कर रहा है।
इस चेतावनी से हम कैसे छुटकारा पा सकते हैं इस पर कोई सिफारिशें?
यह सब पर मदद करता है, तो यह है कि हम कैसे परत सेट कर रहे हैं:
eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking,
kEAGLColorFormatRGB565, kEAGLDrawablePropertyColorFormat,
nil];
मैं नोट करना चाहिए कि जबकि विश्लेषक अंक इस बाहर अनुकूलन का एक बिंदु के रूप में, मेरे अनुभव में यह एक काफी मामूली एक हो गया है:
ठीक है तो इसे लागू करने के लिए, निम्न करें। बाधाएं हैं, इसका कोई संबंध नहीं है कि आपका एप्लिकेशन धीरे-धीरे क्यों प्रस्तुत हो रहा है। ओपनजीएल ईएस चालक उपकरण को देखें और देखें कि क्या आप रेंडरर (खंड सीमित) या टाइलर (ज्यामिति सीमित) को अधिकतम कर रहे हैं या नहीं। –
हमने ओपनजीएल ईएस उपकरण चलाया और ऐसा लगता है कि हम भरने की दर (टुकड़े) को अधिकतम कर रहे हैं। हम केवल 256x256 टाइल्स प्रस्तुत कर रहे हैं जो दृश्य क्षेत्र भर रहे हैं। क्या कोई सेब विशिष्ट एक्सटेंशन है जिसे हमें देखने की आवश्यकता हो सकती है, चाहे वह बनावट बना रहा हो या जिस तरह से हम बनावट बना रहे हैं, या कोई अन्य उद्देश्य? – user1687195
इस के अपडेट के रूप में, हमने glHint (GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES, GL_FASTEST) सेट किया है; और ऐसा लगता है कि एफपीएस के साथ काफी मदद मिली है। – user1687195