ALT-TAB के कारण 'कष्टप्रद' / धीमा / गड़बड़ हो सकता है?


25

यह एक खुले समाप्त प्रश्न का अधिक है, लेकिन मुझे उम्मीद है कि इस मुद्दे से बचने के लिए कुछ अच्छी जानकारी प्राप्त होगी।

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

मुझे आश्चर्य है कि इस व्यवहार का क्या कारण है? क्या यह एक DirectX या एक OpenGL चीज है? क्या यह खेलों के 'चालाक' होने और कैशिंग / कैश को मिटा देने के कारण है जब भी स्क्रीन सेटिंग्स बदलती हैं? (मुझे लगता है कि जब मैं ALT-TAB होता है तो उन्हें किसी प्रकार का संकेत मिलता है?)

मुझे अपनी खुद की कोई समस्या नहीं है, लेकिन मैं जानना चाहता हूं कि क्या बचें और कौन सी 'चतुर' चाल इस प्रकार के भयानक ग्राहक अनुभव का कारण बन सकती है?


1
बड़ा अच्छा सवाल! उम्मीद है कि हमें हमेशा की तरह कुछ जवाब मिलेंगे!

जवाबों:


17

कुछ स्थितियों में ALT-TAB डायरेक्टएक्स डिवाइस को खो देगा। जब डिवाइस सभी GPU संसाधनों (वर्टिकल, टेक्सचर्स, शेड्स वगैरह) को खो देता है तो उसे अमान्य माना जाना चाहिए और फिर से उपयोग नहीं किया जा सकता है। MSDN संदर्भ यहाँ

इन खोए हुए संसाधनों को जारी किया जाना चाहिए, और फिर उपकरण के बहाल होने पर फिर से बनाया जाना चाहिए। इन संसाधनों को बहाल करने वाले अधिकांश खेलों के मामले में, डिस्क से फिर से लोड करने के लिए बहुत सारे डेटा की आवश्यकता होती है - अक्सर खेल / स्तर की शुरुआत में की जाने वाली लोडिंग प्रक्रिया।

इससे बचने के लिए क्या किया जा सकता है?

  • आप अपने डेटा का कैश राम में रख सकते हैं, इसलिए इसे वापस GPU पर स्थानांतरित करना HD से पुनः लोड करने की तुलना में तेज़ होगा। मेरा मानना ​​है कि डायरेक्टएक्स को अपने आप बनाने का एक तरीका है।
  • DirectX के नए संस्करण का उपयोग करें। यह उद्धरण ( स्रोत ) DirectX 9Ex पर MSDN से है:

डिवाइस अब केवल दो परिस्थितियों में खो गए हैं; जब हार्डवेयर रीसेट हो जाता है क्योंकि यह लटका हुआ है, और जब डिवाइस ड्राइवर बंद हो जाता है। जब हार्डवेयर हैंग होता है, तो डिवाइस को ResetEx पर कॉल करके रीसेट किया जा सकता है। यदि हार्डवेयर हैंग होता है, तो बनावट मेमोरी खो जाती है।


क्या आप उस उद्धरण के लिए एक लिंक प्रदान कर सकते हैं? हम पाते हैं कि जब आप डेस्कटॉप को लॉक करते हैं तो डिवाइस खो जाता है।
काइलोटन

मैंने उद्धरण के लिए लिंक जोड़ दिया है।
सिस्कोपफोन

1
DirectX व्यवहार में परिवर्तन ड्राइवर मॉडल में परिवर्तन का एक साइड इफेक्ट है। यानी इसमें डब्ल्यूडीएमडी की आवश्यकता होती है। तो यह केवल Vista / Win7 है।
बाहबर

7

Direct3D में जब आप ALT-TAB पूर्ण स्क्रीन विंडो से बाहर निकलते हैं तो एक उपकरण खो सकता है । यदि ऐसा होता है, तो आपको संसाधनों को जारी करना और पुनर्स्थापित करना होगा और डिवाइस को रीसेट करना होगा। यह खेल की जटिलता या डेवलपर्स के आलस्य (हाय वाल्व!) के आधार पर ठीक से करना मुश्किल हो सकता है। मुझे नहीं लगता कि ओपनजीएल एक ही समस्या से ग्रस्त है क्योंकि ड्राइवर आपके लिए ओएनजीसीएल संदर्भ रखने के लिए जिम्मेदार है, लेकिन मुझे यकीन नहीं है।

डायरेक्टएक्स ऐप में ALT-TAB समर्थन के लिए सर्वोत्तम प्रथाओं के बारे में StackOverflow पर एक प्रश्न है जिसमें MSDN और अन्य स्रोतों से उपयोगी लिंक शामिल हैं।


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

यह सच है (OpenGL के बारे में)।
२२

0

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

फिर, जब आप गेम से विंडोज़ तक ऑल्ट + टैब करते हैं, तो उसे काम करने के लिए रैम में इन सेवाओं को लोड करने की आवश्यकता होती है, इसलिए यह आपके गेम डेटा को रैम से ले जाएगा, इसे स्वैप में स्टोर करेगा, और विंडोज़ डेटा को खींचेगा रैम को स्वैप करें।

और जैसा कि आप जानते हैं, हार्ड-ड्राइव पर लिखना रैम की तुलना में एजीईएस ले सकता है। यही बात वास्तव में तब भी होती है जब आप एक भारी खेल छोड़ देते हैं। इसीलिए गेम और विंडो दोनों के लिए पर्याप्त रैम स्पेस होना वास्तव में अधिक आरामदायक हो सकता है।

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