सामग्री पर जाएँ
PS5PCEM
आंशिकग्राफ़िक्स

AGC और PM4 कमांड स्ट्रीम

PS5 गेम अपनी मेमोरी में GPU पैकेट बनाता है और बफ़र भेजता है। PS5PCEM उस PM4 स्ट्रीम को डिकोड करता है, रजिस्टर स्थिति रखता है, और ड्रॉ तथा डिस्पैच क्रम में चलाता है।

10 अक्टूबर 2026 तक के रिपॉज़िटरी नोट्स

स्ट्रीम ही ग्राफ़िक्स API है

गेम को हर त्रिभुज के लिए कोई ऊँचे स्तर का ड्रॉ फ़ंक्शन कॉल नहीं करना पड़ता। वह पैकेट लिखता है: रजिस्टर अपडेट, ड्रॉ, डिस्पैच, फ़ेंस और फ़्लिप। बफ़र जिस भी परत ने बनाया हो, GPU को वही स्ट्रीम दिखती है। डिकोडर उन पैकेट को नाम देता है जिनके ऑपकोड का दस्तावेज़ी अर्थ है, और बाक़ी को संख्या के रूप में छोड़ देता है। ट्रेस में गढ़ा गया नाम ऑपकोड से बदतर होता।

पैकेट बॉडी की लंबाई एक घटाकर रखी जाती है, इसलिए ख़ाली बॉडी एनकोड नहीं हो सकती। हर चरण अपनी सीमाएँ जाँचता है। जो बॉडी फ़िट नहीं होती उसकी रिपोर्ट होती है। उसे काटा नहीं जाता, क्योंकि कटी बॉडी आगे के हर पैकेट को खिसका देती और ट्रेस झूठ बोलता।

स्थिति, प्रतीक्षाएँ और अप्रत्यक्ष बफ़र

रजिस्टर स्थिति, शून्य के लेखन समेत, सबमिशन के पार बनी रहती है। एक्ज़ीक्यूटर सीधी रजिस्टर सूचियाँ, नेटिव और पुरानी अप्रत्यक्ष सूचियाँ, acquire और release, 32-बिट और 64-बिट प्रतीक्षाएँ, लेखन, इवेंट और SetFlip लागू करता है। पूरी न होने वाली प्रतीक्षा रुकी हुई स्थिति और फिर शुरू करने का सटीक शब्द लौटाती है। प्रगति गढ़ने के लिए गेस्ट मेमोरी नहीं बदली जाती।

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

रजिस्टर से ड्रॉ तक

ड्रॉ या डिस्पैच पर रजिस्टर स्नैपशॉट टाइप्ड रिसोर्स बन जाता है: 128-बिट बफ़र और सैंपलर डिस्क्रिप्टर, 256-बिट इमेज डिस्क्रिप्टर, आठ कलर टारगेट, डेप्थ और स्टेंसिल, व्यूपोर्ट, सिज़र, कलिंग, ब्लेंड, और PS5 स्विज़ल तथा MSAA फ़ील्ड। गायब कलर-कंट्रोल और क्लिप-कंट्रोल लेखन AGC डिफ़ॉल्ट लेते हैं। स्पष्ट रूप से बंद किया गया बंद ही रहता है। दो CPU वर्कर ग्राफ़िक्स और कंप्यूट कमांड तैयार करते हैं। एक Vulkan मालिक उन्हें भेजता है ताकि निष्पादन और पूर्णता क्रम में रहें।

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

क्या लागू है

  • एक घटाई गई बॉडी लंबाई और हर पैकेट पर कड़ी सीमाओं के साथ PM4 डिकोड।
  • स्थायी रजिस्टर बैंक, रुकी प्रतीक्षाएँ, और सोलह फ़्रेम तक पुनरावर्ती अप्रत्यक्ष बफ़र।
  • ड्रॉ के समय टाइप्ड बफ़र, इमेज, कलर टारगेट, डेप्थ, व्यूपोर्ट, ब्लेंड और MSAA स्थिति।
  • दो तैयारी वर्कर और एक क्रमबद्ध Vulkan सबमिशन मालिक।

क्या अब भी बाक़ी है

  • दस्तावेज़ी अर्थ के बिना ऑपकोड बेनाम रहता है।
  • रुकी प्रतीक्षा कभी नक़ली फ़ेंस मान लिखकर साफ़ नहीं की जाती।
  • लेयर, मेटाडेटा और कुछ इमेज ऑपरेशन अब भी अधूरे हैं। उनके अपने पेज हैं।

संबंधित तंत्र

ये पेज क्या हैं

पाठ PS5PCEM रिपॉज़िटरी के आर्किटेक्चर नोट्स और अक्टूबर 2026 की रिपोर्टों पर आधारित है। किसी केंद्रित टेस्ट का पास होना नई फ़्रेम दर या गेम का नया समापन नहीं है।

सभी तकनीकें