टाइल-आधारित (आस्थगित) प्रतिपादन के लिए डेटा संरचनाएँ


18

टाइलिंग रेंडरिंग का उपयोग आधुनिक मोबाइल जीपीयू आर्किटेक्चर में मेमोरी स्पेस की पहुंच को सुसंगत रूप से बढ़ाने के लिए छोटे (जैसे, 32x32 पिक्सेल) टाइल्स के नियमित ग्रिड में किया जाता है। सूचना प्रत्येक टाइल के साथ जुड़े प्राइमिटिव को ट्रैक करने के लिए उपयोग किए जाने वाले डेटा संरचनाओं के प्रकारों पर दुर्लभ है, यह देखते हुए कि मनमाने ढंग से कई प्राइमेटिव किसी दिए गए टाइल को ओवरलैप कर सकते हैं।

ड्राइवर डेवलपर के दृष्टिकोण से, कौन सी डेटा संरचनाएं आमतौर पर एक टाइल से संबंधित आदिम सेट का प्रतिनिधित्व करने के लिए उपयोग की जाती हैं, और क्या ऐसी संरचनाएं गतिशील रूप से आवंटित / ज्यामिति के अनुसार आकार में होती हैं जो किसी विशेष टाइल को ओवरलैप करती हैं?


3
वास्तव में दिलचस्प सवाल है, और हालांकि मुझे संदेह है कि अधिकांश नॉटी-ग्रैटी
जॉन कैल्सबीक

जवाबों:


11

वह ब्लॉग पोस्ट करता है कि जॉन उल्लेख एक बहुत अच्छी शुरुआत है (यदि मैं खुद ऐसा कहता हूं!), लेकिन इसमें कुछ अतिरिक्त विवरण हैं जो सहायक हो सकते हैं।

PowerVR आर्किटेक्चर के लिए, मध्यवर्ती डेटा संरचना - जिसे विभिन्न रूप से आदिम सूची या पैरामीटर बफर (PB) कहा जाता है - जो प्रति-टाइल डेटा संग्रहीत करता है, सभी शीर्ष छायांकन के बाद और टाइलिंग प्रक्रिया पूरी होने के बाद, वास्तव में उत्पन्न और प्रबंधित होती है। ड्राइवर के बजाय हार्डवेयर।

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

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

पीबी के लिए जीपीयू का उपयोग करने वाली मेमोरी सभी आधुनिक पावरवीआर कार्यान्वयन में गतिशील रूप से आवंटित की जाती है। उस मेमोरी को एक पॉइंटर ड्राइवर द्वारा प्रदान किया जाता है, और ड्राइवर, GPU की सहायता से, इसे आवश्यकतानुसार आकार देगा। यह तंत्र बार-बार वास्तविक होने और आवंटित पीबी स्थान की मात्रा को कम करने के बीच एक व्यापार है।

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

अन्य आर्किटेक्चर बिल्कुल PowerVR के समान काम नहीं करते हैं, क्योंकि पीबी का कारण यह है कि जिस तरह से यह हमारी वास्तुकला में है वह पूरी तरह से स्थगित पिक्सेल छायांकन अवधारणा को लागू करने में मदद करने के लिए है, लेकिन सामान्य अवधारणा अन्य सभी टिलर पर लागू होती है। मोबाइल स्पेस जिसके बारे में मुझे जानकारी है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.