أصدر مشروع Wine Vkd3d 1.3 مع تطبيق Direct3D 12

بعد عام ونصف من التطوير، نشر مشروع Wine إصدار حزمة vkd3d 1.3 مع تطبيق Direct3D 12 الذي يعمل من خلال مكالمات البث إلى واجهة برمجة تطبيقات الرسومات Vulkan. تتضمن الحزمة مكتبات libvkd3d مع تطبيقات Direct3D 12، وlibvkd3d-shader مع مترجم لنماذج التظليل 4 و5، وlibvkd3d-utils مع وظائف لتبسيط عملية نقل تطبيقات Direct3D 12، بالإضافة إلى مجموعة من الأمثلة التجريبية، بما في ذلك المنفذ من glxgears إلى Direct3D 12. يتم توزيع كود المشروع بترخيص بموجب LGPLv2.1.

تدعم مكتبة libvkd3d معظم ميزات Direct3D 12، بما في ذلك مرافق الرسومات والحساب، وقوائم الانتظار وقوائم الأوامر، والمقابض ومقابض الكومة، وتوقيعات الجذر، والوصول خارج الترتيب، وأخذ العينات، وتوقيعات الأوامر، وثوابت الجذر، والعرض غير المباشر، وطرق المسح *( ) ونسخ* ().

في libvkd3d-shader، يتم تنفيذ ترجمة الكود الثانوي لنماذج التظليل 4 و5 إلى تمثيل SPIR-V وسيط. يتم دعم Vertex، وpixel، والفسيفساء، والتظليل الهندسي البسيط والحسابي، وتسلسل توقيع الجذر وإلغاء التسلسل. تتضمن تعليمات التظليل العمليات الحسابية والذرية والبتية، ومشغلي المقارنة والتحكم في تدفق البيانات، وأخذ العينات، وتعليمات التجميع والتحميل، وعمليات الوصول غير المرتبة (الطائرات بدون طيار، وعرض الوصول غير المرتب).

من بين أهم الابتكارات في Vkd3d 1.3:

  • تمت إضافة دعم أولي لتجميع التظليلات ومعالجتها مسبقًا في HLSL (لغة التظليل عالية المستوى)، المقدمة بدءًا من DirectX 9.0.
  • تمت إضافة دعم لمصفوفات الواصفات المحددة في نموذج التظليل 5.1.
  • يوفر الدعم لعمليات الفاصلة العائمة ذات الدقة المزدوجة في التظليل، والعنونة غير المباشرة لتظليل التغطية بالفسيفساء، وتصدير قوالب الاستنسل من التظليل، ومعدل التظليل "الدقيق"، والحواجز العالمية أمام موارد الذاكرة.
  • تم تنفيذ القدرة على تفكيك تظليل Direct3D من الرمز الثانوي إلى تمثيل التجميع.
  • تمت إضافة دعم لتحليل تنسيق الرمز الثانوي Direct3D القديم المستخدم في نماذج التظليل Direct3D 1 و2 و3.
  • يضيف libvkd3d ميزات Direct3D 12 مثل التوقيعات الجذرية، وعدادات العرض خارج الترتيب، وعوامل تشغيل الدمج المنطقي للإخراج، ووضع معالجة النسيج المرآة مرة واحدة. تمت إضافة بنية vkd3d_host_time_domain_info.

المصدر: opennet.ru

إضافة تعليق