Last updated on

كروت Radeon عمرها 19 سنة تشغّل محاكي PS3 عبر RPCS3


دعم كروت ATI Radeon HD المبنية على معماريتي TeraScale 1 وTeraScale 2.

RPCS3 TeraScale 1 وTeraScale 2 Linux فقط

RPCS3 صار يدعم كروت ATI Radeon HD من عام 2007

فريق RPCS3 أضاف دعم كروت ATI Radeon HD 2000 وHD 3000 وHD 4000 المبنية على معمارية TeraScale 1.

وهذا يجي فوق الدعم الموجود من قبل لكروت Radeon HD 5000 وHD 6000 المبنية على TeraScale 2.

الدعم هذا يشتغل على Linux فقط باستخدام تعريف Mesa r600 ومحرك OpenGL. تعريفات Windows القديمة لهذه الكروت ما هي مدعومة.

ليش التطوير هذا مهم؟

كروت TeraScale اللي دخلت ضمن الدعم نزلت تقريبًا بين 2007 و 2011. بعض هذه الكروت صار يقدر يفتح RPCS3 ويعرض ألعاب PlayStation 3 بصورة صحيحة.

HD 2000 TeraScale 1
HD 3000 TeraScale 1
HD 4000 TeraScale 1
  • التشغيل يعتمد على تعريف r600 المفتوح المصدر داخل Mesa.
  • لازم تختار OpenGL من إعدادات الرسوم داخل المحاكي.
  • كروت TeraScale 1 تحتاج Override لإصدار OpenGL وGLSL.
  • الدعم التقني ما يعني أن الأداء بيكون ممتاز في كل الألعاب.

TeraScale 2 واختبار Radeon HD 5850

RPCS3 يدعم كروت Radeon HD 5000 وHD 6000 المبنية على TeraScale 2 من سنة 2021. هذه الكروت تدعم مستويات OpenGL وGLSL المطلوبة، لذلك غالبًا ما تحتاج متغيرات Override إضافية.

الفريق رجع اختبر كرت ATI Radeon HD 5850 وقارن نسخة قديمة من RPCS3 مع نسخة حديثة بعد حوالي 5 سنوات من التحسينات.

عنصر الاختبار المواصفات
المعالج AMD FX-8350 @ 4.6 GHz
كرت الشاشة ATI Radeon HD 5850
الذاكرة 8 GB RAM
نواة Linux Linux Kernel 7.0
تعريف Mesa Mesa 26.0.5
الإصدار القديم RPCS3 v0.0.19-12988
الإصدار الحديث RPCS3 v0.0.40-19391
اختبار RPCS3 القديم على Radeon HD 5850
اختبار الأداء على واحد من إصدارات RPCS3 القديمة.
اختبار RPCS3 الحديث على Radeon HD 5850
اختبار الأداء على إصدار RPCS3 الحديث.
أداء Persona 5 داخل قصر كاموشيدا
اختبار Persona 5 داخل قصر كاموشيدا.
أداء Persona 5 داخل ممر المدرسة
اختبار Persona 5 في ممر المدرسة الأكثر ضغطًا.
الأداء داخل قصر كاموشيدا ارتفع من 35 FPS إلى 49 FPS، وفي ممر المدرسة ارتفع من 19 FPS إلى 25 FPS.

النتيجة تبين أن تحسينات RPCS3 ما تفيد الكروت الحديثة فقط؛ حتى الكروت القديمة جدًا تقدر تستفيد من التطوير المستمر.

كيف صار دعم TeraScale 1 ممكن؟

كروت Radeon HD 2000 وHD 3000 وHD 4000 تعلن افتراضيًا عن دعم OpenGL 3.3 وGLSL 3.30 فقط.

RPCS3 يحتاج مستوى أعلى عشان يبدأ محرك OpenGL، لذلك استخدم المطورون متغيرات Mesa عشان يعلن النظام عن OpenGL 4.3 وGLSL 4.40.

تشغيل RPCS3 على كرت TeraScale 1

بداية اختبار محرك OpenGL على كروت TeraScale 1.

أول مشكلة ظهرت كانت أثناء إنشاء Ring Buffer باستخدام NamedBufferStorage، وكان المحاكي يرجع مؤشرًا فارغًا وقت تهيئة محرك الرسوم.

مشكلة تهيئة محرك OpenGL على TeraScale 1

الاختبارات الأولى وتحديد مكان فشل تهيئة OpenGL.

بعد الفحص طلع السبب أن هذه الكروت ما تدعم Shader Storage Buffer Objects أو اختصارًا SSBO.

ARB_shader_storage_buffer_object

كود RPCS3 كان يفترض أن كل كرت مدعومة توفر الميزة. المطورون أضافوا فحصًا فعليًا للامتداد، وعطلوا المسار اللي يعتمد عليه لما يكون غير متوفر.

إصلاح دعم SSBO في RPCS3
اختبار المحاكي بعد تجاوز مشكلة SSBO.
عرض ألعاب RPCS3 على كرت ATI قديمة
نجاح تهيئة OpenGL وعرض الرسوميات.
الإصلاح الأساسي دخل ضمن Pull Request #18874 .

ATI Radeon HD 4890

كرت ATI Radeon HD 4890 كانت أول كرت TeraScale 1 يتم اختبارها مع RPCS3.

الكرت نزلت سنة 2009، وتعتمد على RV790، وتعتبر أقوى كرت TeraScale 1 أطلقتها ATI.

المواصفة ATI Radeon HD 4890
المعالج الرسومي RV790
ذاكرة الرسوميات 1024 MB VRAM
وحدات التظليل 800
وحدات الحوسبة 10
سنة الإصدار 2009
تشغيل لعبة على ATI Radeon HD 4890
إحدى الألعاب أثناء تشغيلها على Radeon HD 4890.
أداء RPCS3 على Radeon HD 4890
اختبار إضافي لأداء RPCS3 على الكرت.
نتيجة تشغيل RPCS3 على ATI Radeon HD 4890

الألعاب البسيطة تقدر توصل لأداء قابل للعب على HD 4890.

الألعاب البسيطة اشتغلت بأداء قابل للعب، لكن الألعاب الثقيلة صارت محدودة بقوة كرت الشاشة نفسها.

ليش الكرت تتعب رغم أنها أقوى من RSX؟

  • Shaders اللي يولدها RPCS3 معقدة وما هي محسنة بالكامل لمعمارية TeraScale القديمة.
  • المحاكي يستخدم GPU في فك Textures وتحويل صيغ الصور لتخفيف بعض الشغل عن CPU.
  • الكمبيوتر يستخدم VRAM وRAM منفصلتين، لذلك يحتاج ينقل بيانات عبر PCI Express.
  • تصميم ذاكرة PS3 أقرب إلى UMA مقارنة بالكمبيوتر المكتبي التقليدي.
الدعم هذا يعتبر بداية لعرض الألعاب بصورة صحيحة، والنتائج ممكن تتحسن قدام مع تحسين Shaders ونقل البيانات وانتر ريزلوشن.

ATI Radeon HD 3870

بعدها انتقل الفريق إلى ATI Radeon HD 3870 من سلسلة HD 3000. الكرت نزلت سنة 2007 وتعتمد على RV670.

المواصفة ATI Radeon HD 3870
المعالج الرسومي RV670
ذاكرة الرسوميات 512 MB VRAM
وحدات التظليل 320
وحدات الحوسبة 4
سنة الإصدار 2007

رغم أنها أضعف بكثير من HD 4890، قدرت تعرض الألعاب البسيطة وتشغل بعضها بأداء مقبول بعد خفض انتر ريزلوشن.

OutRun Online Arcade على ATI Radeon HD 3870 بدقتي 720p و273p

OutRun Online Arcade بدقة 720p بسرعة 18.5 FPS، مقابل 273p بسرعة 22.8 FPS.

اختبار لعبة على Radeon HD 3870

اختبار إضافي على Radeon HD 3870.

خفض انتر ريزلوشن يفيد لما تكون كرت الشاشة هي عنق الزجاجة، لكنه ما يحل ضعف المعالج أو بطء ترجمة تعليمات PPU وSPU.

ATI Radeon HD 2600 XT

الفريق اختبر أيضًا ATI Radeon HD 2600 XT، وهي من أضعف كروت TeraScale 1، وحتى أضعف من RSX الموجود داخل PlayStation 3.

المواصفة ATI Radeon HD 2600 XT
المعالج الرسومي RV630
ذاكرة الرسوميات 256 MB VRAM
وحدات التظليل 120
وحدات الحوسبة 3
سنة الإصدار 2007
اختبار ATI Radeon HD 2600 XT في RPCS3
الكرت تعرض الرسوميات بشكل صحيح، لكن الأداء منخفض جدًا.
لعبة Portal على Radeon HD 2600 XT
اختبار Portal بعد خفض انتر ريزلوشن إلى 273p.
حتى مع خفض انتر ريزلوشن إلى 273p، وصلت Portal إلى حوالي 12.9 FPS فقط على HD 2600 XT، مقابل حوالي 26.7 FPS على HD 3870 بدقة 720p.

الكرت مدعومة تقنيًا ويقدر المحاكي يعرض الرسوميات عليها، لكن قوتها ما تكفي لتجربة لعب عملية حتى في الألعاب البسيطة.

تحديث الحد الأدنى لمتطلبات RPCS3

فريق RPCS3 خفّض الحد الأدنى المستهدف لكروت AMD القديمة من ATI Radeon HD 5550 المبنية على Redwood إلى ATI Radeon HD 2900 XT المبنية على R600.

الحالة كرت الشاشة المعمارية الملاحظة
الحد الأدنى السابق ATI Radeon HD 5550 Redwood TeraScale 2
الحد الأدنى الجديد ATI Radeon HD 2900 XT R600 TeraScale 1
مدعومة تقنيًا فقط ATI Radeon HD 2600 XT RV630 أضعف من أنها تكون حدًا أدنى عمليًا
الحد الأدنى يعني أن العتاد يقدر يبدأ المحاكي ويشغل الألعاب تقنيًا، مو أنه بيعطي سرعة كاملة أو تجربة ممتازة في كل الألعاب.

طريقة تشغيل RPCS3 على كروت TeraScale

المتطلبات

  • توزيعة Linux حديثة ومتوافقة.
  • تعريف Mesa المفتوح المصدر.
  • استخدام تعريف r600.
  • اختيار OpenGL داخل RPCS3.
  • استخدام أحدث إصدار متوفر من المحاكي.

كروت TeraScale 1

تشمل Radeon HD 2000 وHD 3000 وHD 4000. تشغيل AppImage يكون بهذا الأمر:

MESA_GL_VERSION_OVERRIDE=4.3 MESA_GLSL_VERSION_OVERRIDE=440 ./rpcs3.AppImage

المتغير الأول يخلي Mesa يعلن عن OpenGL 4.3، والثاني يحدد GLSL 4.40.

كروت TeraScale 2

تشمل Radeon HD 5000 وHD 6000، وعادة ما تحتاج متغيرات Override إضافية:

./rpcs3.AppImage
لا تستخدم متغيرات OpenGL Override بشكل عشوائي على كروت ثانية؛ الطريقة هذه مخصصة لكروت TeraScale 1 مع Mesa r600.

إعداد Shader المقترح

لو واجهت Crash أو مشاكل وقت بناء Shaders، فريق RPCS3 يقترح استخدام:

Settings → GPU → Shader Mode → Legacy Recompiler (single-threaded)

الوضع هذا ممكن يكون أبطأ من الخيارات الحديثة، لكنه أحيانًا يعطي ثبات أفضل مع كروت TeraScale القديمة.

هل الدعم يشتغل على Windows؟

لا. الدعم المعلن لكروت TeraScale القديمة مخصص لـ Linux باستخدام Mesa r600 وOpenGL.

فريق RPCS3 وضح أن تعريف OpenGL القديم من AMD على Windows، المعروف باسم Orca، ما يوفر الوظائف والثبات والأداء المطلوب لتشغيل المحاكي بصورة صحيحة.

يعني وجود كرت Radeon HD قديمة لحاله ما يكفي؛ لازم Linux وتعريف Mesa المتوافق.

الخلاصة

التطوير هذا ما يعني أن كرت من سنة 2007 بتشغل كل ألعاب PlayStation 3 بسرعة كاملة، لكنه يثبت أن RPCS3 يقدر يشتغل على عتاد قديم جدًا لما تكون التعريفات مفتوحة المصدر وقابلة للتعديل.

  • Radeon HD 2000 وHD 3000 وHD 4000 صارت مدعومة تقنيًا.
  • التشغيل متوفر على Linux باستخدام Mesa r600 وOpenGL.
  • TeraScale 1 تحتاج Override لـ OpenGL وGLSL.
  • Radeon HD 4890 تقدر تشغل بعض الألعاب البسيطة بأداء قابل للعب.
  • Radeon HD 3870 تستفيد من خفض انتر ريزلوشن.
  • Radeon HD 2600 XT تعرض الرسوميات، لكن أداءها غير عملي.
  • الحد الأدنى الجديد صار ATI Radeon HD 2900 XT.

شكر للمطورين

  • AniLeo: وفر كروت TeraScale وسوى الاختبارات وعمليات Debugging.
  • kd-11: طور الإصلاحات المطلوبة داخل محرك OpenGL في RPCS3.

المقال الأصلي كتبه AniLeo وراجعه المطور kd-11.