سؤال

أقوم بتطوير تطبيق OpenGL وأرى بعض الأشياء الغريبة تحدث.الجهاز الذي أختبره مزود بـ NVidia Quadro FX 4600 ويعمل بنظام RHEL WS 4.3 x86_64 (kernel 2.6.9-34.ELsmp).

لقد قمت بالتنقل عبر التطبيق باستخدام مصحح الأخطاء ولاحظت أنه معلق على مكالمات OpenGL التي تتلقى معلومات من OpenGL API:أي.- glGetError، glIsEnabled، إلخ.في كل مرة يتم فيها تعليق الاتصال، لا يستجيب النظام لمدة 3-4 ثوانٍ.

شيء آخر مثير للاهتمام هو أنه إذا تم تشغيل نفس الكود على RHEL 4.5 (Kernel 2.6.9-67.ELsmp)، فإنه يعمل بشكل جيد تمامًا.يعمل نفس الرمز أيضًا بشكل مثالي على نظام التشغيل Windows XP.تستخدم جميع الأجهزة نفس الأجهزة تمامًا:

  • بي ان واي نفيديا كوادرو FX4600 768 ميجابايت PCI Express
  • ثنائي إنتل زيون DP رباعي النواة E5345 2.33 هرتز
  • 4096 ميجابايت 667 ميجاهرتز مخزنة بالكامل DDR2
  • اللوحة الأم سوبر مايكرو X7DAL-E Intel 5000X Chipset Dual Xeon
  • إنرماكس ليبرتي 620 واط مزود طاقة

لقد قمت بالترقية إلى أحدث برامج التشغيل 64 بت:الإصدار 177.82، تاريخ الإصدار:12 نوفمبر 2008 والنتيجة هي نفسها بالضبط.

هل لدى أي شخص أي فكرة عما يمكن أن يتسبب في تعليق النظام على مكالمات OpenGL هذه؟

هل كانت مفيدة؟

المحلول

يبدو أن هذه مشكلة تتعلق ببرامج تشغيل NVidia الأقل من المثالية لنظام التشغيل Linux.يبدو أن الترقية إلى نواة أحدث تساعد.إذا اضطررت إلى استخدام هذه النواة القديمة، فهناك بعض الأشياء التي جربتها والتي يبدو أنها تساعد.

تعريف __GL_YIELD متغير البيئة ل "NOTHING" قبل بدء تشغيل X يبدو أنه يزيد من الاستقرار مع هذه النواة الأقدم.http://us.download.nvidia.com/XFree86/Linux-x86_64/177.82/README/chapter-11.html

لقد حاولت أيضًا تعطيل التخزين المؤقت الثلاثي والتقليب.

لقد وجدت ذلك أيضا هذه المنتديات مفيدة جدًا لمشاكل Linux/NVidia.فقط قم بالبحث عن "تعطل Linux"

نصائح أخرى

قد تتمكن من التعمق أكثر باستخدام ملف تعريف النظام مثل سيسبروف أو الملف الشخصي.هل تظهر تطبيقات OpenGL الأخرى التي تستخدم هذه الاستدعاءات سلوكًا مشابهًا؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top