कुछ समय पहले मैं एक मुद्दा में eglSwapBuffers
साथ टकरा निम्न संदेश डिवाइस लॉग में दिखाई देने के कारण फोन ठंड:एंड्रॉयड फ्रीज | ES (।। सीपीयू आंकी जा सकता है फिर से कोशिश कर रहा)
W/SharedBufferStack(1110): waitForCondition(LockCondition) timed out (identity=28, status=0). CPU may be pegged. trying again.
मैंने पूरे वेब पर इस मुद्दे पर चर्चा देखी है, लेकिन मुझे लगता है कि एकमात्र समाधान eglSwapBuffers
के बाद कॉल कर रहा है। हालांकि, इस समाधान के परिणामस्वरूप फ्रेमरेट में 10-20 की गिरावट आई है, जो स्वीकार्य से बहुत दूर है।
मुद्दे खोल दिया गया है और एक पाया जा सकता है here
किसी ने टिप्पणी की है कि वर्ग बनावट का उपयोग कर इस मुद्दे को समाप्त कर दिया। स्क्वायर द्वारा मैंने शुरू में सोचा कि उसका मतलब दो शक्तियों का था लेकिन यह सुनिश्चित करने के बाद कि मैं किसी भी गैर-शक्ति-दो बनावट का उपयोग नहीं कर रहा था और इस मुद्दे से छुटकारा नहीं पा रहा था, मुझे लगता है कि वह वास्तव में मिलान के साथ बनावट का मतलब हो सकता है चौड़ाई और ऊंचाई?
मैं एंड्रॉइड 2.3.3 के साथ एक एचटीसी डिजायर पर परीक्षण कर रहा हूं। किसी ने टिप्पणी की कि भविष्य के संस्करणों को इस समस्या को ठीक करना चाहिए था, लेकिन 2.3.3 इतने सारे उपकरणों पर स्थापित है कि हम इसे नजरअंदाज नहीं कर सकते हैं।
वैसे भी, इस पर किसी के पास कोई विचार है? हम एक शीर्षक शिपिंग के बहुत करीब हैं और यह मुद्दा शेड्यूल को खतरे में डाल रहा है।
शायद यह आपके ड्राइवर से एक बग है। – robermorales
इस व्यक्ति को एक और ग्लैड स्वैपबफर के साथ समस्या है, और टिप्पणियों में एक प्रस्तावित शमन है: http://stackoverflow.com/questions/12939705/sdl-gl-swapbuffers-is-intermittently-slow - इससे मदद मिल सकती है। .. – Yakk
dpsys SurfaceFlinger को आज़माएं और देखें कि eglSwapbuffers() रिपोर्ट ... आपके माप की तुलना करें। – Shark