2015-05-15 8 views
22

के साथ वेबजीएल प्रदर्शन समस्याएं मेरे पास एक वेबजीएल एप्लिकेशन है जिसे मैं विकसित कर रहा हूं और मैंने रेटिना डिस्प्ले मैकबुक प्रो के साथ कुछ गंभीर गंभीर प्रदर्शन चिंताओं के खिलाफ भाग लिया है। मैं इंटेल आईरिस प्रो जीपीयू के साथ 15 इंच की मैकबुक पर परीक्षण कर रहा हूं, जो पूर्ण रिज़ॉल्यूशन पर प्रस्तुत करता है, जो मुझे पूर्ण स्क्रीन क्रोम विंडो के साथ 3810x2030 का कैनवास रिज़ॉल्यूशन देता है। मेरा आवेदन प्रति फ्रेम लगभग 100k शिखर प्रस्तुत करता है।रेटिना मैकबुक प्रो

अब, जब मैं 1 के डिवाइस पिक्सेल अनुपात (जिसका मतलब कोई रेटिना स्केलिंग नहीं है) के साथ चलाने के लिए एप्लिकेशन सेट किया गया है, तो एप्लिकेशन का प्रदर्शन ठोस है, 60 एफपीएस से नीचे कभी नहीं गिरता है, लेकिन छवि की गुणवत्ता अस्वीकार्य है। जब मैं रेटिना के डिवाइस पिक्सेल अनुपात पर स्विच करता हूं जो 2 है, तो छवि की गुणवत्ता नाटकीय रूप से सुधारती है, लेकिन मेरा फ्रेमरेट लगभग 20-30 एफपीएस तक गिर जाता है।

अब, मैं GPU प्रोग्रामिंग के लिए कोई अजनबी नहीं हूं, इसलिए यह कारण क्यों हो रहा है मेरे लिए स्पष्ट है। मैं क्या सोच रहा हूं, क्या किसी ने भी रेटिना मैकबुक प्रो जैसे खराब जीपीयू के साथ अति उच्च रिज़ॉल्यूशन डिस्प्ले के लिए वेबजीएल ड्राइंग को अनुकूलित करने के लिए कोई कामकाज या तरीकों को पाया है? क्या इस समस्या को हल करने के लिए लोगों को परीक्षण और त्रुटि के माध्यम से पाया गया कोई कम स्पष्ट सुझाव या चाल है या कम से कम इसे थोड़ा बेहतर बनाते हैं?

किसी भी मदद की सराहना की जाएगी। धन्यवाद।

संपादित करें: एक दिलचस्प खोज के साथ छोटे अपडेट। मैंने अपनी ब्राउज़र विंडो को मैकबुक तक लगाए गए बाहरी डिस्प्ले में रखा है, और 1 के डीपीआर पर प्रतिपादन करते समय, मैकबुक पर प्रदर्शन के मुकाबले प्रदर्शन भी अधिक होता है, यहां तक ​​कि सटीक उसी रिज़ॉल्यूशन के साथ, और छवि गुणवत्ता बहुत बेहतर है।

तो जब भी आप मैकबुक प्रो पर डाउनस्केल्ड फ्रेमबफर प्रस्तुत करते हैं, तब भी यह इसे स्केल करता है, जो संभवतः खराब छवि गुणवत्ता का कारण बन रहा है (यह बिलीनेर फ़िल्टरिंग का उपयोग करके इसे स्केल कर रहा है, जिससे यह अधिक धुंधला हो जाएगा अगर मूल छवि अप्रभावित प्रदर्शित की गई हो)।

+0

यदि आपके पास डीपीआई चुनने की क्षमता है, तो क्या आपने इसे '1' पर रखने की कोशिश की है, लेकिन इसके बजाय बड़े बनावट के रूप में दो बार उपयोग करें, और उन्हें स्केल करें? – Eric

+0

मुद्दा यह है कि यदि अंतिम फ्रेमबफर रेटिना डिस्प्ले के अधिकतम रिज़ॉल्यूशन पर सेट नहीं है, तो यह अभी भी बकवास जैसा दिखता है।रेटिना डिस्प्ले बहुत दिलचस्प है: जब आप अपने इच्छित रिज़ॉल्यूशन पर प्रस्तुत करते हैं, तो यह आश्चर्यजनक लग रहा है, लेकिन यदि आप उससे कम कुछ भी प्रस्तुत करते हैं, तो यह पूरी तरह से कचरा जैसा दिखता है। – aeskreis

+1

यह हो सकता है कि आप (कृत्रिम) ड्राइवर रिज़ॉल्यूशन सीमाओं में भाग रहे हों। कोशिश करने के लिए एक पागल चीज एक 2x2 तालिका में 4 वेबलॉग संदर्भ चलाने के लिए होगी और उनमें से प्रत्येक को एक समायोजित कैमरा के साथ प्रस्तुत करना होगा। यह आपको 4x एपीआई ओवरहेड देगा लेकिन कुछ मूर्खतापूर्ण सीमा के आसपास छोड़ सकता है? – starmole

उत्तर

7

बस उन सभी जो इस पोस्ट कुछ बंद का पालन के लिए एक अद्यतन देना चाहता हूँ। मैं कैनवास विकल्प "एंटीअलियास: झूठी" को सेट करके 45 एफपीएस से ऊपर अपना एप्लिकेशन चलाने में सक्षम था। इसने उच्च घनत्व वाले डिस्प्ले पर एक बड़ा प्रदर्शन लाभ दिया, और यह आवश्यक नहीं है क्योंकि उच्च घनत्व डिस्प्ले बड़ी मात्रा में अंतर्निहित एंटीअलाइजिंग प्रदान करते हैं। उम्मीद है कि यह भविष्य में किसी और की मदद करेगा।

+0

मुझे एक ही समस्या का सामना करना पड़ा और मुझे वह समाधान मिला जो आपके जैसा ही है। अगर मैंने आपके उत्तर को पहले पढ़ा तो मुझे सही जवाब खोजने में इतना समय नहीं लगेगा। – jz1108

2

मैक ओएसएक्स पर क्रोम में कुछ चीजें हार्डवेयर तेज नहीं होती हैं।

chrome://gpu/ 

आप कुछ है जो विकलांग है, तो आप संभवतः इसे प्रयोग समायोजित कर सकते हैं:

इस URL पर एक नजर डालें,

chrome://flags/ 

नकारात्मक पक्ष यह है कि आप कुछ पाते हैं यह है कि काम करता है, यह बिल्कुल तैनाती योग्य नहीं है। यह आपको अंतर्दृष्टि दे सकता है कि आपकी बाधा कहाँ है।

(यहाँ यूआरएल है कि क्रोम में छिपा हुआ है और विशेष स्थानों के लिए आपको मिल की पूरी सूची है: chrome://chrome-urls/)

+2

एक उपयोगी विचार है, लेकिन यह वास्तव में मदद नहीं करता है। मुझे पहले से ही पता है कि मेरे आवेदन में बाधा टुकड़ा शेडर है। खंड शेलर को कॉल को कम करने का एकमात्र तरीका मेरी कशेरुकी गिनती को कम करना है, जो मेरे लिए एक अच्छा विकल्प नहीं है। यद्यपि प्रयास की सराहना करते हैं! – aeskreis

0

मुझे एक ही समस्या थी। रेंडरर विकल्प जो मदद करता था renderer.setPixelRatio (1); मैकबुक प्रो पर एफपीएस 40 से 60 तक चला गया। तीन जेएस आर 86

संबंधित मुद्दे