Glxgears के लिए लंबवत सिंक अक्षम करें


85

कभी-कभी आपको यह जांचने की आवश्यकता होती है कि क्या आप लिनक्स 3 डी त्वरण वास्तव में काम कर रहे हैं ( glxinfoआउटपुट के अलावा )। यह glxgearsउपकरण द्वारा जल्दी से किया जा सकता है । हालांकि, एफपीएस अक्सर प्रदर्शित ऊर्ध्वाधर ताज़ा दर (यानी 60 एफपीएस) तक सीमित हैं। तो उपकरण कम या ज्यादा बेकार हो जाता है क्योंकि यहां तक ​​कि एक सॉफ्टवेयर रेंडर आधुनिक CPU पर 60FPS glxgears आसानी से उत्पन्न कर सकता है।

मैंने इसके लिए एक त्वरित और आसान समाधान प्राप्त करना कठिन पाया, मैं अपने प्रश्न का उत्तर देता हूं। उम्मीद है कि यह आपका समय बचाता है।

जवाबों:


119

vblank_modeवातावरण चर काम कर देता है। फिर आपको आधुनिक हार्डवेयर पर कई सैकड़ों एफपीएस प्राप्त करने चाहिए। और अब आप दूसरों के साथ परिणामों की तुलना करने में सक्षम हैं।

$>   vblank_mode=0 glxgears

3
ठीक वही जो मेरे द्वारा खोजा जा रहा था। मुझे 59.984 एफपीएस मिल रहा था, जो कि ताज़ा दर है। सेटिंग vblank_mode=0मैं अब OpenBSD 5.6 चलाने वाले एक पुराने Intel i965 वीडियो ड्राइवर पर 1375.257 FPS प्राप्त कर रहा हूं।
क्लिंट पाचल

33
यह शायद गौर करने वाली बात है कि यह केवल मेसा के ओपन-सोर्स वीडियो ड्राइवरों के लिए काम करता है
एलिअम

1
रासा / इंटेल हाइब्रिड का उपयोग मेसा के साथ मेरे लिए काम करता है
मार्क के कोवान

इस तरह के काम करता है, लेकिन पूरे कंप्यूटर को जमा देता है, मेरी मशीन (आर्क) पर अलग TTY pkill की आवश्यकता होती है
phil294

73

यदि आप NVIDIA के बंद-स्रोत ड्राइवरों का उपयोग कर रहे हैं, तो आप __GL_SYNC_TO_VBLANKपर्यावरण चर का उपयोग करके मक्खी पर ऊर्ध्वाधर सिंक मोड को बदल सकते हैं :

~$ __GL_SYNC_TO_VBLANK=1 glxgears
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
299 frames in 5.0 seconds = 59.631 FPS

~$ __GL_SYNC_TO_VBLANK=0 glxgears
123259 frames in 5.0 seconds = 24651.678 FPS

यह मेरे लिए Ubuntu 14.04 पर 346.46 NVIDIA ड्राइवरों का उपयोग करके काम करता है।


यह Ubuntu 16.04, 387.26 NVIDIA ड्राइवरों पर भी काम करता है।
अलेजो बर्नार्डिन

मुझे अपनी सभी मशीनों पर समान परिणाम मिलते हैं। वे सभी 20 हजार एफपीएस से थोड़ा ऊपर हैं। क्या यह एनवीडिया कार्ड की एक सीमा है?
एरोन फ्रेंके

मुझे GTX1050 पर 47 हजार एफपीएस मिला
drescherjm

यह Ubuntu 18.04 में GTX 1050 Ti के लिए 13k FPS के साथ काम किया।
19

जेटसन नैनो पर भी काम करता है। मुझे लगभग 2650 एफपीएस मिलते हैं।
रोबॉट्रोव्स्की

28

इंटेल ग्राफिक्स और एएमडी / एटीआई के लिए ग्राफिक्स ड्राइवरों को खोलता है

"डिवाइस" अनुभाग खोजें, /etc/X11/xorg.confजिसमें निम्नलिखित निर्देशों में से एक है:

  • Driver "intel"
  • Driver "radeon"
  • Driver "fglrx"

और उस अनुभाग में निम्नलिखित पंक्ति जोड़ें:

Option     "SwapbuffersWait"       "false"

और vblank_modeपर्यावरण चर के साथ अपना आवेदन चलाएं 0:

$ vblank_mode=0 glxgears

मालिकाना एनवीडिया चालक के साथ एनवीडिया ग्राफिक्स के लिए

$ echo "0/SyncToVBlank=0" >> ~/.nvidia-settings-rc

उसी परिवर्तन को nvidia-settingsGUI में विकल्प को अनचेक करके बनाया जा सकता है X Screen 0 / OpenGL Settings / Sync to VBlank। या, यदि आप अपनी ~/.nvidia-settings-rcफ़ाइल को संशोधित किए बिना सेटिंग का परीक्षण करना चाहते हैं, तो आप कुछ ऐसा कर सकते हैं:

$ nvidia-settings --load-config-only --assign="SyncToVBlank=0"  # disable vertical sync
$ glxgears  # test it out
$ nvidia-settings --load-config-only  # restore your original vertical sync setting

1
एनवीडिया के लिए आप nvidia-settings --load-config-only --assign="SyncToVBlank=0"केवल एक्स डिस्प्ले की सेटिंग्स को बदलने के लिए चला सकते हैं (और कॉन्फ़िगरेशन फ़ाइल को संशोधित करने या जीयूआई चलाने से बचें)। चलाने के बाद glxgearsआप nvidia-settings --load-config-onlyकॉन्फ़िगर सेटिंग्स को पुनर्स्थापित करने के लिए चला सकते हैं - जो आप शायद करना चाहते हैं क्योंकि यह चल रहे एक्स डिस्प्ले (यानी केवल शेल के लिए नहीं) के लिए एक स्थायी सेटिंग है।
माइकल क्रेब्स

13

सभी उत्तरों को एक साथ रखकर, यहाँ एक कमांड लाइन है जो काम करेगी:

env vblank_mode=0 __GL_SYNC_TO_VBLANK=0 glxgears

इसमें मेसा और एनवीडिया दोनों ड्राइवरों के लिए काम करने के फायदे हैं, और कॉन्फ़िगरेशन फ़ाइलों में किसी भी बदलाव की आवश्यकता नहीं है।


6

Nvidia-settings (OpenGL Settings tab) में VBlank चेकबॉक्स में सिंक को अक्षम करना मेरे लिए ट्रिक है।


5

मुझे एक समाधान मिला जो इंटेल कार्ड में और बम्बलबी का उपयोग करके एनवीडिया कार्ड में काम करता है।

> निर्यात vblank_mode = 0
glxgears
...
ऑप्टीरुन glxgears
...
निर्यात vblank_mode 1


2

इंटेल ड्राइवरों के लिए, यह विधि भी है

वर्टिकल सिंक्रोनाइज़ेशन अक्षम करें (VSYNC)

वर्टिकल-ड्राइवर वर्टिकल सिंक्रोनाइज़ेशन के लिए ट्रिपल बफ़रिंग का उपयोग करता है, यह पूर्ण प्रदर्शन की अनुमति देता है और फाड़ने से बचता है। वर्टिकल सिंक्रोनाइज़ेशन को बंद करने के लिए (जैसे बेंचमार्किंग के लिए) इसका उपयोग करें। अपने घर की डायरेक्टरी में इसे देखें:

<device screen="0" driver="dri2">
    <application name="Default">
        <option name="vblank_mode" value="0"/>
    </application>
</device>

3
यह लिंक-ओनली उत्तर है। कुछ दस्तावेज़ीकरण से जुड़ना सभी अच्छी तरह से और अच्छा है, लेकिन अपने आप में एक उत्तर का गठन करने के लिए पर्याप्त नहीं है (यह भी लिंक मरता है, बाहरी रूप से होस्ट किए गए पृष्ठ परिवर्तन आदि)। क्या आप अपने उत्तर में मुख्य बिंदुओं को संक्षेप में बता सकते हैं?
अलिअम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.