टाइल आधारित रेंडरिंग GPU में टेक्सचर कैश कैसे काम करता है


9

टाइल आधारित प्रतिपादन के साथ कैश कैसे काम करता है?

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


1
त्रिभुजों के ऊर्ध्वाधर बनाम क्षैतिज लेआउट से आपका क्या मतलब है?
मोकोशा

@ मोकोशा माफ करना, यह किसी भी तरह मुझे किसी का ध्यान नहीं गया। मैंने अभी देखा। यह व्यावहारिक प्रश्न की तुलना में अधिक सैद्धांतिक है और मुझे यह भी नहीं पता कि क्या यह अब समझ में आता है। वैसे भी, मेरा मतलब था कि एक त्रिकोण प्रतिच्छेदन टाइलें (x, y) और (x + 1, y) कहती हैं और ये दोनों टाइलें एक के बाद एक संसाधित होती जाती हैं। यदि मैं एक त्रिभुज प्रतिच्छेद (x, y) और (x, y + 1) की तुलना में बनावट कैश के लिए बेहतर होगा? (सीमा पिक्सेल और त्रिकोणों का लेआउट एक ही दिशा में नहीं होने के कारण टाइल्स की प्रोसेसिंग होती है)
फेलिप लीरा

जवाबों:


19

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

नतीजतन, यह त्रिभुजों को प्रस्तुत करने के लिए अधिक कुशल है जो समबाहु त्रिकोणों के करीब हैं क्योंकि GPU मेमोरी सिस्टम टेक्सल्स की कैश लाइनों को प्राप्त करता है।

तो स्पष्ट रूप से टाइल सीमाओं पर, ऐसा हो सकता है कि आपको दो बार टेक्सल्स लाने होंगे। इसकी एक छोटी सी लागत है क्योंकि टाइल की सीमाएं केवल "कुछ" पिक्सेल हैं।

तर्कपूर्ण रूप से डेस्कटॉप जीपीयू टाइल आधारित GPUs के लिए व्यवहारिक रूप से निम्न प्रदर्शन जैसे प्रयोगों के रूप में व्यवहार करता है: http://www.g-truc.net/post-0597.html

टाइल्स का आकार भिन्न होता है, लेकिन दोनों वास्तुकला वास्तव में टुकड़े को विभिन्न आकारों की टाइलों के एक पदानुक्रम में संसाधित करते हैं।

जब टाइल आधारित GPU के लिए कोडिंग मेरी सिफारिश हमेशा ध्यान में रखना है:

  1. जब तक आपको वास्तव में ज़रूरत न हो, फ़्रेमबफ़र ऑब्जेक्ट को स्विच न करें ।
  2. किसी नए फ़्रेमबफ़र ऑब्जेक्ट को बाइंड करते समय, यदि आपको वर्तमान फ़्रेमबफ़र की सामग्री को सहेजने की आवश्यकता नहीं है, तो उसे छोड़ दें। यदि आप नए फ्रेमबफ़र की सामग्री लोड नहीं करना चाहते हैं, तो आपको फ़्रेमबफ़र को साफ़ करना चाहिए।

मैंने दूसरे आइटम को अपडेट किया क्योंकि एड का मतलब यह नहीं था। अन्यथा, यह बहुत अच्छा लग रहा है!
क्रिस्टोफ

हाय क्रिस्टोफ़, क्या आपका मतलब "समद्विबाहु" त्रिकोण के बजाय "समद्विबाहु" है? "हिल्बर्ट" के बजाय मैंने "मॉर्टन" आदेश कहा होगा क्योंकि एड्रेसिंग हार्डवेयर में बहुत आसान है।
साइमन एफ

@ श्रीस्तोफे धन्यवाद! यह वास्तव में उपयोगी है। तो, सीमा पिक्सेल के लिए, बनावट कैश मायने नहीं रखती है? मैं सोच रहा था कि तरह था। इसलिए, अगर मेरे पास एक त्रिभुज है जो टाइलों (x, y) और (x + 1, y) और GPU को बस rasterized टाइल (x, y) को काटता है। मान लिया जाए कि टाइल (x + 1, y) अगली होगी, भले ही एक अलग निष्पादन इकाइयाँ इसे संसाधित करती हैं, तो क्या मुझे इस त्रिभुज के लिए टेक्सल्स का नमूना लेते समय बनावट कैश से लाभ नहीं होगा?
फेलिप लीरा

इसके अलावा, मैं हिल्बर्ट पैटर्न के बारे में उत्सुक हो गया। मैंने हमेशा यह माना कि यह ब्लॉक कंप्रेस्ड टेक्सचर के लिए सही था। क्या यह सभी बनावटों के लिए सही है? PS: मैंने आखिरी पैराग्राफ का भी पालन नहीं किया।
फेलिप लीरा

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