গ্লক্সগার্সের জন্য উল্লম্ব সিঙ্কটি অক্ষম করুন


87

কখনও কখনও আপনার লিনাক্স 3 ডি ত্বরণটি সত্যই কাজ করছে কিনা তা পরীক্ষা করা দরকার ( glxinfoআউটপুট ছাড়াও )। এটি glxgearsসরঞ্জাম দ্বারা দ্রুত করা যেতে পারে । তবে, এফপিএস প্রায়শই প্রদর্শিত উল্লম্ব রিফ্রেশ হারের (অর্থাৎ 60 এফপিএস) সীমাবদ্ধ থাকে। সুতরাং সরঞ্জামটি কমবেশি অকেজো হয়ে যায় যেহেতু একটি সফ্টওয়্যার রেন্ডারও আধুনিক সিপিইউগুলিতে সহজেই 60FPS গ্লিক্সগার তৈরি করতে পারে।

আমি এর জন্য একটি দ্রুত এবং সহজ সমাধান পাওয়া বরং কঠিন বলে মনে করি, আমি আমার নিজের প্রশ্নের উত্তর দিয়েছি। আশা করি এটি আপনার সময় সাশ্রয় করবে।

উত্তর:


120

vblank_modeএনভায়রনমেন্ট ভেরিয়েবল কৌতুক আছে। এরপরে আপনাকে আধুনিক হার্ডওয়্যারে কয়েক শ 'এফপিএস পাওয়া উচিত। এবং আপনি এখন ফলাফলগুলি অন্যের সাথে তুলনা করতে সক্ষম হন।

$>   vblank_mode=0 glxgears

4
ঠিক আমি খুঁজছেন ছিল কি. আমি 59.984 এফপিএস পাচ্ছিলাম যা রিফ্রেশ রেট। সেট করা vblank_mode=0আমি এখন ওপেনবিএসডি 5.6 চালিত পুরানো ইন্টেল আই 965 ভিডিও ড্রাইভারের উপর 1375.257 এফপিএস পাচ্ছি।
ক্লিন্ট পাচল

34
সম্ভবত এটি উল্লেখ করার মতো যে এটি কেবল মেসা ওপেন সোর্স ভিডিও ড্রাইভারদের জন্য কাজ করে
ali_m

4
মেসার সাথে র্যাডিয়ন / ইন্টেল হাইব্রিড ব্যবহার করে আমার জন্য কাজ করে
মার্ক কে কোয়ান

এই ধরণের কাজগুলি কিন্তু সম্পূর্ণ কম্পিউটারকে
হিমশীতল

75

আপনি যদি এনভিআইডিআইএ বদ্ধ-উত্স ড্রাইভার ব্যবহার করেন তবে আপনি __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

এটি 346.46 এনভিআইডিআইএ ড্রাইভার ব্যবহার করে উবুন্টু 14.04 এ আমার জন্য কাজ করে।


এটি উবুন্টু 16.04, 387.26 এনভিআইডিআইএ ড্রাইভারগুলিতেও কাজ করে।
আলেজো বার্নার্ডিন

আমার সমস্ত মেশিনে আমি একই রকম ফলাফল পেয়েছি বলে মনে হচ্ছে। তারা সবাই 20 হাজার এফপিএসের কিছুটা উপরে। এটি কি এনভিডিয়া কার্ডের সীমা?
অ্যারন ফ্র্যাঙ্ক

আমি একটি জিটিএক্স 1050 এ 47 হাজার এফপিএস পেয়েছি
drescherjm

এটি উবুন্টু 18.04 এ একটি জিটিএক্স 1050 টিয়ের জন্য 13 কে এফপিএসের সাথে কাজ করেছে।
ফেজেমো

জেটসন ন্যানোতেও কাজ করে। আমি প্রায় 2650 এফপিএস পাই।
রোবোট্রভস্কি

29

ইন্টেল গ্রাফিক্স এবং এএমডি / এটিআই ওপেনসোর্স গ্রাফিক্স ড্রাইভারগুলির জন্য

নিম্নলিখিত "ডিরেক্টরি" এর মধ্যে একটি "ডিভাইস" বিভাগ সন্ধান করুন /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-settingsজিইউআইতে একই বিকল্পটি বিকল্পটি অনিচ্ছুক করেও করা যেতে পারে 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

4
এনভিডিয়ায় আপনি 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

এনভিডিয়া-সেটিংসে (ওপেনজিএল সেটিংস ট্যাব) ভিবিপ্ল্যাঙ্ক চেকবক্সে সিঙ্কটি অক্ষম করা আমার পক্ষে কৌশলটি কার্যকর করে।


5

আমি একটি সমাধান পেয়েছি যা বাম্বলবি ব্যবহার করে ইন্টেল কার্ড এবং এনভিডিয়া কার্ডে কাজ করে।

> রফতানি vblank_mode = 0
glxgears
...
optirun glxgears
...
রফতানি vblank_mode = 1


2

ইন্টেল চালকদের জন্য, এই পদ্ধতিটিও রয়েছে

উল্লম্ব সিঙ্ক্রোনাইজেশন (VSYNC) অক্ষম করুন

ইন্টেল-ড্রাইভার উল্লম্ব সিঙ্ক্রোনাইজেশনের জন্য ট্রিপল বাফারিং ব্যবহার করে, এটি সম্পূর্ণ কার্য সম্পাদনের জন্য অনুমতি দেয় এবং ছিঁড়ে যাওয়া এড়ায়। উল্লম্ব সিঙ্ক্রোনাইজেশন বন্ধ করতে (উদাহরণস্বরূপ বেঞ্চমার্কিং এর জন্য) আপনার হোম ডিরেক্টরিতে এই .ড্রাইকটি ব্যবহার করুন:

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

4
এটি একটি লিঙ্ক-কেবল উত্তর। কিছু ডকুমেন্টেশনের সাথে লিঙ্ক করা সমস্ত ভাল এবং ভাল, তবে নিজেই একটি উত্তর গঠনের পক্ষে যথেষ্ট নয় (এছাড়াও লিঙ্কগুলি মারা যায়, বাহ্যিক-হোস্ট করা পৃষ্ঠাগুলি পরিবর্তন ইত্যাদি)। আপনি দয়া করে আপনার উত্তরের মূল বিষয়গুলি সংক্ষিপ্ত করতে পারেন?
ali_m
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.