swrast
জিনিস সফ্টওয়্যার রেন্ডারার হয়। এর অর্থ এটি আপনার গ্রাফিক্স কার্ডের জন্য হার্ডওয়্যার ড্রাইভার খুঁজে পাচ্ছে না। সেখানে অনেকগুলি libGL লাইব্রেরি ইনস্টল করা আছে এবং সেই সমস্ত লাইব্রেরিতে প্রতীকী লিঙ্কের একগুচ্ছ রয়েছে। এগুলি শেল থেকে চালানো দেখতে:
find /usr -iname "*libGL.so*" -exec ls -l -- {} +
এখন আপনার সমস্যার সম্ভাব্য কারণ হ'ল গ্রাফিক্স ড্রাইভারগুলি কখনও কখনও এই প্রতীকী লিঙ্কগুলিকে ভেঙে দেয়। (বিশেষত /usr/local/lib/libGL.so.1.2.0
ভুল লিব বা ভুল লিঙ্কের একটি সিম লিঙ্ক হতে পারে)।
ওপেনজিএল প্রোগ্রামগুলি যে লাইব্রেরিটি চালানোর চেষ্টা করছে তা কার্যকর করার জন্য আপনি কিছুটা ভার্বোসিটি চালু করতে পারেন এবং একটি সাধারণ ওপেনজিএল প্রোগ্রাম চালাতে পারেন। আপনি এটি স্ট্যান্ডার্ড ওপেনজিএল পরীক্ষা প্রোগ্রামটি ব্যবহার করে যাচাই করতে পারেন:
LIBGL_DEBUG=verbose glxgears
আশা করি এটি এসএফএমএলের মতোই ব্যর্থ হবে। সঙ্গে LIBGL_DEBUG
আপনার বলা উচিত কি যেমন OpenGL গ্রন্থাগার এটি লোড করার চেষ্টা হচ্ছে। তবুও এটি যে লিবটি লোড করার চেষ্টা করবে এটি প্রায় নিশ্চিতভাবেই হবে /usr/local/lib/libGL.so.1.2.0
(সম্পাদনা করুন: আমি যখন উত্তর দিয়েছিলাম তখন এটি আমার মেশিনে স্ট্যান্ডার্ড ওপেনলএল লাইব্রেরি ছিল It এটি এখন আপনার মেশিনে অন্য কোনও সংস্করণ হতে পারে)।
সুতরাং সমাধানটি (এই ক্ষেত্রে) এটি নিশ্চিত করা উচিত যে /usr/local/lib/libGL.so.1.2.0
এটি একটি প্রতীকী লিঙ্কটি সঠিক ওপেনএল লাইব্রেরিতে নির্দেশ করছে। আমার ক্ষেত্রে এনভিডিয়া ৩.৪০ ড্রাইভার রয়েছে তাই আমি দৌড়েছি:
ln -s /usr/lib/nvidia-340/libGL.so.1 /usr/local/lib/libGL.so.1.2.0
তবে আপনি এটিকে ওপেনজিএল লাইব এ নির্দেশ করতে চান যা আপনার জন্য উপযুক্ত (প্রথম সন্ধানের আদেশে তালিকাভুক্ত)।
সংক্ষেপে: ইনস্টলিং (মালিকানাধীন) গ্রাফিক্স ড্রাইভারগুলি ওপেনজিএল লাইবসের জন্য ব্যবহৃত প্রতীকী লিঙ্কগুলি ভেঙে ফেলতে পারে। এই সমস্যাটি সমাধান করার জন্য ম্যানুয়ালি প্রতীকী লিঙ্কগুলি ঠিক করুন ( /usr/local/lib/libGL.so.1.2.0
প্রথমে ঠিক করুন )।
libGL.so
:LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/mesa ./glprogram
। ডিফল্টরূপে, আমার উবুন্টু 16.04 এর/usr/lib/nvidia-361/libGL.so
কারণে ব্যবহার করে/etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf
এবং এটি সব ঠিকঠাক করে।