हार्डवेयर संगीतकार एचएएल

हार्डवेयर कम्पोज़र (HWC) HAL उपलब्ध हार्डवेयर के साथ बफ़र्स को संयोजित करने का सबसे कुशल तरीका निर्धारित करता है। एचएएल के रूप में, इसका कार्यान्वयन डिवाइस-विशिष्ट है और आमतौर पर डिस्प्ले हार्डवेयर ओईएम द्वारा किया जाता है।

इस दृष्टिकोण का मूल्य पहचान करने के लिए जब आप प्रदर्शन हार्डवेयर के बजाय GPU में विमानों, जो समग्र कई बफ़र्स ओवरले पर विचार आसान है। उदाहरण के लिए, पोर्ट्रेट ओरिएंटेशन में एक सामान्य एंड्रॉइड फोन पर विचार करें, जिसमें शीर्ष पर स्टेटस बार, नीचे नेविगेशन बार और हर जगह ऐप सामग्री हो। प्रत्येक परत की सामग्री अलग-अलग बफ़र्स में होती है। आप निम्न विधियों में से किसी एक का उपयोग करके संरचना को संभाल सकते हैं:

  • ऐप सामग्री को स्क्रैच बफर में रेंडर करना, फिर उसके ऊपर स्टेटस बार, उसके ऊपर नेविगेशन बार, और अंत में स्क्रैच बफर को डिस्प्ले हार्डवेयर में पास करना।
  • सभी तीन बफ़र्स को डिस्प्ले हार्डवेयर में पास करना और इसे स्क्रीन के विभिन्न हिस्सों के लिए अलग-अलग बफ़र्स से डेटा पढ़ने का निर्देश देना।

बाद वाला दृष्टिकोण काफी अधिक कुशल हो सकता है।

प्रदर्शन प्रोसेसर क्षमताएं काफी भिन्न होती हैं। ओवरले की संख्या, चाहे परतों को घुमाया या मिश्रित किया जा सकता है, और स्थिति और ओवरलैप पर प्रतिबंध एपीआई के माध्यम से व्यक्त करना मुश्किल हो सकता है। इन विकल्पों को समायोजित करने के लिए, एचडब्ल्यूसी निम्नलिखित गणना करता है:

  1. सरफेसफ्लिंगर एचडब्ल्यूसी को परतों की पूरी सूची प्रदान करता है और पूछता है, "आप इसे कैसे संभालना चाहते हैं?"
  2. HWC प्रत्येक परत को उपकरण या क्लाइंट संरचना के रूप में चिह्नित करके प्रतिक्रिया करता है।
  3. सरफेसफ्लिंगर किसी भी क्लाइंट का ख्याल रखता है, आउटपुट बफर को एचडब्ल्यूसी को पास करता है, और एचडब्ल्यूसी को बाकी को संभालने देता है।

क्योंकि हार्डवेयर विक्रेता निर्णय लेने के कोड को अनुकूलित कर सकते हैं, इसलिए हर डिवाइस से सर्वश्रेष्ठ प्रदर्शन प्राप्त करना संभव है।

जब स्क्रीन पर कुछ भी नहीं बदल रहा हो तो ओवरले प्लेन GL कंपोज़िशन से कम कुशल हो सकते हैं। यह विशेष रूप से सच है जब ओवरले सामग्री में पारदर्शी पिक्सेल होते हैं और ओवरलैपिंग परतें मिश्रित होती हैं। ऐसे मामलों में, HWC कुछ या सभी परतों के लिए GLES संरचना का अनुरोध कर सकता है और मिश्रित बफर को बनाए रख सकता है। यदि सर्फेसफ्लिंगर बफ़र्स के समान सेट को संयोजित करने के लिए कहता है, तो HWC पहले से संयोजित स्क्रैच बफर दिखा सकता है। यह एक निष्क्रिय डिवाइस की बैटरी लाइफ को बेहतर बना सकता है।

एंड्रॉइड डिवाइस आमतौर पर चार ओवरले विमानों का समर्थन करते हैं। ओवरले की तुलना में अधिक परतों को संयोजित करने का प्रयास करने से सिस्टम उनमें से कुछ के लिए GLES संरचना का उपयोग करता है, जिसका अर्थ है कि किसी ऐप द्वारा उपयोग की जाने वाली परतों की संख्या बिजली की खपत और प्रदर्शन पर एक औसत दर्जे का प्रभाव डाल सकती है।