दिलचस्प पोस्ट
प्रवेश 2007 वीबीए में "ओपन फाइल" संवाद कैसे दिखाया जाए? ReactJS आवेदन – लचीलाता वीएस तेजी से विफल "\ N" या '\ n' या std :: endl को std :: cout? सिंगल app.config बहु-परियोजना सी # मैं यूआईएलबल में टेक्स्ट के उपस्ट्रिंग के लिए CGRect कैसे खोजूं? ओरेकल के लिए ऑटो इंप्रेशन ऐप स्टोर पर ऐप के साथ कैसे जुड़ें सफारी कुकी सेट नहीं करता लेकिन आईई / एफएफ करता है क्या फ़ंक्शन से "const char *" लौटने का एक अच्छा विचार है? SQL सर्वर पूर्ण पाठ खोज अक्षर से बचें? निरंतर मूल्य प्रकार बनाने में असमर्थ केवल इस प्रकार के आदिम प्रकार या गणण प्रकार इस संदर्भ में समर्थित हैं JTextField इनपुट को Integers पर सीमित करना जावा 8 में कार्यात्मक इंटरफेस का क्या उपयोग है? जावा में एकत्रीकरण और संरचना के बीच कार्यान्वयन अंतर जावा में समवर्ती हैशमैप और हैशटेबल

आप कैसे निर्धारित करते हैं कि WPF हार्डवेयर या सॉफ़्टवेयर रेंडरिंग का उपयोग कर रहा है?

मैं विभिन्न प्लेटफार्मों पर एक WPF अनुप्रयोग को बेंचमार्क कर रहा हूं और मुझे यह निर्धारित करने के लिए आसान तरीका चाहिए कि क्या WPF हार्डवेयर या सॉफ्टवेयर रेंडरिंग का उपयोग कर रहा है।

मुझे यह निर्धारित करने के लिए एक कॉल को याद करना लगता है, लेकिन अभी इस पर मेरे हाथ नहीं लगा सकते हैं।

इसके अलावा, क्या एक आसान, कोड आधारित तरीके से दूसरे पर एक रेंडरिंग पाइपलाइन पर बल देना है?

वेब के समाधान से एकत्रित समाधान "आप कैसे निर्धारित करते हैं कि WPF हार्डवेयर या सॉफ़्टवेयर रेंडरिंग का उपयोग कर रहा है?"

रेंडर क्षमता की जांच करें। टीयर

[ अद्यतन ]

  • RenderCapability.IsPixelShaderVersion समर्थित – एक मान हो जाता है जो इंगित करता है कि निर्दिष्ट पिक्सेल शेडर संस्करण समर्थित है या नहीं।
  • RenderCapability.IsShaderEffectSoftwareRenderingSupported – एक मान प्राप्त करता है जो इंगित करता है कि सिस्टम सॉफ़्टवेयर में बिटमैप प्रभाव प्रदान कर सकता है।
  • रेंडर क्षमता। टीयर – एक ऐसा मान हो जाता है जो वर्तमान धागा के लिए रेंडरिंग स्तरीय इंगित करता है।
  • RenderCapability.TierChanged – तब होता है जब वर्तमान थ्रेड के डिस्पैचर ऑब्जेक्ट के लिए रेंडरिंग स्तरीय बदल गया है।

रीडर क्षमता। टीयर >> 16

  • प्रतिपादन श्रेणी 0 – कोई ग्राफिक्स हार्डवेयर त्वरण नहीं। डायरेक्टएक्स संस्करण स्तर संस्करण 7.0 से कम है।
  • प्रतिपादन श्रेणी 1 – आंशिक ग्राफिक्स हार्डवेयर त्वरण डायरेक्टएक्स संस्करण स्तर संस्करण 7.0 के बराबर या उसके बराबर है, और संस्करण 9.0 से कम है।
  • प्रतिपादन श्रेणी 2 – अधिकांश ग्राफिक्स ग्राफिक्स हार्डवेयर त्वरण का उपयोग करते हैं डायरेक्टएक्स संस्करण स्तर संस्करण 9.0 के बराबर या उसके बराबर है।

.NET 4.0 कोड में सॉफ्टवेयर रेंडरिंग करने की क्षमता प्रदान करता है:

public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { if (WeThinkWeShouldRenderInSoftware()) RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly; } } 

अधिक जानकारी के लिए इस पोस्ट को देखें।

हो सकता है कि आपके प्रश्न के दूसरे हिस्से में निम्नलिखित मदद मिल सकती है, यानी, आप एक रेंडरिंग पाइपलाइन को दूसरे पर बल दे सकते हैं:

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

यद्यपि यहां नोट करने के लिए एक स्पष्ट बात … यह है कि यह सभी WPF अनुप्रयोगों को प्रभावित करता है और वास्तव में केवल परीक्षण प्रयोजनों के लिए उपयोग किया जाना चाहिए।

हार्डवेयर त्वरण अक्षम करने के लिए:

 [HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics] "DisableHWAcceleration"=dword:00000001 

हार्डवेयर त्वरण को सक्षम करने के लिए:

 [HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics] "DisableHWAcceleration"=dword:00000000 

अधिक जानकारी के लिए इस एमएसडीएन लिंक को देखें

RenderingTier लिंक के आधार पर, यहां कुछ कोड है:

  logger.InfoFormat("WPF Tier = {0}",RenderCapability.Tier / 0x10000); RenderCapability.TierChanged += (sender, args) => logger.InfoFormat("WPF Tier Changed to {0}", RenderCapability.Tier / 0x10000); 

मैं अभी भी परीक्षण और इस पर काम कर रहा हूँ। मुझे जो मिल रहा है उसके लिए भावी संपादन / उत्तर देखें

या प्रोफाइलिंग उपकरण का उपयोग करें …

नया चेकबॉक्स टेंट करने के लिए लक्षित एप्लिकेशन तत्वों को जोड़ दिया गया था जो दप रेंडर लीगेसी बिटमैप इफेक्ट्स का उपयोग करते हैं।

अपने प्रश्न के दूसरे छमाही के जवाब में, मुझे कोई विश्वास नहीं है कि वास्तव में दूसरे पर एक तरफ बल देना। उपलब्ध होने पर हार्डवेयर रेंडरिंग स्वचालित रूप से उपयोग की जाती है, अन्यथा, सॉफ्टवेयर है

यदि आपको इसे सॉफ़्टवेयर मोड में जांचना है, तो आपको कम स्पेक मशीन का उपयोग करना होगा या किसी अन्य कंप्यूटर पर चलने वाले एप्लिकेशन को देखने के लिए रिमोट डेस्कटॉप का उपयोग करना होगा। कम प्रदर्शन / फ्रैमरेट के अलावा, दोनों के बीच उपस्थिति में कोई भी दृश्य अंतर नहीं होना चाहिए। पता करने के लिए RenderCapability वर्ग का उपयोग करें कि आपको ऐनिमेशन या प्रदर्शन के पक्ष में प्रभाव जैसी चीजों को अक्षम करना चाहिए।

मैं दूसरे उत्तर के साथ सहमत हूं, लेकिन यह मशीन के लिए एचडब्ल्यू रेंडरिंग का उपयोग करने की क्षमता के बारे में कुछ कहता है, यदि वह ऐप वास्तव में एचडब्ल्यू है तो नहीं।

मैंने एक कैनवास का उपयोग करके एक साधारण ऐप बनाया है और बस RotateTransform के साथ एक आयताकार घूर्णन करते हुए एचवी रेंडर किए गए एप्लिकेशन के लिए ज्यादा सीपीयू का उपयोग करता है। यह और 'रेंडर क्षमता। टीयर' मान 2 है इसलिए ऐसा करने के लिए पर्याप्त एचडब्ल्यू क्षमता है।

फिर क्यों नहीं?