मैं काफी क्यों इस कोड आईओएस पर GPU के लिए धीमी है समझ नहीं कर सकते हैं, इस कोड को बिना किसी समस्या के विंडोज पर महान काम करता है।आईओएस पर glBufferSubData प्रदर्शन abysmal?
असल में मैं जो कर रहा हूं वह यह है कि मेरे पास एक बड़ा गतिशील वर्टेक्स बफर (GL_STREAM_DRAW) है और मैं इसे केवल भागों के हिस्सों को अपडेट करने का प्रयास करता हूं, जो कि एक फ्रेम में ओवरलैप नहीं होना चाहिए, इसलिए उन्हें फ्लश नहीं करना चाहिए और सीपीयू खत्म करने के लिए GPU के लिए इंतजार नहीं करना चाहिए, लेकिन यह स्पष्ट रूप से मामला मैं जब कम से कम हो सकता है 10 से 20 त्रिकोण ड्राइंग भी एक iPhone 4 पर 10 एफपीएस approximatly प्राप्त नहीं है ... जबकि मैं 400 से अधिक एफपीएस पर मिलता है मेरे पीसी को एक ही कोड के साथ ...
जैसा कि आप ट्रेस में देख सकते हैं, मैं उसी बफर का पुन: उपयोग कर रहा हूं, लेकिन मैं यह सुनिश्चित कर रहा हूं कि अपडेट किए गए भाग ओवरलैप न हों ... मैं क्या कर सकता हूं प्रदर्शन में सुधार?
Index Trace 695 glBindBuffer(GL_ARRAY_BUFFER, 1u) 696 glBufferSubData(GL_ARRAY_BUFFER, 144l, 144l, 0x0453d090) 697 glBlendFunc(GL_SRC_ALPHA, GL_ZERO) 698 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) 699 glActiveTexture(GL_TEXTURE0) 700 glBindTexture(GL_TEXTURE_2D, 12u) 701 glUseProgram(12ul) 702 glUniform4fv(uniform_000000001cd24950_12_0, 1, {0.0500000f, 0.0000000f, 0.0000000f, 0.0000000f}) 703 glUniform4fv(uniform_000000001cd24950_12_1, 1, {0.0000000f, 0.0333333f, 0.0000000f, 0.0000000f}) 704 glUniform4fv(uniform_000000001cd24950_12_2, 1, {0.0000000f, 0.0000000f, -0.0010010f, 0.0000000f}) 705 glUniform4fv(uniform_000000001cd24950_12_3, 1, {-0.0000000f, 0.6333333f, -0.0010010f, 1.0000000f}) 706 glDrawArrays(GL_TRIANGLES, 6, 6) 707 glBindBuffer(GL_ARRAY_BUFFER, 1u) 708 glBufferSubData(GL_ARRAY_BUFFER, 288l, 144l, 0x0453d120)
तो आप यहां नए हैं, accpet के बारे में और अप वोट सुविधाओं खुद इनफोर्मा को भूल नहीं है। –