Unduhan
Sponsor
Masalah yang diketahui
Perbedaan antara paket MSVC dan MinGW
Isi Paket Mingw dan MSVC
Pustaka bersama umum OpenGL dan OpenGL ES
Microsoft CLonD3D12, GLonD3D12, driver Dozen Vulkan dan ketergantungan umum D3D12 VA-API
Driver Desktop OpenGL
Driver rendering di luar layar OpenGL
Driver OpenGL ES dan perpustakaan EGL
Driver Vulkan
Driver OpenCL, kompiler dan backend
Driver, perpustakaan, dan alat Direct3D
Driver VA-API
Menguji perpustakaan dan alat
Paket pengembangan
Paket debug
Bangun Mesa3D sendiri
Instalasi dan penggunaan
Catatan penggunaan
Copot pemasangan Mesa3D
Kompatibilitas perangkat lunak lama
Penggantian konfigurasi konteks OpenGL
Cara mengatur variabel lingkungan
Mesa 24.2.6 yang dibangun dengan Visual Studio dan MSYS2 Mingw-w64 kini tersedia di bagian rilis.
proyek mesa-dist-win diberi sponsor yang diperpanjang hingga 1 November 2024. Sponsor terdiri dari VPS gratis di node Prancis untuk digunakan sebagai mesin build dengan RAM 12 GB, 6 thread AMD EPYC 7763 dan 150 GB NVMe SSD dari Petrosky, perusahaan hosting server pribadi virtual berkat @ Directox01.
Ini adalah daftar semua masalah yang umum ditemui dengan solusi atau solusi yang diketahui. Rilis tertentu hanya dipengaruhi oleh sebagian saja.
libgallium_wgl.dll
kesalahan hilang dengan Mesa3D OpenGL ES dan driver desktop OpenGL
Hal ini terjadi pada penerapan per aplikasi yang dibuat dengan 21.2.x atau lebih lama saat memperbarui ke 21.3.0 atau lebih baru. Ulangi saja per penerapan aplikasi untuk memperbaikinya. Pemisahan Gallium megadriver dari opengl32.dll
adalah perubahan yang sangat invasif sehingga penerapan per aplikasi yang ada tidak memiliki peluang untuk melawannya. Jika Anda tidak ingat apakah program yang terpengaruh adalah 32-bit atau 64-bit, klik kanan pada pintasan opengl32.dll
di folder tempat program yang dapat dieksekusi berada dan pilih lokasi file terbuka. Jika lokasi diakhiri dengan x64 maka itu 64-bit, jika tidak maka 32-bit.
libEGL.dll
kesalahan hilang dengan Mesa3D OpenGL ES
Hal ini terjadi pada penerapan per aplikasi yang dibuat dengan 21.2.x atau lebih lama saat memperbarui ke 21.3.0 atau lebih baru. Ulangi saja per penerapan aplikasi untuk memperbaikinya. Dukungan EGL adalah perubahan yang sangat invasif sehingga penerapan per aplikasi yang ada tidak dapat dilawan. Jika Anda tidak ingat apakah program yang terpengaruh adalah 32-bit atau 64-bit, klik kanan pada pintasan opengl32.dll
di folder tempat program yang dapat dieksekusi berada dan pilih lokasi file terbuka. Jika lokasi diakhiri dengan x64 maka itu 64-bit, jika tidak maka 32-bit.
libvulkan-1.dll
kesalahan hilang dengan Mesa3D opengl32.dll
dari paket rilis MinGW
Hanya rilis sebelum 22.2.0 yang driver zink-nya dibuat dengan grup paket vulkan-devel MSYS2 MinGW-W64 yang terpengaruh. Jalankan fix-libvulkan-1.dll-missing-error.cmd
dari paket rilis MinGW untuk memperbaikinya. Alat ini mendukung eksekusi tanpa pengawasan melalui opsi baris perintah auto
. Alat ini hanya dibundel dalam paket rilis MinGW bila diperlukan, jika tidak maka alat ini sengaja hilang. Keputusan untuk menggunakan Vulkan SDK ini melalui LunarG dilakukan berdasarkan loader dan header yang lebih baru.
Biner 64-bit dalam paket MSVC dan MinGW memerlukan CPU dengan AVX meskipun seharusnya tidak
Ini tidak lagi menjadi masalah pada Mesa 22.0 atau lebih baru. Masalah ini disebabkan oleh biner 64-bit yang berisi driver swr yang membocorkan penggunaan AVX ke dalam kode umum. Ini adalah bug upstream yang dilaporkan di sini, di sini dan di sini.
Mesa opengl32.dll
dari paket MinGW bergantung pada runtime Vulkan sejak 21.0.0
Ini telah diperbaiki di 22.2.0 dengan memuat persyaratan ini untuk penggunaan eksplisit driver zink. Ini adalah regresi hulu yang diperkenalkan ketika driver zink ditambal untuk mendukung Windows.
Program dapat berperilaku seperti tidak ada dukungan OpenGL saat menggunakan Mesa opengl32.dll
sejak 21.0.0
Ini bukan cacat melainkan perubahan perilaku Mesa ketika variabel lingkungan salah dikonfigurasi. Biasanya terjadi ketika memilih driver Mesa yang tidak ada dalam paket rilis yang digunakan atau gagal diinisialisasi karena sistem host tidak memenuhi persyaratan perangkat keras atau kurang ketergantungan. Membaca perbedaan antara paket MSVC dan MinGW serta isi Paket Mingw dan MSVC akan membantu dalam pemecahan masalah.
Catatan penting tentang kesalahan terkait dengan libglapi.dll
yang hilang
Anda mungkin mengalaminya dengan program yang menggunakan driver OpenGL desktop Mesa3D melalui alat penerapan per aplikasi, penerapan di seluruh sistem tidak terpengaruh. Anda mungkin mengalaminya jika penerapan per aplikasi dilakukan sebelum dukungan glapi bersama diperkenalkan. glapi bersama telah tersedia secara konsisten dalam paket MSVC dan MinGW sejak 20.0.2.
Untuk memperbaiki kesalahan ini apa pun penyebabnya, Anda harus menerapkan ulang. Jika Anda tidak ingat apakah program yang terpengaruh adalah 32-bit atau 64-bit, klik kanan pada pintasan opengl32.dll
di folder tempat program yang dapat dieksekusi berada dan pilih lokasi file terbuka. Jika lokasi diakhiri dengan x64 maka itu 64-bit, jika tidak maka 32-bit.
Masalah yang sama dengan solusi yang sama berlaku untuk osmesa jika Anda memutakhirkan dari 17.3.5.501-1 atau lebih lama.
Paket MinGW memerlukan CPU dengan SSSE3 dengan manfaat memberikan peningkatan kinerja 3-5% dengan driver rendering perangkat lunak;
d3d10sw yang diperkenalkan pada 21.2.0 hanya tersedia dalam paket MSVC.
Jika Anda perlu bermigrasi dari binari Mingw ke MSVC, Anda hanya perlu mengganti folder binari Mesa dari paket Mingw dengan mitra MSVC.
Driver Mesa3D dan artefak build berikut dikirimkan di setiap rilis:
Perpustakaan bersama GLAPI. Nama file: libglapi.dll
. Kehadirannya diperlukan ketika memberikan dukungan OpenGL dan OpenGL ES. Penyaji luar layar Mesa3D dan semua driver Mesa3D OpenGL dan OpenGL ES bergantung padanya saat ada. Sejak 20.0.2 tersedia dalam paket MSVC dan MSYS2 Mingw-w64.
Megadriver Gallium OpenGL. Nama file: libgallium_wgl.dll
. Saat ini berisi semua driver OpenGL desktop Mesa3D, bukan opengl32.dll
. Ini memulai debutnya pada 21.3.0. Pustaka Mesa3D EGL dan driver OpenGL ES bergantung padanya saat ada.
Waktu proses WGL Mesa3D. Nama file: opengl32.dll
. Ini biasanya berisi semua driver OpenGL desktop Mesa3D dan OpenGL ES bergantung padanya, tetapi sejak 21.3.0, driver ini dikurangi menjadi hanya menjadi pemuat untuk megadriver gallium OpenGL, jadi hanya program yang menggunakan driver OpenGL desktop Mesa3D melalui penerapan per aplikasi yang bergantung padanya Sekarang.
DirectX IL untuk redistribusi. Nama file: dxil.dll
. Biner yang dapat didistribusikan ulang ini disediakan di Windows SDK dan DirectX Shader Compiler dan dikemas selama proses rilis. Alat penerapan menginstalnya seperlunya.
llvmpipe. llvmpipe adalah penyaji perangkat lunak Desktop OpenGL yang dimaksudkan sebagai cadangan ketika akselerasi perangkat keras tidak memungkinkan. Itu hanya dapat menangani game yang sangat ringan dengan kinerja yang baik. Ini adalah driver OpenGL desktop Mesa3D default ketika GLonD3D12 tidak tersedia atau gagal dimuat. Ini tersedia untuk x86 dan x64 sebagai bagian dari bundel Mesa3D Desktop OpenGL opengl32.dll
atau libgallium_wgl.dll
jika yang terakhir tersedia. Jika ini bukan driver default, pilih dengan mengatur variabel lingkungan GALLIUM_DRIVER=llvmpipe
.
softpipe adalah implementasi referensi dari penyaji perangkat lunak Desktop OpenGL tanpa fokus pada kinerja game. Ini tersedia untuk x86 dan x64 sebagai bagian dari bundel Mesa3D Desktop OpenGL opengl32.dll
atau libgallium_wgl.dll
jika yang terakhir tersedia. Pilih dengan mengatur variabel lingkungan GALLIUM_DRIVER=softpipe
.
GlonD3D12. Ini tersedia untuk x86 dan x64 dalam paket MSVC dan sejak 22.2.0 dalam paket MinGW serta bagian dari bundel Mesa3D Desktop OpenGL opengl32.dll
atau libgallium_wgl.dll
jika yang terakhir tersedia dan sebelum 22.3.0 sebagai openglon12.dll
yang berdiri sendiri demikian juga. Selain secara resmi memerlukan Windows 10 v10.0.19041.488 atau lebih baru, ini juga bergantung pada DirectX IL untuk redistribusi - dxil.dll
untuk dimuat, yang dapat diinstal melalui alat penerapan. Jika tersedia dan dapat dimuat, ini adalah driver OpenGL desktop Mesa3D default pada sistem akselerasi GPU D3D12. Driver yang diperkenalkan pada 21.0.0 ini beroperasi sebagai pembungkus yang mengembalikan panggilan API D3D12. Karena sifatnya ini bisa menggunakan akselerasi GPU. Jika tidak dipilih secara default, Anda dapat mengujinya dengan penyaji perangkat lunak Direct3D WARP yang terpasang di Windows dengan mengatur variabel lingkungan GALLIUM_DRIVER=d3d12
dan LIBGL_ALWAYS_SOFTWARE=1
. Salinan mandiri tidak perlu mengatur GALLIUM_DRIVER=d3d12
dan hanya dapat diinstal melalui alat penerapan seluruh sistem. Bundel GLonD3D12 dan Mesa3D Desktop OpenGL yang berdiri sendiri saling menggantikan saat menggunakan alat penerapan di seluruh sistem, namun Anda dapat membalikkannya kapan saja.
seng. Driver ini diperkenalkan dalam paket MinGW di 21.0.0 dan paket MSVC di 21.2.0. Driver ini tersedia untuk x86 dan x64 sebagai bagian dari bundel Mesa3D Desktop OpenGL opengl32.dll
atau libgallium_wgl.dll
jika yang terakhir tersedia. Mirip dengan GLonD3D12, ia beroperasi sebagai pembungkus yang mengembalikan panggilan API Vulkan. Karena sifatnya ini ia menggunakan akselerasi GPU secara default tetapi juga mendukung rendering perangkat lunak. Pilih melalui variabel lingkungan GALLIUM_DRIVER=zink
, namun perhatikan bahwa ini memerlukan setidaknya 1 perangkat Vulkan dan loader/runtime Vulkan untuk menginisialisasi. zink mengabaikan perangkat jenis CPU Vulkan secara default hingga 22.1.0. Saat ini ia menggunakan sistem prioritas yang secara otomatis memilih perangkat jenis CPU Vulkan jika tidak ada perangkat jenis Vulkan dengan prioritas lebih tinggi. Anda dapat menguji zink dengan perangkat jenis CPU Vulkan hanya dengan menyetel LIBGL_ALWAYS_SOFTWARE=1
(Mesa 22.1.0 dan yang lebih baru) atau ZINK_USE_LAVAPIPE=true
(tidak digunakan lagi di Mesa 22.1.0).
swr. Driver ini tidak lagi tersedia di Mesa 22.0 dan yang lebih baru. Nama file: swrAVX.dll
, swrAVX2.dll
, swrSKX.dll
, swrKNL.dll
. Meskipun berada di luar bundel Mesa3D Desktop OpenGL opengl32.dll
atau libgallium_wgl.dll
jika yang terakhir tersedia, itu tetap bergantung padanya. Driver rendering perangkat lunak OpenGL desktop alternatif yang dikembangkan oleh Intel dioptimalkan untuk perangkat lunak visualisasi. Ini tersedia dalam paket MSVC dan sejak 20.1.7 dalam paket MinGW juga. Ini hanya mendukung x64, x86 secara resmi tidak didukung. Saat ini ada 4 DLL, hanya satu yang dimuat berdasarkan kemampuan CPU pengguna. Anda dapat beralih ke swr dengan menyetel nilai variabel lingkungan GALLIUM_DRIVER ke swr.
osmesa. Nama file: osmesa.dll
. Tersedia untuk x86 dan x64. Driver ini digunakan dalam kasus khusus oleh perangkat lunak yang dirancang untuk menggunakan kode Mesa untuk merender tanpa ketergantungan sistem jendela atau sistem operasi apa pun. Sejak 21.0.0 hanya osmesa gallium yang tersisa. Ini mendukung OpenGL 3.x dan yang lebih baru. Sejak 20.0.2 integrasi osmesa dengan driver GLLES mandiri tersedia dalam paket MSVC dan MSYS2 Mingw-w64 yang memerlukan libglapi.dll
dalam prosesnya.
perpustakaan EGL. Nama file: libEGL.dll
. Pustaka Mesa3D EGL yang digunakan oleh driver OpenGL ES. Ini memulai debutnya pada 21.3.0 dan tersedia untuk aplikasi 32-bit dan 64-bit dalam paket MSVC dan MSYS2. Itu tergantung pada bundel OpenGL desktop opengl32.dll
atau libgallium_wgl.dll
jika yang terakhir tersedia.
Driver mandiri OpenGL ES. Nama file: libGLESv1_CM.dll
dan libGLESv2.dll
. Driver mandiri OpenGL ES 1.x, 2.x dan 3.x tersedia untuk aplikasi 32-bit dan 64-bit. Sejak 20.0.2 tersedia dalam paket MSVC dan MSYS2 Mingw-w64. Mereka bergantung pada pustaka Mesa3D EGL jika tersedia dan bundel OpenGL desktop opengl32.dll
atau libgallium_wgl.dll
jika yang terakhir tersedia.
driver CPU lavapipe Vulkan tersedia dalam paket MSVC dan MinGW sejak 21.1.0. Nama file: lvp_icd.x86_64.json
, lvp_icd.x86.json
, vulkan_lvp.dll
. Perhatikan bahwa beberapa program mungkin sengaja mengabaikan perangkat jenis CPU Vulkan. Untuk informasi tentang cara menyebarkan, lihat catatan penggunaan.
Driver Microsoft lusin Vulkan tersedia sejak 22.1.0 dalam paket MSVC dan sejak 22.2.0 dalam paket MinGW juga. Driver ini mengandalkan API D3D12 untuk berfungsi dan dapat menggunakan akselerasi GPU pada sistem yang didukung. Nama file: dzn_icd.x86_64.json
, dzn_icd.x86.json
, vulkan_dzn.dll
. Untuk informasi tentang cara menyebarkan, lihat catatan penggunaan.
Driver Vulkan untuk grafis AMD (radv) tidak lagi tersedia sejak 22.1.0 sesuai saran @zmike karena tidak akan berfungsi dalam waktu dekat. RADV tersedia dalam paket MSVC dan MinGW sejak 21.2.0. Biner 32-bitnya tersedia sejak Mesa 22.0. Nama file: radeon_icd.x86_64.json
, radeon_icd.x86.json
, libvulkan_radeon.dll
dan vulkan_radeon.dll
. Untuk informasi tentang cara menyebarkan, lihat catatan penggunaan.
Tumpukan Microsoft OpenCL. Nama file: clon12compiler.dll
(kompiler), openclon12.dll
(ICD) dan WinPixEventRuntime.dll
(hanya ketergantungan x64). Komponen-komponen yang diperkenalkan pada 21.0.0 ini akhirnya disediakan oleh mesa-dist-win sejak 21.3.0 (khusus kompiler) dan 21.3.6-2. Driver CLonD3D12 tersedia sebagai OpenCL ICD. Untuk informasi tentang cara menyebarkan, lihat catatan penggunaan. CLonD3D12 secara resmi memerlukan Windows 10 v10.0.19041.488 atau lebih baru dan bergantung pada DirectX IL untuk redistribusi - dxil.dll
untuk dimuat, yang dapat diinstal melalui alat penerapan. CLonD3D12 beroperasi sebagai pembungkus yang mengembalikan panggilan API D3D12. Karena sifatnya ini, ia dapat menggunakan akselerasi GPU D3D12 jika tersedia, jika tidak, rendering perangkat lunak WARP bawaan Windows akan digunakan. Saat menggunakan WARP CLonD3D12 dulunya untuk mengiklankan CL_DEVICE_TYPE_GPU, tetapi ini berubah pada 23.0.0 menjadi CL_DEVICE_TYPE_CPU, lihat microsoft/OpenCLOn12#19. Beberapa program mengabaikan driver dengan CL_DEVICE_TYPE_CPU yang sengaja disetel. Perilaku lama sebelum 23.0.0 dapat dipulihkan sejak Mesa 24.0.3 dengan menetapkan nilai variabel lingkungan CLON12_WARP_IS_HARDWARE
ke 1.
tumpukan semanggi OpenCL telah dihapus dari paket rilis di 22.1.1 hingga dukungan Windows diselesaikan karena saat ini tidak dapat digunakan. Nama file: MesaOpenCL.dll
(ICD), OpenCL.dll
(runtime mandiri), dan pipe_swrast.dll
(pemuat pipa). Runtime dapat diterapkan dengan alat penerapan per aplikasi sejak 21.3.7 atau pada versi yang lebih lama melalui salin-tempel bersama dengan semua pemuat pipa yang tersedia yang bergantung padanya. Saat diterapkan, runtime menyembunyikan semua ICD OpenCL lain yang ada di sistem dan hanya mengizinkan perangkat lunak menggunakan semanggi Mesa3D sebagai satu-satunya driver OpenCL. Untuk informasi tentang cara menyebarkan ICD, lihat catatan penggunaan.
Penyaji perangkat lunak D3D10 tersedia dalam paket MSVC sejak 21.2.0. Nama file: d3d10sw.dll
. Ini adalah pengganti Microsoft WARP dan sayangnya tidak ada cara yang bersih untuk menerapkannya.
Alat dan pustaka SPIR-V hingga DXIL tersedia dalam paket MSVC sejak 21.0.0 dan sejak 22.2.0 dalam paket MinGW juga. Nama file: libspirv_to_dxil.dll
, spirv_to_dxil.dll
dan spirv2dxil.exe
.
Sopir VA-API D3D12. Nama file: vaon12_drv_video.dll
. Driver ini tersedia di 22.3.0. Sama seperti GLonD3D12, CLonD3D12 dan lusin ini adalah driver berlapis yang berjalan di atas Direct3D 12 API sehingga dapat menggunakan akselerasi GPU jika tersedia. Instruksi penerapan telah didokumentasikan oleh Microsoft. Alat penerapan per aplikasi telah diperbarui untuk membantu proses ini.
Antarmuka mentah galium. Komponen yang tidak digunakan lagi ini telah dihapus di Mesa3D 22.3.0. Nama file: graw.dll
, graw_null.dll
. Ini adalah driver galium tiruan tanpa API grafis apa pun yang terutama digunakan untuk pengujian. Tersedia untuk versi x86 dan x64 dan secara penuh (dengan dukungan sistem jendela) dan tanpa kepala (tanpa jendela). Sejak 20.0.2 versi berjendela dan tanpa jendela tersedia dalam paket MSVC dan MSYS2 Mingw-w64.
ruang tes. Banyak tes unit yang dapat dieksekusi.
Header dan pustaka untuk versi 32-bit dan 64-bit terletak di arsip terpisah yang disebut paket pengembangan.
Dimulai dengan 22.2.0, paket info debug MSVC yang berisi simbol debug dalam format PDB dan MinGW menegaskan paket build yang dioptimalkan debug yang diaktifkan telah tersedia. Biner debug MinGW dapat digunakan sebagai pengganti drop-in untuk versi rilisnya. Dengan penggunaan perangkat lunak per penerapan aplikasi, hal ini seharusnya berjalan lancar, namun untuk penerapan di seluruh sistem, penerapan ulang diperlukan untuk beralih dari rilis ke build debug dan sebaliknya. Untuk informasi selengkapnya tentang debugging MinGW, lihat debug/mingw-start-debugging.sh
Petunjuk pembuatan, jika Anda ingin mereplikasi bangunan saya, tersedia di sini.
Pertama pilih antara paket Mingw dan MSVC. Lihat bagian Perbedaan antara paket MSVC dan MinGW untuk detailnya. Sebelum mengekstraksi paket rilis, tutup semua program yang menggunakan Mesa jika ada yang berjalan. Setelah ekstraksi, Anda akan memiliki akses ke 2 opsi penerapan, keduanya terletak di direktori tempat Anda menginstal Mesa. Kedua utilitas penerapan memiliki mekanisme permulaan sehingga Anda dapat melakukan semua penerapan yang diperlukan dalam satu sesi. Alat penerapan hanya mendukung komponen OpenGL dan OpenGL ES dari Mesa3D plus OpenCL clover mandiri.
Alat penerapan di seluruh sistem. Meskipun ditujukan untuk sistem yang tidak memiliki dukungan OpenGL yang dipercepat perangkat keras seperti mesin virtual di lingkungan cloud, ini juga dapat digunakan pada sistem Windows apa pun untuk menggantikan perangkat lunak kotak masuk yang merender driver OpenGL 1.1 yang memperluas dukungan OpenGL untuk kasus penggunaan di mana OpenGL yang dipercepat perangkat keras tidak tersedia seperti koneksi RDP . Karena potensi masalah dengan VM Virtualbox yang menjalankan Windows, disarankan untuk menonaktifkan akselerasi 3D di VM tersebut jika driver OpenGL desktop Mesa3D diinstal di dalamnya menggunakan alat penerapan seluruh sistem, lihat #9.
Alat penerapan per aplikasi, digunakan untuk menerapkan Mesa3D untuk satu program terlepas dari apakah ada dukungan OpenGL yang dipercepat perangkat keras atau tidak. Perubahan utilitas penerapan per aplikasi bersifat persisten dan terus dipertahankan selama peningkatan dan instalasi ulang. Utilitas penerapan per aplikasi membantu Anda menghemat penyimpanan dan mempermudah karena Anda tidak perlu menyalin DLL secara manual dari direktori instalasi Mesa karena ini membuat tautan simbolik ke driver Mesa apa pun yang Anda pilih untuk digunakan. Perilaku ini memastikan semua program yang menggunakan Mesa menggunakan versi terbaru yang sama. Utilitas penerapan per aplikasi meminta jalur ke direktori yang berisi aplikasi yang dapat dieksekusi, nama file aplikasi yang dapat dieksekusi (opsional, dapat tetap kosong tetapi jika ditentukan dapat memaksa beberapa program untuk menggunakan Mesa3D padahal sebaliknya), jika aplikasinya 64-bit atau 32-bit dan driver yang Anda butuhkan. Nama aplikasi 32-bit ditandai di Task Manager saat dijalankan. Sebagian besar aplikasi akan menggunakan Mesa terlepas dari kemampuan GPU-nya, namun beberapa aplikasi mungkin cukup pintar untuk memuat OpenGL dari direktori sistem saja. Dengan memberikan nama file aplikasi, file .local dibuat sebagai upaya untuk memaksa aplikasi menggunakan Mesa3D ketika tidak diinginkan. Selain itu, Mesainjector milik Federico Dossena juga dapat digunakan untuk mengatasi masalah ini. Buat instruksi untuk Mesainjector.
Aplikasi lama dari awal 200x dan lebih lama mungkin memerlukan kumpulan variabel lingkungan MESA_EXTENSION_MAX_YEAR, lihat bagian kompatibilitas perangkat lunak lama.
Aplikasi yang memerlukan OpenGL 3.2 atau lebih baru mungkin memerlukan penggantian konfigurasi konteks OpenGL.
Contoh penggantian konfigurasi konteks OpenGL, peralihan ke driver lain dan kompatibilitas aplikasi lama tersedia di sini.
Dokumentasi resmi Mesa3D tersedia di sini.
Penyebaran ICD OpenCL dilakukan melalui registrasi file ICD dengan runtime sistem OpenCL (misalnya opencl.dll
dari Windowssystem32
). Jika Anda tidak memiliki runtime sistem OpenCL, Anda bisa mendapatkannya dengan menginstal runtime CPU Intel OpenCL. Ini juga berfungsi untuk CPU AMD.
Penerapan driver Vulkan dilakukan melalui runtime Vulkan menggunakan metode penemuan ICD. Perhatikan bahwa runtime Vulkan dibundel dengan driver grafis yang mendukung Vulkan sehingga menginstalnya secara manual mungkin tidak diperlukan.
Jalankan penerapan di seluruh sistem dan lakukan operasi uninstall jika tersedia, lalu keluar;
Unduh dan jalankan alat Semuanya (rasa apa pun akan berfungsi);
Jalankan per alat penerapan aplikasi dan biarkan berjalan;
Di alat Semuanya, di bidang teks di bawah menu masukkan libgallium_wgl.dll attrib:L
dan biarkan alat Semuanya tetap berjalan;
Untuk setiap hasil pencarian di alat Semuanya:
buka lokasinya di Windows Explorer melalui opsi menu konteks Open Path atau Open File location;
temukan file *.local dan hapus, tetapi hanya jika Anda yakin telah menentukan nama file selama penerapan ke lokasi tersebut;
menyalin lokasi dari bilah alamat dan memasukkannya ke setiap alat penerapan aplikasi;
kirim no ke semua penerapan sampai Anda diminta melakukan penerapan lagi, kirim ya di sana.
Ulangi langkah 4 dan 5 masing-masing menggunakan nama file osmesa.dll dan graw.dll dengan cara yang sama seperti yang dilakukan untuk libgallium_wgl.dll;
Tutup per penerapan aplikasi dan alat Semuanya;
Kembalikan semua perubahan registri dan variabel lingkungan apa pun yang mengonfigurasi runtime Vulkan untuk menggunakan driver Mesa3D Vulkan apa pun, lihat catatan penggunaan untuk petunjuk tentang kemungkinan perubahan apa yang mungkin harus Anda kembalikan;
Ulangi langkah 8, tapi untuk OpenCL.
PERINGATAN: Program yang file tertentu telah ditimpa per alat penerapan aplikasi mungkin memerlukan instalasi ulang/perbaikan. Alat penerapan per aplikasi mendeteksi dan memperingatkan tentang skenario penerapan ini sejak 22.0.0.
Aplikasi lama dari awal 200x dan lebih lama mungkin memerlukan variabel lingkungan MESA_EXTENSION_MAX_YEAR yang disetel untuk menghindari buffer overflows. Ia mengharapkan nomor tahun sebagai nilai, yang paling umum digunakan adalah tahun 2001. Ini memangkas daftar ekstensi yang dikembalikan oleh Mesa3D menjadi ekstensi yang dirilis hingga dan termasuk tahun yang ditentukan karena daftar ekstensi Mesa3D diurutkan berdasarkan tahun.
Contoh: set MESA_EXTENSION_MAX_YEAR=2001
. Lihat Cara mengatur variabel lingkungan.
Dengan dirilisnya OpenGL 3.1, banyak fitur yang ditandai sebagai tidak digunakan lagi di OpenGL 3.0 telah dihapus dan sejak peluncuran OpenGL 3.2, cabang spesifikasi OpenGL ini dikenal sebagai profil inti OpenGL. Juga di OpenGL 3.3, cabang baru dari spesifikasi OpenGL yang dikenal sebagai konteks kompatibel ke depan diperkenalkan yang menghapus fitur-fitur OpenGL 3.0 yang tidak digunakan lagi yang tidak dihapus di OpenGL 3.1. Sebagian besar driver berpemilik menerapkan pengecualian dari perubahan ini yang ditawarkan dalam bentuk ekstensi kompatibilitas GL_ARB_ untuk OpenGL 3.1 dan konteks kompatibilitas untuk OpenGL 3.2 dan yang lebih baru. Karena kompleksitas dan terutama kurangnya pengujian implementasi yang tepat untuk kompatibilitas GL_ARB_ dan konteks kompatibilitas, pengembang Mesa3D memilih untuk menunda pekerjaan di area ini hingga Mesa 18.1 memperkenalkan dukungan GL_ARB_compatibility dan kemudian Mesa 21.3 meningkatkan dukungan konteks kompatibilitas ke OpenGL 4.5 untuk llvmpipe. Kesimpulannya program yang meminta konteks kompatibilitas OpenGL tidak akan melebihi OpenGL 3.0 untuk Mesa 18.0, 3.1 untuk Mesa 18.1 dan 4.5 untuk Mesa 21.3 dan yang lebih baru. Sayangnya program semacam ini lazim di Windows di mana pengembang cenderung menghindari penggunaan tanda konteks yang diperlukan oleh profil inti. Untungnya Mesa3D menyediakan mekanisme untuk mengesampingkan konteks OpenGL yang diminta. Ada 2 variabel lingkungan yang menggantikan konfigurasi konteks OpenGL:
MESA_GL_VERSION_OVERRIDE
Ini digunakan untuk menentukan versi dan jenis konteks OpenGL. Ia mengharapkan nilai dalam format berikut
OpenGLMajorVersion.OpenGLMinorVersion{FC|COMPAT].
FC berarti konteks yang kompatibel ke depan. COMPAT berarti konteks kompatibilitas untuk OpenGL 3.2 dan yang lebih baru serta GL_ARB_compatibility diaktifkan untuk OpenGL 3.1. Tidak adanya string apa pun setelah nomor versi berarti jenis konteks default Mesa3D untuk versi OpenGL ditentukan sebagai berikut: fitur yang tidak digunakan lagi diaktifkan untuk OpenGL 3.0, GL_ARB_compatibility diaktifkan untuk OpenGL 3.1 sejak Mesa 18.1 dan profil inti untuk OpenGL 3.2 dan yang lebih baru. Contoh: 3.3FC berarti OpenGL 3.3 meneruskan konteks yang kompatibel, 3.1COMPAT berarti OpenGL 3.1 dengan GL_ARB_compatibility , 3.2 berarti profil inti OpenGL 3.2. Nilai default untuk driver llvmpipe adalah 4.5COMPAT untuk Mesa>=21.3, 3.1COMPAT untuk Mesa>=18.1 dan 3.0COMPAT untuk Mesa<=18.0.
Fitur yang sangat penting yang disediakan oleh variabel ini adalah kemungkinan untuk mengkonfigurasi konteks OpenGL yang tidak lengkap. Program hanya dapat meminta konteks OpenGL tertinggi dengan sertifikasi Khronos yang lengkap dari driver Mesa3D yang digunakan. Saat ini llvmpipe disertifikasi untuk OpenGL 4.5 di semua profil OpenGL. Saat ini swr dan GLonD3D12 disertifikasi untuk OpenGL 3.3 dalam profil inti/konteks yang kompatibel ke depan dan 3.1 dalam profil kompatibilitas. dukungan zink OpenGL bergantung pada driver Vulkan yang mendasarinya. Sejak Mesa 17.3, nilai yang dimaksudkan untuk OpenGL 4.6 dikenali.
MESA_GLSL_VERSION_OVERRIDE
Digunakan untuk menentukan versi bahasa bayangan. Nilai yang didukung adalah nomor versi yang dikonversi ke bilangan bulat: 110, 120, 130, 140. 150, 330, 400, 410, 420, 430, 440, 450 dan 460. Nilai 460 hanya dikenali sejak Mesa 17.3. Nilai 130 misalnya cocok dengan GLSL 1.30. Itu selalu merupakan ide yang baik untuk menjaga konteks OpenGL dan versi bahasa bayangan tetap sinkron untuk menghindari kebingungan program yang dapat mengakibatkan crash atau gangguan. Hal ini dapat terjadi karena sebagian besar aplikasi mengandalkan perilaku driver kepemilikan untuk menyinkronkan versi OpenGL dan GLSL. Berikut tabel korelasi OpenGL - GLSL. Nilai default untuk llvmpipe: 450 untuk Mesa 21.3, 140 untuk Mesa 18.1 dan 130 untuk Mesa 18.0 jika MESA_GL_VERSION_OVERRIDE tidak ditentukan atau cocok dengan profil inti.
Di Windows, cara termudah untuk mengatur variabel lingkungan adalah dengan menulis file batch. Kemungkinan besar Anda perlu melakukannya:
untuk setiap aplikasi yang memerlukan versi OpenGL dan GLSL yang lebih tinggi daripada yang dipaparkan oleh driver Mesa3D yang dipilih secara default;
jika Anda ingin memilih driver non-default untuk desktop OpenGL;
jika Anda perlu memangkas daftar ekstensi untuk kompatibilitas program lama.
Cukup buka Notepad, tulis skrip batch. Saat menyimpan, akhiri nama file dengan .bat atau .cmd, ubah jenis simpan sebagai semua file dan ubah lokasi penyimpanan ke tempat aplikasi yang dapat dieksekusi berada. Jika Anda memiliki keahlian dengan skrip batch, Anda dapat mengubah direktori saat ini selama eksekusi skrip menggunakan perintah CD yang membuka kemungkinan untuk menyimpan skrip di mana pun Anda inginkan seperti yang ditunjukkan pada contoh rpcs3 dan GPU Caps Viewer. Dokumentasi sebagian besar variabel lingkungan yang digunakan oleh Mesa tersedia di sini. Contoh lengkap tersedia di sini.
Anda dapat mengatur beberapa variabel lingkungan pada skrip batch yang sama untuk menggabungkan fungsionalitas yang disediakan oleh Mesa3D.