التنزيلات
الرعاية
القضايا المعروفة
الاختلافات بين حزم MSVC وMinGW
محتويات حزمة Mingw وMSVC
المكتبات المشتركة المشتركة بين OpenGL وOpenGL ES
Microsoft CLonD3D12 وGLonD3D12 وDozen Vulkan driver والتبعية المشتركة D3D12 VA-API
برامج تشغيل OpenGL لسطح المكتب
برنامج تشغيل العرض خارج الشاشة OpenGL
برامج تشغيل OpenGL ES ومكتبة EGL
السائقين فولكان
برامج تشغيل OpenCL والمترجمين والواجهات الخلفية
برامج تشغيل Direct3D والمكتبات والأدوات
برامج تشغيل VA-API
مكتبة وأدوات الاختبار
حزم التطوير
حزم التصحيح
قم ببناء Mesa3D بنفسك
التثبيت والاستخدام
ملاحظات الاستخدام
إلغاء تثبيت Mesa3D
توافق البرامج القديمة
تجاوز تكوين سياق OpenGL
كيفية ضبط متغيرات البيئة
إصدارات Mesa 24.2.6 باستخدام Visual Studio وMSYS2 Mingw-w64 متاحة الآن في قسم الإصدارات.
حصل مشروع mesa-dist-win على رعاية تم تمديدها حتى الأول من نوفمبر 2024. وتتكون الرعاية من خادم VPS مجاني على العقدة الفرنسية لاستخدامه كجهاز إنشاء مزود بذاكرة وصول عشوائي (RAM) سعة 12 جيجابايت و6 خيوط AMD EPYC 7763 و150 جيجابايت NVMe SSD من Petrosky، شركة استضافة خادم افتراضي خاص بفضل @Directox01.
هذه قائمة بجميع المشكلات التي تتم مواجهتها بشكل شائع مع الحلول أو الحلول البديلة المعروفة. يتأثر إصدار محدد فقط بمجموعة فرعية منها.
خطأ libgallium_wgl.dll
مفقود في Mesa3D OpenGL ES وبرامج تشغيل OpenGL لسطح المكتب
تمت مواجهة هذا مع عمليات النشر الحالية لكل تطبيق والتي تم إجراؤها باستخدام 21.2.x أو أقدم عند التحديث إلى 21.3.0 أو أحدث. ما عليك سوى إعادة عملية نشر التطبيق لإصلاحها. لقد كان فصل برنامج Gallium megadriver عن opengl32.dll
تغييرًا غزويًا للغاية ولم يكن لدى عمليات النشر الحالية لكل تطبيق فرصة ضده. إذا كنت لا تتذكر ما إذا كان البرنامج المتأثر هو 32 بت أو 64 بت، فانقر بزر الماوس الأيمن على اختصار opengl32.dll
في المجلد الذي يوجد به البرنامج القابل للتنفيذ وحدد موقع الملف المفتوح. إذا كان الموقع ينتهي بـ x64، فهو 64 بت، وإلا فهو 32 بت.
خطأ libEGL.dll
مفقود في Mesa3D OpenGL ES
تمت مواجهة هذا مع عمليات النشر الحالية لكل تطبيق والتي تم إجراؤها باستخدام 21.2.x أو أقدم عند التحديث إلى 21.3.0 أو أحدث. ما عليك سوى إعادة عملية نشر التطبيق لإصلاحها. لقد كان دعم EGL بمثابة تغيير غزوي للغاية ولم يكن لدى عمليات النشر الحالية لكل تطبيق فرصة ضده. إذا كنت لا تتذكر ما إذا كان البرنامج المتأثر هو 32 بت أو 64 بت، فانقر بزر الماوس الأيمن على اختصار opengl32.dll
في المجلد الذي يوجد به البرنامج القابل للتنفيذ وحدد موقع الملف المفتوح. إذا كان الموقع ينتهي بـ x64، فهو 64 بت، وإلا فهو 32 بت.
خطأ libvulkan-1.dll
مفقود مع Mesa3D opengl32.dll
من حزمة إصدار MinGW
تتأثر فقط الإصدارات السابقة للإصدار 22.2.0 والتي تم إنشاء برنامج تشغيل zink لها باستخدام مجموعة الحزم MSYS2 MinGW-W64 vulkan-devel. قم بتشغيل fix-libvulkan-1.dll-missing-error.cmd
من حزمة إصدار MinGW لتصحيحه. تدعم هذه الأداة التنفيذ غير المراقب عبر خيار سطر الأوامر auto
. يتم تجميع هذه الأداة فقط في حزمة إصدار MinGW عند الحاجة إليها وإلا فسيتم فقدها عمدًا. يتم اتخاذ قرار استخدام Vulkan SDK عبر LunarG بناءً على ما يأتي مع محمل ورؤوس أحدث.
تتطلب الثنائيات 64 بت في كل من حزم MSVC وMinGW وحدة معالجة مركزية مزودة بـ AVX على الرغم من أنه لا ينبغي لها ذلك
لم تعد هذه مشكلة اعتبارًا من Mesa 22.0 أو الأحدث. سبب هذه المشكلة هو وجود ثنائيات 64 بت تحتوي على برنامج تشغيل swr والذي يسرب استخدام AVX إلى التعليمات البرمجية الشائعة. تم الإبلاغ عن هذا الخطأ هنا وهنا وهنا.
يعتمد Mesa opengl32.dll
من حزمة MinGW على وقت تشغيل Vulkan منذ 21.0.0
تم إصلاح هذه المشكلة في الإصدار 22.2.0 من خلال احتواء هذا المتطلب للاستخدام الصريح لبرنامج التشغيل zink. هذا هو الانحدار الأولي الذي تم تقديمه عندما تم تصحيح برنامج تشغيل zink لدعم Windows.
يمكن أن تتصرف البرامج كما لو أنه لا يوجد دعم لبرنامج OpenGL عند استخدام Mesa opengl32.dll
منذ 21.0.0
وهذا ليس عيبًا ولكنه تغيير في سلوك Mesa عندما يتم تكوين متغيرات البيئة بشكل خاطئ. يحدث هذا عادةً عند اختيار برنامج تشغيل Mesa غير الموجود في حزمة الإصدار المستخدمة أو فشل في التهيئة بسبب عدم تلبية النظام المضيف لمتطلبات الأجهزة أو افتقاره إلى التبعيات. يجب أن تساعد قراءة الاختلافات بين حزم MSVC وMinGW ومحتويات حزمة Mingw وMSVC في استكشاف الأخطاء وإصلاحها.
ملاحظات مهمة حول الأخطاء المتعلقة بفقدان libglapi.dll
قد تواجهها مع البرامج التي تستخدم أي برنامج تشغيل Mesa3D لسطح المكتب OpenGL عبر أداة نشر لكل تطبيق، ولا يتأثر النشر على مستوى النظام. قد تواجهها إذا تم نشر كل تطبيق قبل تقديم دعم glapi المشترك. أصبح glapi المشترك متاحًا باستمرار في حزمتي MSVC وMinGW منذ 20.0.2.
لتصحيح هذه الأخطاء بغض النظر عن السبب، يجب عليك إعادة النشر. إذا كنت لا تتذكر ما إذا كان البرنامج المتأثر هو 32 بت أو 64 بت، فانقر بزر الماوس الأيمن على اختصار opengl32.dll
في المجلد الذي يوجد به البرنامج القابل للتنفيذ وحدد موقع الملف المفتوح. إذا كان الموقع ينتهي بـ x64، فهو 64 بت، وإلا فهو 32 بت.
تنطبق نفس المشكلة مع نفس الحل على osmesa إذا كنت تقوم بالترقية من 17.3.5.501-1 أو أقدم.
تتطلب حزمة MinGW وحدة معالجة مركزية مزودة بـ SSSE3 مع الاستفادة من تعزيز الأداء بنسبة 3-5% مع برامج تشغيل عرض البرامج؛
d3d10sw الذي تم تقديمه في 21.2.0 متوفر فقط في حزمة MSVC.
إذا كنت بحاجة إلى الترحيل من ثنائيات Mingw إلى MSVC، فأنت تحتاج فقط إلى استبدال مجلد Mesa الثنائي من حزمة Mingw بنظير MSVC.
يتم شحن برامج تشغيل Mesa3D التالية وعناصر البناء في كل إصدار:
مكتبة GLAPI المشتركة. اسم الملف: libglapi.dll
. وجوده مطلوب عند توفير دعم كل من OpenGL وOpenGL ES. يعتمد جهاز عرض Mesa3D خارج الشاشة وجميع برامج تشغيل Mesa3D OpenGL وOpenGL ES عليه عند وجوده. منذ 20.0.2 أصبح متوفرًا في حزمتي MSVC وMSYS2 Mingw-w64.
برنامج غاليوم OpenGL Megadriver. اسم الملف: libgallium_wgl.dll
. عند وجوده، فإنه يحتوي على كافة برامج تشغيل Mesa3D لسطح المكتب OpenGL بدلاً من opengl32.dll
. ظهرت لأول مرة في 21.3.0. تعتمد عليها مكتبة Mesa3D EGL وبرامج تشغيل OpenGL ES في حالة وجودها.
وقت تشغيل Mesa3D WGL. اسم الملف : opengl32.dll
. يستخدم هذا لاحتواء جميع برامج تشغيل Mesa3D لسطح المكتب OpenGL ويعتمد عليها OpenGL ES، ولكن منذ 21.3.0 تم تقليله إلى مجرد أداة تحميل لبرنامج Gallium OpenGL megadriver، لذلك تعتمد عليه فقط البرامج التي تستخدم برامج تشغيل Mesa3D لسطح المكتب OpenGL عبر النشر لكل تطبيق. الآن.
DirectX IL لإعادة التوزيع. اسم الملف : dxil.dll
. يتم توفير هذا الثنائي القابل لإعادة التوزيع في Windows SDK وDirectX Shader Compiler ويتم تعبئته أثناء عملية الإصدار. تقوم أدوات النشر بتثبيته حسب الضرورة.
llvmpipe. llvmpipe هو عارض برنامج OpenGL لسطح المكتب مصمم كبديل عندما يكون تسريع الأجهزة غير ممكن. يمكنه فقط التعامل مع الألعاب الخفيفة جدًا والأداء الجيد. هذا هو برنامج تشغيل Mesa3D Desktop OpenGL الافتراضي عندما يكون GlonD3D12 إما غير متاح أو يفشل في التحميل. إنه متاح لكل من الإصدارين x86 وx64 كجزء من حزمة Mesa3D Desktop OpenGL opengl32.dll
أو libgallium_wgl.dll
إذا كان الأخير متاحًا. عندما لا يكون برنامج التشغيل الافتراضي، حدده عن طريق تعيين متغير البيئة GALLIUM_DRIVER=llvmpipe
.
softpipe هو تطبيق مرجعي لعارض برامج Desktop OpenGL دون التركيز على أداء الألعاب. إنه متاح لكل من الإصدارين x86 وx64 كجزء من حزمة Mesa3D Desktop OpenGL opengl32.dll
أو libgallium_wgl.dll
إذا كان الأخير متاحًا. حدده عن طريق تعيين متغير البيئة GALLIUM_DRIVER=softpipe
.
GlonD3D12. إنه متاح لكل من x86 وx64 في حزمة MSVC ومنذ 22.2.0 في حزمة MinGW بالإضافة إلى جزء من حزمة Mesa3D Desktop OpenGL opengl32.dll
أو libgallium_wgl.dll
إذا كان الأخير متاحًا وقبل 22.3.0 كـ openglon12.dll
مستقل أيضًا. بالإضافة إلى الحاجة رسميًا إلى Windows 10 v10.0.19041.488 أو أحدث، فإنه يعتمد أيضًا على DirectX IL لإعادة التوزيع - لتحميل dxil.dll
، والذي يمكن تثبيته عبر أدوات النشر. عندما يكون متاحًا وإذا أمكن تحميله، فهذا هو برنامج تشغيل Mesa3D Desktop OpenGL الافتراضي على أنظمة D3D12 GPU المتسارعة. يعمل برنامج التشغيل هذا الذي تم تقديمه في 21.0.0 كملف يُرجع مكالمات D3D12 API. وبسبب هذه الطبيعة فإنه يمكن استخدام تسريع GPU. إذا لم يتم تحديده افتراضيًا، فيمكنك اختباره باستخدام عارض برنامج Direct3D WARP المدمج في Windows عن طريق تعيين GALLIUM_DRIVER=d3d12
و LIBGL_ALWAYS_SOFTWARE=1
متغيرات البيئة. لا تحتاج النسخة المستقلة إلى تعيين GALLIUM_DRIVER=d3d12
ولا يمكن تثبيتها إلا عبر أداة النشر على مستوى النظام. تحل حزمة GLonD3D12 وMesa3D Desktop OpenGL المستقلة محل بعضها البعض عند استخدام أداة النشر على مستوى النظام ولكن يمكنك عكسها في أي وقت.
الزنك. تم تقديم برنامج التشغيل هذا في حزمة MinGW في 21.0.0 وحزمة MSVC في 21.2.0 وهو متاح لكل من x86 وx64 كجزء من حزمة Mesa3D Desktop OpenGL opengl32.dll
أو libgallium_wgl.dll
إذا كان الأخير متاحًا. على غرار GlonD3D12، فهو يعمل كغلاف يعيد مكالمات Vulkan API. نظرًا لهذه الطبيعة، فإنه يستخدم تسريع GPU بشكل افتراضي ولكنه يدعم عرض البرامج أيضًا. حدده عبر GALLIUM_DRIVER=zink
متغير البيئة، لكن لاحظ أنه يتطلب جهاز Vulkan واحدًا على الأقل ومحمل/وقت تشغيل Vulkan للتهيئة. تجاهل zink الأجهزة من نوع Vulkan CPU بشكل افتراضي حتى 22.1.0. يستخدم في الوقت الحاضر نظام أولوية يقوم تلقائيًا بتحديد جهاز من نوع Vulkan CPU في حالة عدم وجود جهاز من نوع Vulkan ذو أولوية أعلى. يمكنك اختبار zink باستخدام الأجهزة من نوع Vulkan CPU فقط عن طريق تعيين LIBGL_ALWAYS_SOFTWARE=1
(Mesa 22.1.0 والأحدث) أو ZINK_USE_LAVAPIPE=true
(تم إهماله في Mesa 22.1.0).
swr. لم يعد برنامج التشغيل هذا متوفرًا في Mesa 22.0 والإصدارات الأحدث. أسماء الملفات: swrAVX.dll
، swrAVX2.dll
، swrSKX.dll
، swrKNL.dll
. على الرغم من أنه موجود خارج حزمة Mesa3D Desktop OpenGL opengl32.dll
أو libgallium_wgl.dll
إذا كان الأخير متاحًا، فإنه لا يزال يعتمد عليه. تم تحسين برنامج تشغيل عرض برنامج OpenGL لسطح المكتب البديل الذي طورته شركة Intel لبرامج التصور. إنه متوفر في حزمة MSVC ومنذ 20.1.7 في حزمة MinGW أيضًا. وهو يدعم فقط x64، أما x86 فهو غير مدعوم رسميًا. يوجد حاليًا 4 ملفات DLL، يتم تحميل واحدة فقط بناءً على ما يمكن أن تفعله وحدة المعالجة المركزية للمستخدم. يمكنك التبديل إلى swr عن طريق ضبط قيمة متغير البيئة GALLIUM_DRIVER على swr.
osmesa. اسم الملف : osmesa.dll
. متاح لكل من x86 وx64. يتم استخدام برنامج التشغيل هذا في حالات خاصة بواسطة برنامج مصمم لاستخدام رمز Mesa للعرض دون أي نوع من نظام النوافذ أو تبعية نظام التشغيل. منذ 21.0.0 بقي فقط أوسميسا غاليوم. وهو يدعم برنامج OpenGL 3.x والإصدارات الأحدث. منذ 20.0.2، يتوفر تكامل osmesa مع برامج تشغيل GLLES المستقلة في كل من حزم MSVC وMSYS2 Mingw-w64 التي تتطلب libglapi.dll
في العملية.
مكتبة إي جي إل. اسم الملف: libEGL.dll
. مكتبة Mesa3D EGL المستخدمة بواسطة برامج تشغيل OpenGL ES. ظهر هذا لأول مرة في 21.3.0 وهو متاح لتطبيقات 32 بت و64 بت في حزمتي MSVC وMSYS2. يعتمد ذلك على حزمة OpenGL لسطح المكتب opengl32.dll
أو libgallium_wgl.dll
إذا كان الأخير متاحًا.
برامج تشغيل OpenGL ES المستقلة. أسماء الملفات: libGLESv1_CM.dll
و libGLESv2.dll
. تتوفر برامج التشغيل المستقلة OpenGL ES 1.x و2.x و3.x لتطبيقات 32 بت و64 بت. منذ 20.0.2، أصبحت متوفرة في حزمتي MSVC وMSYS2 Mingw-w64. وهي تعتمد على مكتبة Mesa3D EGL إذا كانت متوفرة وحزمة OpenGL لسطح المكتب opengl32.dll
أو libgallium_wgl.dll
إذا كان الأخير متاحًا.
يتوفر برنامج تشغيل lapapipe Vulkan CPU في حزمتي MSVC وMinGW منذ 21.1.0. أسماء الملفات: lvp_icd.x86_64.json
، lvp_icd.x86.json
، vulkan_lvp.dll
. لاحظ أن بعض البرامج قد تتجاهل الأجهزة من نوع Vulkan CPU عن قصد. للحصول على معلومات حول كيفية النشر، راجع ملاحظات الاستخدام.
يتوفر برنامج تشغيل Microsoft Dozen Vulkan منذ 22.1.0 في حزمة MSVC ومنذ 22.2.0 في حزمة MinGW أيضًا. يعتمد برنامج التشغيل هذا على D3D12 API ليعمل ويمكنه استخدام تسريع GPU على الأنظمة المدعومة. أسماء الملفات: dzn_icd.x86_64.json
، dzn_icd.x86.json
، vulkan_dzn.dll
. للحصول على معلومات حول كيفية النشر، راجع ملاحظات الاستخدام.
لم يعد برنامج تشغيل Vulkan لرسومات AMD (radv) متاحًا منذ 22.1.0 لكل اقتراح @zmike لأنه لن يعمل في أي وقت قريب. كان RADV متاحًا في حزمتي MSVC وMinGW منذ 21.2.0. كان ثنائي 32 بت متاحًا منذ Mesa 22.0. أسماء الملفات: radeon_icd.x86_64.json
و radeon_icd.x86.json
و libvulkan_radeon.dll
و vulkan_radeon.dll
. للحصول على معلومات حول كيفية النشر، راجع ملاحظات الاستخدام.
مكدس Microsoft OpenCL. أسماء الملفات: clon12compiler.dll
(مترجم)، openclon12.dll
(ICD) و WinPixEventRuntime.dll
(تبعية x64 فقط). هذه المكونات المقدمة في 21.0.0 تم توفيرها أخيرًا بواسطة mesa-dist-win منذ 21.3.0 (المترجم فقط) و21.3.6-2 على التوالي. برنامج التشغيل CLonD3D12 متاح كـ OpenCL ICD. للحصول على معلومات حول كيفية النشر، راجع ملاحظات الاستخدام. يتطلب CLonD3D12 رسميًا نظام التشغيل Windows 10 v10.0.19041.488 أو إصدار أحدث ويعتمد على DirectX IL لإعادة التوزيع - لتحميل dxil.dll
، والذي يمكن تثبيته عبر أدوات النشر. يعمل CLonD3D12 كملف يُرجع مكالمات D3D12 API. نظرًا لهذه الطبيعة، يمكن استخدام تسريع D3D12 GPU إذا كان متاحًا وإلا فسيتم استخدام عرض برنامج WARP المدمج في Windows. عند استخدام WARP CLonD3D12 للإعلان عن CL_DEVICE_TYPE_GPU، لكن هذا تغير في 23.0.0 إلى CL_DEVICE_TYPE_CPU، راجع microsoft/OpenCLOn12#19. تتجاهل بعض البرامج برامج التشغيل التي تم تعيين CL_DEVICE_TYPE_CPU عليها عن قصد. يمكن استعادة السلوك القديم قبل 23.0.0 منذ Mesa 24.0.3 عن طريق تعيين قيمة متغير البيئة CLON12_WARP_IS_HARDWARE
على 1.
تمت إزالة مكدس Clover OpenCL من حزمة الإصدار في 22.1.1 حتى يتم الانتهاء من دعم Windows لأنه غير قابل للاستخدام حاليًا. أسماء الملفات: MesaOpenCL.dll
(ICD)، و OpenCL.dll
(وقت التشغيل المستقل)، و pipe_swrast.dll
(محمل الأنابيب). يمكن نشر وقت التشغيل باستخدام أداة نشر لكل تطبيق منذ 21.3.7 أو على الإصدارات الأقدم عبر النسخ واللصق جنبًا إلى جنب مع جميع أدوات تحميل الأنابيب المتاحة التي يعتمد عليها. أثناء النشر، يخفي وقت التشغيل جميع أجهزة OpenCL ICDs الأخرى الموجودة على النظام ويسمح للبرنامج فقط باستخدام Mesa3D clover باعتباره برنامج تشغيل OpenCL الوحيد. للحصول على معلومات حول كيفية نشر ICD، راجع ملاحظات الاستخدام.
يتوفر عارض برنامج D3D10 في حزمة MSVC منذ 21.2.0. اسم الملف: d3d10sw.dll
. يعد هذا بديلاً بديلاً لـ Microsoft WARP وللأسف لا توجد طريقة نظيفة لنشره.
تتوفر أداة ومكتبة SPIR-V إلى DXIL في حزمة MSVC منذ 21.0.0 ومنذ 22.2.0 في حزمة MinGW أيضًا. أسماء الملفات: libspirv_to_dxil.dll
و spirv_to_dxil.dll
و spirv2dxil.exe
.
سائق VA-API D3D12. أسماء الملفات: vaon12_drv_video.dll
. تم توفير برنامج التشغيل هذا في 22.3.0. تمامًا مثل GlonD3D12، وCLonD3D12، وعشرات، يعد هذا برنامج تشغيل ذو طبقات يعمل أعلى Direct3D 12 API حتى يتمكن من استخدام تسريع GPU إذا كان ذلك متاحًا. تم توثيق تعليمات النشر بواسطة Microsoft. تم تحديث أداة نشر كل تطبيق للمساعدة في هذه العملية.
واجهة الغاليوم الخام. تمت إزالة هذا المكون المهمل في Mesa3D 22.3.0. أسماء الملفات: graw.dll
، graw_null.dll
. هذا برنامج تشغيل غاليوم وهمي بدون أي واجهة برمجة تطبيقات للرسومات تُستخدم بشكل أساسي للاختبار. متوفر لكل من الإصدارين x86 وx64 وبالكامل (مع دعم نظام النوافذ) والإصدارات مقطوعة الرأس (بدون نافذة). منذ 20.0.2، يتوفر كل من الإصدارين المحتويين على إطارات وبدون نوافذ في حزمتي MSVC وMSYS2 Mingw-w64.
جناح الاختبار. العديد من اختبارات الوحدة القابلة للتنفيذ.
توجد الرؤوس والمكتبات لكل من الإصدارين 32 بت و64 بت في أرشيف منفصل يسمى حزمة التطوير.
بدءًا من 22.2.0، تتوفر حزمة معلومات تصحيح أخطاء MSVC التي تحتوي على رموز تصحيح الأخطاء بتنسيق PDB وتؤكد MinGW أن حزمة البناء المحسنة لتصحيح الأخطاء متاحة. يمكن استخدام ثنائيات التصحيح MinGW كبدائل مباشرة لنظيراتها في الإصدار. مع استخدام البرنامج لكل عملية نشر للتطبيق، يجب أن يكون ذلك سلسًا، ولكن بالنسبة للنشر على مستوى النظام، تكون إعادة النشر ضرورية للتبديل من الإصدار إلى إصدارات تصحيح الأخطاء والعكس صحيح. لمزيد من المعلومات حول تصحيح أخطاء MinGW، راجع debug/mingw-start-debugging.sh
تعليمات البناء، إذا كنت تريد تكرار تصميماتي، متوفرة هنا.
اختر أولاً بين حزمة Mingw وMSVC. راجع قسم الاختلافات بين حزم MSVC وMinGW للحصول على التفاصيل. قبل استخراج حزمة الإصدار، أغلق كافة البرامج التي تستخدم Mesa إن وجدت قيد التشغيل. بعد الاستخراج، سيكون لديك إمكانية الوصول إلى خيارين للنشر، وكلاهما موجود في الدليل الذي قمت بتثبيت Mesa فيه. تحتوي كلتا الأداتين المساعدتين للنشر على آلية البدء حتى تتمكن من إجراء جميع عمليات النشر التي تحتاجها في جلسة واحدة. تدعم أدوات النشر فقط مكونات OpenGL وOpenGL ES الخاصة بـ Mesa3D بالإضافة إلى OpenCL clover المستقل.
أداة نشر على مستوى النظام. على الرغم من أنه مخصص للأنظمة التي تفتقر إلى دعم OpenGL المسرّع للأجهزة مثل الأجهزة الافتراضية في البيئات السحابية، فإنه يمكن استخدامه أيضًا على أي نظام Windows لاستبدال برنامج البريد الوارد الذي يعرض برنامج تشغيل OpenGL 1.1 وتوسيع دعم OpenGL لحالات الاستخدام حيث لا يتوفر تسريع OpenGL للأجهزة مثل اتصالات RDP . نظرًا لوجود مشكلات محتملة في أجهزة Virtualbox الافتراضية التي تعمل بنظام التشغيل Windows، يوصى بتعطيل التسريع ثلاثي الأبعاد في مثل هذه الأجهزة الافتراضية إذا تم تثبيت برنامج تشغيل Mesa3D لسطح المكتب OpenGL بداخلها باستخدام أداة النشر على مستوى النظام، راجع رقم 9.
أداة نشر لكل تطبيق، تُستخدم لنشر Mesa3D لبرنامج واحد بغض النظر عن وجود دعم OpenGL المسرَّع بالأجهزة أم لا. تظل تغييرات أداة النشر لكل تطبيق مستمرة ويتم الاحتفاظ بها عبر عمليات الترقيات وإعادة التثبيت. تساعدك أداة النشر لكل تطبيق على توفير مساحة التخزين وتجعل الأمور أسهل حيث لن تضطر إلى نسخ ملفات DLL يدويًا من دليل تثبيت Mesa لأنها تنشئ روابط رمزية لأي برامج تشغيل Mesa التي تختار استخدامها. يضمن هذا السلوك أن كافة البرامج التي تستخدم Mesa تستخدم نفس الإصدار المحدث. تطلب أداة النشر لكل تطبيق مسارًا إلى الدليل الذي يحتوي على التطبيق القابل للتنفيذ، واسم ملف التطبيق القابل للتنفيذ (اختياري، يمكن أن يظل فارغًا ولكن إذا تم تحديده، فقد يجبر بعض البرامج على استخدام Mesa3D عندما لا تفعل ذلك)، إذا كان التطبيق 64 بت أو 32 بت وبرامج التشغيل التي تحتاجها. يتم تمييز أسماء تطبيقات 32 بت في "إدارة المهام" أثناء التشغيل. ستستخدم معظم التطبيقات Mesa بغض النظر عن إمكانيات وحدة معالجة الرسومات، ولكن قد تكون بعض التطبيقات ذكية بما يكفي لتحميل OpenGL من دليل النظام فقط. من خلال توفير اسم ملف التطبيق، يتم إنشاء ملف .local في محاولة لإجبار التطبيق على استخدام Mesa3D عندما لا يرغب في ذلك. أيضًا، يمكن استخدام Mesainjector الخاص بـ Federico Dossena لحل هذه المشكلة أيضًا. بناء تعليمات لMesainjector.
قد تحتاج التطبيقات القديمة من أوائل 200x والأقدم إلى مجموعة متغيرات البيئة MESA_EXTENSION_MAX_YEAR، راجع قسم توافق البرامج القديمة.
قد تحتاج التطبيقات التي تتطلب OpenGL 3.2 أو أحدث إلى تجاوز تكوين سياق OpenGL.
تتوفر هنا أمثلة على تجاوز تكوين سياق OpenGL والتبديل إلى برنامج تشغيل آخر وتوافق التطبيقات القديمة.
وثائق Mesa3D الرسمية متاحة هنا.
يتم نشر OpenCL ICDs من خلال تسجيل ملف ICD مع وقت تشغيل نظام OpenCL (على سبيل المثال opencl.dll
من Windowssystem32
). إذا لم يكن لديك وقت تشغيل OpenCL للنظام، فيمكنك الحصول عليه عن طريق تثبيت وقت تشغيل Intel OpenCL CPU. إنه يعمل مع وحدات المعالجة المركزية AMD أيضًا.
يتم النشر لبرامج تشغيل Vulkan من خلال وقت تشغيل Vulkan باستخدام طريقة اكتشاف ICD. لاحظ أن وقت تشغيل Vulkan يأتي مزودًا ببرامج تشغيل الرسومات التي تدعم Vulkan، لذا قد لا يكون تثبيته يدويًا ضروريًا.
قم بتشغيل النشر على مستوى النظام وإجراء عملية إلغاء التثبيت إذا كانت متوفرة، ثم قم بالخروج؛
تنزيل وتشغيل أداة كل شيء (يجب أن تعمل أي نكهة)؛
تشغيل كل أداة نشر تطبيق وتركها قيد التشغيل؛
في أداة كل شيء، في حقل النص ضمن القائمة، أدخل libgallium_wgl.dll attrib:L
واستمر في تشغيل أداة كل شيء؛
لكل نتيجة بحث في أداة "كل شيء":
افتح موقعه في Windows Explorer عبر خيار قائمة السياق Open Path أو Open File location؛
ابحث عن ملفات *.local وقم بإزالتها، ولكن فقط إذا كنت متأكدًا من أنك حددت اسم ملف أثناء النشر إلى ذلك الموقع؛
نسخ الموقع من شريط العناوين وإدخاله في أداة نشر التطبيق؛
أرسل لا لجميع عمليات النشر حتى يُطلب منك إجراء المزيد من عمليات النشر، أرسل نعم هناك.
كرر الخطوتين 4 و5 باستخدام أسماء ملفات osmesa.dll وgraw.dll على التوالي بنفس الطريقة التي تم اتباعها مع libgallium_wgl.dll؛
قريب من نشر التطبيق وأدوات كل شيء؛
التراجع عن أي تغييرات في السجل وأي متغيرات بيئة تقوم بتكوين وقت تشغيل Vulkan لاستخدام أي من برامج تشغيل Mesa3D Vulkan، راجع ملاحظات الاستخدام للحصول على أدلة حول التغييرات المحتملة التي قد يتعين عليك الرجوع عنها؛
كرر الخطوة 8، ولكن بالنسبة لـ OpenCL.
تحذير: قد تحتاج البرامج التي تمت الكتابة فوق ملفات معينة لها بواسطة أداة نشر التطبيق إلى إعادة التثبيت/الإصلاح. تكتشف أداة نشر كل تطبيق سيناريو النشر هذا وتحذر منه منذ 22.0.0.
قد تحتاج التطبيقات القديمة من أوائل 200x والأقدم إلى تعيين متغير البيئة MESA_EXTENSION_MAX_YEAR لتجنب تجاوز سعة المخزن المؤقت. ويتوقع رقم السنة كقيمة، والأكثر استخدامًا هو 2001. فهو يقوم بقص قائمة الملحقات التي تم إرجاعها بواسطة Mesa3D إلى الملحقات التي تم إصدارها حتى وتشمل السنة المقدمة حيث يتم فرز قائمة ملحقات Mesa3D حسب السنة.
على سبيل المثال: set MESA_EXTENSION_MAX_YEAR=2001
. راجع كيفية تعيين متغيرات البيئة.
مع إصدار OpenGL 3.1، تمت إزالة العديد من الميزات التي تم تمييزها على أنها مهملة في OpenGL 3.0 ومنذ إطلاق OpenGL 3.2 يُعرف فرع مواصفات OpenGL هذا باسم ملف تعريف OpenGL الأساسي. أيضًا في OpenGL 3.3، تم تقديم فرع جديد من مواصفات OpenGL المعروف باسم السياق المتوافق للأمام والذي يزيل ميزات OpenGL 3.0 المهملة التي لم تتم إزالتها في OpenGL 3.1. نفذت معظم برامج التشغيل الخاصة الاستثناءات من هذه التغييرات المقدمة في شكل ملحق توافق GL_ARB_لـ OpenGL 3.1 وسياقات التوافق لـ OpenGL 3.2 وما فوق. نظرًا للتعقيد وخاصة الافتقار إلى اختبارات التنفيذ الصحيحة لسياقات التوافق والتوافق GL_ARB، اختار مطورو Mesa3D تأجيل العمل في هذا المجال حتى يقدم Mesa 18.1 دعم توافق GL_ARB ثم يدعم Mesa 21.3 سياقات التوافق إلى OpenGL 4.5 لـ llvmpipe. في الختام، فإن البرامج التي تطلب سياق توافق OpenGL لن تتجاوز OpenGL 3.0 لـ Mesa 18.0، و3.1 لـ Mesa 18.1 و4.5 لـ Mesa 21.3 والأحدث. لسوء الحظ، ينتشر هذا النوع من البرامج على نظام التشغيل Windows حيث يميل المطورون إلى تجنب استخدام علامات السياق التي يتطلبها الملف الشخصي الأساسي. لحسن الحظ، يوفر Mesa3D آلية لتجاوز سياق OpenGL المطلوب. هناك متغيران للبيئة يتجاوزان تكوين سياق OpenGL:
MESA_GL_VERSION_OVERRIDE
يتم استخدامه لتحديد إصدار سياق OpenGL ونوعه. فإنه يتوقع قيمة بالتنسيق التالي
OpenGLMajorVersion.OpenGLMinorVersion{FC|COMPAT].
يعنيFC سياق متوافق إلى الأمام. COMPAT يعني سياق التوافق لـ OpenGL 3.2 والإصدارات الأحدث ويتم تمكين توافق GL_ARB لـ OpenGL 3.1. غياب أي سلسلة بعد رقم الإصدار يعني أن نوع السياق الافتراضي Mesa3D لإصدار OpenGL المحدد هو كما يلي: الميزات المهملة ممكنة لـ OpenGL 3.0، وGL_ARB_compatibility ممكن لـ OpenGL 3.1 منذ Mesa 18.1 والملف الشخصي الأساسي لـ OpenGL 3.2 وما فوق. أمثلة: 3.3FC يعني السياق المتوافق مع OpenGL 3.3، 3.1COMPAT يعني OpenGL 3.1 مع GL_ARB_compatibility، 3.2 يعني ملف تعريف OpenGL 3.2 الأساسي. القيمة الافتراضية لبرنامج تشغيل llvmpipe هي 4.5COMPAT لـ Mesa>=21.3 و3.1COMPAT لـ Mesa>=18.1 و3.0COMPAT لـ Mesa<=18.0.
الميزة المهمة جدًا التي يوفرها هذا المتغير هي إمكانية تكوين سياق OpenGL غير مكتمل. يمكن للبرامج فقط طلب ما يصل إلى أعلى سياق OpenGL مع شهادة Khronos كمكتمل من برنامج تشغيل Mesa3D قيد الاستخدام. حاليًا، تم اعتماد llvmpipe لـ OpenGL 4.5 في جميع ملفات تعريف OpenGL. حاليًا، تم اعتماد swr وGLonD3D12 لـ OpenGL 3.3 في الملف الشخصي الأساسي/السياق المتوافق مع الأمام و3.1 في ملف تعريف التوافق. يعتمد دعم zink OpenGL على برنامج تشغيل Vulkan الأساسي. نظرًا لأنه تم التعرف على قيم Mesa 17.3 المخصصة لـ OpenGL 4.6.
MESA_GLSL_VERSION_OVERRIDE
يستخدم لتحديد إصدار لغة التظليل. القيم المدعومة هي أرقام الإصدارات المحولة إلى عدد صحيح: 110، 120، 130، 140. 150، 330، 400، 410، 420، 430، 440، 450 و460. يتم التعرف على القيمة 460 فقط منذ Mesa 17.3. القيمة 130 على سبيل المثال تتطابق مع GLSL 1.30. من الجيد دائمًا الحفاظ على مزامنة سياق OpenGL وإصدارات لغة التظليل لتجنب ارتباك البرامج الذي قد يؤدي إلى حدوث أعطال أو خلل. يمكن أن يحدث هذا لأن معظم التطبيقات تعتمد على سلوك برامج التشغيل الخاصة المتمثلة في مزامنة إصدارات OpenGL وGLSL. هنا هو جدول الارتباط OpenGL - GLSL. القيم الافتراضية لـ llvmpipe: 450 لـ Mesa 21.3 و140 لـ Mesa 18.1 و130 لـ Mesa 18.0 إذا كان MESA_GL_VERSION_OVERRIDE غير محدد أو مطابق لملفات التعريف الأساسية بخلاف ذلك.
في نظام التشغيل Windows، أسهل طريقة لتعيين متغيرات البيئة هي كتابة ملفات دفعية. ستحتاج على الأرجح إلى القيام بذلك:
لكل تطبيق يتطلب إصدارات OpenGL وGLSL أعلى من تلك التي يتم عرضها بواسطة برنامج تشغيل Mesa3D المحدد افتراضيًا؛
إذا كنت تريد تحديد برنامج تشغيل غير افتراضي لبرنامج OpenGL لسطح المكتب؛
إذا كنت بحاجة إلى تقليم قائمة الملحقات لتوافق البرامج القديمة.
ما عليك سوى فتح برنامج "المفكرة" وكتابة البرنامج النصي الدفعي. عند الحفظ، قم بإنهاء اسم الملف بـ .bat أو .cmd، وقم بتغيير الحفظ كنوع لجميع الملفات وتغيير موقع الحفظ إلى حيث يوجد التطبيق القابل للتنفيذ. إذا كانت لديك بعض المهارات في استخدام البرامج النصية المجمعة، فيمكنك تغيير الدليل الحالي أثناء تنفيذ البرنامج النصي باستخدام أمر القرص المضغوط مما يفتح إمكانية حفظ البرنامج النصي في أي مكان تريده كما هو موضح في أمثلة rpcs3 وGPU Caps Viewer. يتوفر هنا توثيق معظم متغيرات البيئة التي تستخدمها Mesa. الأمثلة الكاملة متاحة هنا.
يمكنك تعيين متغيرات بيئة متعددة على نفس البرنامج النصي الدفعي لخلط الوظائف التي يوفرها Mesa3D.