다운로드
후원
알려진 문제
MSVC와 MinGW 패키지의 차이점
Mingw 및 MSVC 패키지 내용
OpenGL 및 OpenGL ES 공통 공유 라이브러리
Microsoft CLonD3D12, GLonD3D12, Dozen Vulkan 드라이버 및 D3D12 VA-API 공통 종속성
데스크탑 OpenGL 드라이버
OpenGL 오프스크린 렌더링 드라이버
OpenGL ES 드라이버 및 EGL 라이브러리
Vulkan 드라이버
OpenCL 드라이버, 컴파일러 및 백엔드
Direct3D 드라이버, 라이브러리 및 도구
VA-API 드라이버
테스트 라이브러리 및 도구
개발 패키지
디버그 패키지
Mesa3D를 직접 구축해보세요
설치 및 사용법
사용법 참고사항
메사3D 제거
레거시 소프트웨어 호환성
OpenGL 컨텍스트 구성 재정의
환경 변수를 설정하는 방법
이제 Visual Studio 및 MSYS2 Mingw-w64를 사용한 Mesa 24.2.6 빌드를 릴리스 섹션에서 사용할 수 있습니다.
mesa-dist-win 프로젝트는 2024년 11월 1일까지 연장된 후원을 받았습니다. 후원은 12GB RAM, 6스레드 AMD EPYC 7763 및 Petrosky의 150GB NVMe SSD를 갖춘 빌드 머신으로 사용할 프랑스 노드의 무료 VPS로 구성됩니다. @Directox01 덕분에 가상 사설 서버 호스팅 회사가 되었습니다.
이것은 알려진 솔루션이나 해결 방법과 관련하여 일반적으로 발생하는 모든 문제의 목록입니다. 특정 릴리스는 해당 릴리스의 하위 집합에만 영향을 받습니다.
Mesa3D OpenGL ES 및 데스크탑 OpenGL 드라이버에서 libgallium_wgl.dll
누락 오류
이는 21.3.0 이상으로 업데이트할 때 21.2.x 이하로 만들어진 기존 애플리케이션별 배포에서 발생합니다. 문제를 해결하려면 앱 배포별로 다시 실행하세요. opengl32.dll
에서 갈륨 메가드라이버를 분리하는 것은 기존의 앱별 배포가 반대할 수 없는 매우 침입적인 변경이었습니다. 영향을 받는 프로그램이 32비트인지 64비트인지 기억나지 않으면 프로그램 실행 파일이 있는 폴더에서 opengl32.dll
바로가기를 마우스 오른쪽 버튼으로 클릭하고 열린 파일 위치를 선택하세요. 위치가 x64로 끝나면 64비트이고, 그렇지 않으면 32비트입니다.
Mesa3D OpenGL ES에서 libEGL.dll
누락 오류
이는 21.3.0 이상으로 업데이트할 때 21.2.x 이하로 만들어진 기존 애플리케이션별 배포에서 발생합니다. 문제를 해결하려면 앱 배포별로 다시 실행하세요. EGL 지원은 기존의 앱별 배포가 반대할 수 없는 매우 침입적인 변경이었습니다. 영향을 받는 프로그램이 32비트인지 64비트인지 기억나지 않으면 프로그램 실행 파일이 있는 폴더에서 opengl32.dll
바로가기를 마우스 오른쪽 버튼으로 클릭하고 열린 파일 위치를 선택하세요. 위치가 x64로 끝나면 64비트이고, 그렇지 않으면 32비트입니다.
MinGW 릴리스 패키지의 Mesa3D opengl32.dll
에서 libvulkan-1.dll
누락 오류
MSYS2 MinGW-W64 vulkan-devel 패키지 그룹을 사용하여 zink 드라이버가 빌드된 22.2.0 이전 릴리스만 영향을 받습니다. MinGW 릴리스 패키지에서 fix-libvulkan-1.dll-missing-error.cmd
실행하여 수정하세요. 이 도구는 auto
명령줄 옵션을 통한 무인 실행을 지원합니다. 이 도구는 필요한 경우에만 MinGW 릴리스 패키지에 번들로 제공되며 그렇지 않은 경우에는 의도적으로 누락되었습니다. LunarG 대신 이 Vulkan SDK를 사용하기로 한 결정은 최신 로더 및 헤더와 함께 제공되는 것에 따라 결정됩니다.
MSVC 및 MinGW 패키지의 64비트 바이너리에는 AVX가 탑재된 CPU가 필요하지 않더라도 AVX가 필요합니다.
Mesa 22.0 이상에서는 더 이상 문제가 되지 않습니다. 이 문제는 AVX 사용을 일반 코드로 유출하는 swr 드라이버가 포함된 64비트 바이너리로 인해 발생합니다. 이는 여기, 여기 및 여기에서 보고된 업스트림 버그입니다.
MinGW 패키지의 Mesa opengl32.dll
21.0.0부터 Vulkan 런타임에 의존합니다.
이 문제는 zink 드라이버 명시적 사용에 대한 요구 사항을 포함하여 22.2.0에서 수정되었습니다. 이는 zink 드라이버가 Windows를 지원하도록 패치되었을 때 도입된 업스트림 회귀입니다.
21.0.0부터 Mesa opengl32.dll
사용할 때 프로그램은 OpenGL 지원이 없는 것처럼 동작할 수 있습니다.
이는 결함이 아니라 환경 변수가 잘못 구성되었을 때 Mesa의 동작이 변경된 것입니다. 이는 일반적으로 사용된 릴리스 패키지에 존재하지 않는 Mesa 드라이버를 선택하거나 호스트 시스템이 하드웨어 요구 사항을 충족하지 않거나 종속성이 부족하여 초기화에 실패할 때 발생합니다. MSVC 및 MinGW 패키지와 Mingw 및 MSVC 패키지 콘텐츠 간의 차이점을 읽으면 문제 해결에 도움이 됩니다.
libglapi.dll
누락과 관련된 오류에 대한 중요 참고 사항
앱별 배포 도구를 통해 Mesa3D 데스크탑 OpenGL 드라이버를 사용하는 프로그램에서 이러한 문제가 발생할 수 있으며 시스템 전체 배포는 영향을 받지 않습니다. 공유 glapi 지원이 도입되기 전에 앱별 배포가 수행된 경우 이러한 문제가 발생할 수 있습니다. 공유 glapi는 20.0.2부터 MSVC 및 MinGW 패키지 모두에서 일관되게 사용할 수 있습니다.
원인에 관계없이 이러한 오류를 수정하려면 다시 배포해야 합니다. 영향을 받는 프로그램이 32비트인지 64비트인지 기억나지 않으면 프로그램 실행 파일이 있는 폴더에서 opengl32.dll
바로가기를 마우스 오른쪽 버튼으로 클릭하고 열린 파일 위치를 선택하세요. 위치가 x64로 끝나면 64비트이고, 그렇지 않으면 32비트입니다.
17.3.5.501-1 이하에서 업그레이드하는 경우 동일한 솔루션의 동일한 문제가 osmesa에 적용됩니다.
MinGW 패키지에는 소프트웨어 렌더링 드라이버를 통해 3-5% 성능 향상을 제공하는 SSSE3 CPU가 필요합니다.
21.2.0에 도입된 d3d10sw는 MSVC 패키지에서만 사용할 수 있습니다.
Mingw에서 MSVC 바이너리로 마이그레이션해야 하는 경우 Mingw 패키지의 Mesa 바이너리 폴더를 MSVC 대응 폴더로 바꾸면 됩니다.
다음 Mesa3D 드라이버 및 빌드 아티팩트가 각 릴리스에 제공됩니다.
GLAPI 공유 라이브러리. 파일 이름: libglapi.dll
. OpenGL 및 OpenGL ES 지원을 모두 제공하는 경우 해당 항목이 필요합니다. Mesa3D 오프스크린 렌더러와 모든 Mesa3D OpenGL 및 OpenGL ES 드라이버는 존재하는 경우 이에 의존합니다. 20.0.2부터 MSVC 및 MSYS2 Mingw-w64 패키지 모두에서 사용할 수 있습니다.
갈륨 OpenGL 메가드라이버. 파일 이름: libgallium_wgl.dll
. 존재하는 경우 opengl32.dll
대신 모든 Mesa3D 데스크톱 OpenGL 드라이버가 포함됩니다. 21.3.0에 데뷔했습니다. Mesa3D EGL 라이브러리와 OpenGL ES 드라이버는 존재하는 경우 이에 의존합니다.
Mesa3D WGL 런타임. 파일 이름: opengl32.dll
. 여기에는 모든 Mesa3D 데스크톱 OpenGL 드라이버와 OpenGL ES가 포함되어 있었지만 21.3.0 이후로는 갈륨 OpenGL 메가드라이버용 로더로만 축소되었으므로 애플리케이션별 배포를 통해 Mesa3D 데스크톱 OpenGL 드라이버를 사용하는 프로그램만 이에 의존합니다. 지금.
재배포용 DirectX IL. 파일 이름: dxil.dll
. 이 바이너리 재배포 가능 패키지는 Windows SDK 및 DirectX 셰이더 컴파일러에서 제공되며 릴리스 프로세스 중에 패키지됩니다. 배포 도구는 필요에 따라 이를 설치합니다.
llvmpipe. llvmpipe는 하드웨어 가속이 불가능할 때 대체용으로 고안된 데스크톱 OpenGL 소프트웨어 렌더러입니다. 좋은 성능으로 매우 가벼운 게임만 처리할 수 있습니다. 이는 GLonD3D12를 사용할 수 없거나 로드에 실패할 때 기본 Mesa3D 데스크톱 OpenGL 드라이버입니다. Mesa3D Desktop OpenGL 번들 opengl32.dll
또는 libgallium_wgl.dll
(후자가 사용 가능한 경우)의 일부로 x86 및 x64 모두에서 사용할 수 있습니다. 기본 드라이버가 아닌 경우 환경 변수 GALLIUM_DRIVER=llvmpipe
설정하여 선택하세요.
Softpipe는 게임 성능에 중점을 두지 않은 데스크톱 OpenGL 소프트웨어 렌더러의 참조 구현입니다. Mesa3D Desktop OpenGL 번들 opengl32.dll
또는 libgallium_wgl.dll
(후자가 사용 가능한 경우)의 일부로 x86 및 x64 모두에서 사용할 수 있습니다. 환경 변수 GALLIUM_DRIVER=softpipe
설정하여 선택하세요.
GLonD3D12. MSVC 패키지의 x86 및 x64와 MinGW 패키지의 22.2.0부터 Mesa3D Desktop OpenGL 번들 opengl32.dll
또는 libgallium_wgl.dll
의 일부(후자가 사용 가능한 경우) 및 22.3.0 이전 버전에서 독립 실행형 openglon12.dll
로 사용할 수 있습니다. 또한. 공식적으로 Windows 10 v10.0.19041.488 이상을 요구하는 것 외에도 재배포를 위해 DirectX IL(배포 도구를 통해 설치할 수 있는 dxil.dll
로드)도 필요합니다. 사용 가능하고 로드할 수 있는 경우 이는 D3D12 GPU 가속 시스템의 기본 Mesa3D 데스크톱 OpenGL 드라이버입니다. 21.0.0에 도입된 이 드라이버는 D3D12 API 호출을 반환하는 래퍼로 작동합니다. 이러한 특성으로 인해 GPU 가속을 사용할 수 있습니다. 기본적으로 선택되어 있지 않은 경우 GALLIUM_DRIVER=d3d12
및 LIBGL_ALWAYS_SOFTWARE=1
환경 변수를 설정하여 Windows에 내장된 Direct3D WARP 소프트웨어 렌더러로 테스트할 수 있습니다. 독립 실행형 복사본에는 GALLIUM_DRIVER=d3d12
설정할 필요가 없으며 시스템 전체 배포 도구를 통해서만 설치할 수 있습니다. 독립형 GLonD3D12 및 Mesa3D Desktop OpenGL 번들은 시스템 전체 배포 도구를 사용할 때 서로 교체되지만 언제든지 되돌릴 수 있습니다.
아연. 21.0.0의 MinGW 패키지와 21.2.0의 MSVC 패키지에 도입된 이 드라이버는 Mesa3D Desktop OpenGL 번들 opengl32.dll
또는 libgallium_wgl.dll
(후자가 사용 가능한 경우)의 일부로 x86 및 x64 모두에서 사용할 수 있습니다. GLonD3D12와 마찬가지로 Vulkan API 호출을 반환하는 래퍼로 작동합니다. 이러한 특성으로 인해 기본적으로 GPU 가속을 사용하지만 소프트웨어 렌더링도 지원합니다. GALLIUM_DRIVER=zink
환경 변수를 통해 선택하세요. 하지만 초기화하려면 최소 1개의 Vulkan 장치와 Vulkan 로더/런타임이 필요합니다. zink는 22.1.0까지 기본적으로 Vulkan CPU 유형 장치를 무시했습니다. 현재는 더 높은 우선순위의 Vulkan 유형 장치가 없는 경우 Vulkan CPU 유형 장치를 자동으로 선택하는 우선순위 시스템을 사용합니다. LIBGL_ALWAYS_SOFTWARE=1
(Mesa 22.1.0 이상) 또는 ZINK_USE_LAVAPIPE=true
(Mesa 22.1.0에서는 더 이상 사용되지 않음)를 설정해야만 Vulkan CPU 유형 장치로 Zink를 테스트할 수 있습니다.
swr. 이 드라이버는 Mesa 22.0 이상에서는 더 이상 사용할 수 없습니다. 파일 이름: swrAVX.dll
, swrAVX2.dll
, swrSKX.dll
, swrKNL.dll
. Mesa3D Desktop OpenGL 번들 opengl32.dll
또는 libgallium_wgl.dll
(후자가 사용 가능한 경우) 외부에 있더라도 여전히 의존합니다. Intel에서 개발한 이 대체 데스크톱 OpenGL 소프트웨어 렌더링 드라이버는 시각화 소프트웨어에 최적화되어 있습니다. MSVC 패키지와 20.1.7부터 MinGW 패키지에서도 사용할 수 있습니다. x64만 지원하고 x86은 공식적으로 지원하지 않습니다. 현재 4개의 DLL이 있으며, 사용자 CPU가 수행할 수 있는 작업에 따라 하나만 로드됩니다. GALLIUM_DRIVER 환경 변수 값을 swr로 설정하여 swr로 전환할 수 있습니다.
osmesa. 파일 이름: osmesa.dll
. x86과 x64 모두에서 사용할 수 있습니다. 이 드라이버는 어떤 종류의 창 시스템이나 운영 체제 종속성 없이 렌더링하기 위해 Mesa 코드를 사용하도록 설계된 소프트웨어에서 특별한 경우에 사용됩니다. 21.0.0 이후에는 오스메사 갈륨만 남았습니다. OpenGL 3.x 이상을 지원합니다. 20.0.2부터 독립 실행형 GLLES 드라이버와 osmesa 통합은 프로세스에서 libglapi.dll
필요한 MSVC 및 MSYS2 Mingw-w64 패키지 모두에서 사용할 수 있습니다.
EGL 라이브러리. 파일 이름: libEGL.dll
. OpenGL ES 드라이버에서 사용되는 Mesa3D EGL 라이브러리. 이는 21.3.0에서 처음 선보였으며 MSVC 및 MSYS2 패키지 모두에서 32비트 및 64비트 애플리케이션에 사용할 수 있습니다. 후자가 사용 가능한 경우 데스크톱 OpenGL 번들 opengl32.dll
또는 libgallium_wgl.dll
에 따라 다릅니다.
OpenGL ES 독립형 드라이버. 파일 이름: libGLESv1_CM.dll
및 libGLESv2.dll
. 32비트 및 64비트 애플리케이션에 사용할 수 있는 OpenGL ES 1.x, 2.x 및 3.x 독립형 드라이버. 20.0.2부터 MSVC 및 MSYS2 Mingw-w64 패키지 모두에서 사용할 수 있습니다. 사용 가능한 경우 Mesa3D EGL 라이브러리에 의존하고 후자가 사용 가능한 경우 데스크톱 OpenGL 번들 opengl32.dll
또는 libgallium_wgl.dll
에 의존합니다.
lavapipe Vulkan CPU 드라이버는 21.1.0부터 MSVC 및 MinGW 패키지 모두에서 사용할 수 있습니다. 파일 이름: lvp_icd.x86_64.json
, lvp_icd.x86.json
, vulkan_lvp.dll
. 일부 프로그램은 의도적으로 Vulkan CPU 유형 장치를 무시할 수 있습니다. 배포 방법에 대한 자세한 내용은 사용 참고 사항을 참조하세요.
Microsoft 다스 Vulkan 드라이버는 MSVC 패키지의 22.1.0부터, MinGW 패키지의 22.2.0부터 사용할 수 있습니다. 이 드라이버는 D3D12 API를 사용하여 작동하며 지원되는 시스템에서 GPU 가속을 사용할 수 있습니다. 파일 이름: dzn_icd.x86_64.json
, dzn_icd.x86.json
, vulkan_dzn.dll
. 배포 방법에 대한 자세한 내용은 사용 참고 사항을 참조하세요.
AMD 그래픽(radv)용 Vulkan 드라이버는 @zmike 제안에 따라 22.1.0부터 더 이상 사용할 수 없습니다. 곧 작동하지 않을 것이기 때문입니다. RADV는 21.2.0부터 MSVC와 MinGW 패키지 모두에서 사용할 수 있었습니다. 32비트 바이너리는 Mesa 22.0부터 사용 가능했습니다. 파일 이름: radeon_icd.x86_64.json
, radeon_icd.x86.json
, libvulkan_radeon.dll
및 vulkan_radeon.dll
. 배포 방법에 대한 자세한 내용은 사용 참고 사항을 참조하세요.
마이크로소프트 OpenCL 스택. 파일 이름: clon12compiler.dll
(컴파일러), openclon12.dll
(ICD) 및 WinPixEventRuntime.dll
(x64 전용 종속성). 21.0.0에 도입된 이러한 구성 요소는 각각 21.3.0(컴파일러 전용) 및 21.3.6-2부터 mesa-dist-win에 의해 최종적으로 제공됩니다. CLonD3D12 드라이버는 OpenCL ICD로 제공됩니다. 배포 방법에 대한 자세한 내용은 사용 참고 사항을 참조하세요. CLonD3D12에는 공식적으로 Windows 10 v10.0.19041.488 이상이 필요하며 재배포를 위해 DirectX IL에 의존합니다(배포 도구를 통해 설치할 수 있는 dxil.dll
로드). CLonD3D12는 D3D12 API 호출을 반환하는 래퍼로 작동합니다. 이러한 특성으로 인해 가능한 경우 D3D12 GPU 가속을 사용할 수 있으며 그렇지 않으면 Windows 내장 WARP 소프트웨어 렌더링이 사용됩니다. CL_DEVICE_TYPE_GPU를 광고하는 데 사용되는 WARP CLonD3D12를 사용하는 경우 이는 23.0.0에서 CL_DEVICE_TYPE_CPU로 변경되었습니다. microsoft/OpenCLOn12#19를 참조하세요. 일부 프로그램은 CL_DEVICE_TYPE_CPU가 의도적으로 설정된 드라이버를 무시합니다. Mesa 24.0.3부터 CLON12_WARP_IS_HARDWARE
환경 변수 값을 1로 설정하면 23.0.0 이전의 동작을 복원할 수 있습니다.
clover OpenCL 스택은 현재 사용할 수 없으므로 Windows 지원이 완료될 때까지 22.1.1의 릴리스 패키지에서 제거되었습니다. 파일 이름: MesaOpenCL.dll
(ICD), OpenCL.dll
(독립 실행형 런타임) 및 pipe_swrast.dll
(파이프 로더). 런타임은 21.3.7 이후의 앱별 배포 도구를 사용하여 배포할 수 있으며 이전 버전에서는 종속된 사용 가능한 모든 파이프 로더와 함께 복사-붙여넣기를 통해 배포할 수 있습니다. 배포되는 동안 런타임은 시스템에 있는 다른 모든 OpenCL ICD를 숨기고 소프트웨어가 Mesa3D 클로버를 유일한 OpenCL 드라이버로 사용하도록 허용합니다. ICD 배포 방법에 대한 자세한 내용은 사용 참고 사항을 참조하세요.
D3D10 소프트웨어 렌더러는 21.2.0부터 MSVC 패키지에서 사용할 수 있습니다. 파일 이름: d3d10sw.dll
. 이는 Microsoft WARP를 대체하는 드롭인 방식이며 안타깝게도 이를 배포하는 깔끔한 방법은 없습니다.
SPIR-V에서 DXIL로의 도구 및 라이브러리는 21.0.0부터 MSVC 패키지에서 사용할 수 있으며 MinGW 패키지에서도 22.2.0부터 사용할 수 있습니다. 파일 이름: libspirv_to_dxil.dll
, spirv_to_dxil.dll
및 spirv2dxil.exe
.
VA-API D3D12 드라이버. 파일 이름: vaon12_drv_video.dll
. 이 드라이버는 22.3.0에서 사용할 수 있게 되었습니다. GLonD3D12, CLonD3D12 및 12개와 마찬가지로 이 드라이버는 Direct3D 12 API 위에서 실행되는 계층형 드라이버이므로 가능한 경우 GPU 가속을 사용할 수 있습니다. 배포 지침은 Microsoft에서 문서화했습니다. 이 프로세스를 지원하기 위해 애플리케이션별 배포 도구가 업데이트되었습니다.
갈륨 원시 인터페이스. 이 더 이상 사용되지 않는 구성 요소는 Mesa3D 22.3.0에서 제거되었습니다. 파일 이름: graw.dll
, graw_null.dll
. 이것은 주로 테스트에 사용되는 그래픽 API가 없는 더미 갈륨 드라이버입니다. x86 및 x64, 전체(창 시스템 지원 포함) 및 헤드리스(창 없음) 버전에서 모두 사용할 수 있습니다. 20.0.2부터 창 버전과 창 없는 버전 모두 MSVC 및 MSYS2 Mingw-w64 패키지에서 사용할 수 있습니다.
테스트 스위트. 많은 실행 가능한 단위 테스트.
32비트 및 64비트 빌드용 헤더와 라이브러리는 개발 팩이라는 별도의 아카이브에 있습니다.
22.2.0부터 PDB 형식의 디버그 기호가 포함된 MSVC 디버그 정보 패키지와 MinGW 어설션 활성화 디버그 최적화 빌드 패키지를 사용할 수 있습니다. MinGW 디버그 바이너리는 해당 릴리스의 대체 바이너리로 즉시 사용할 수 있습니다. 애플리케이션별 배포를 사용하는 소프트웨어의 경우 이는 원활해야 하지만 시스템 전체 배포의 경우 릴리스에서 디버그 빌드로 또는 그 반대로 전환하려면 재배포가 필요합니다. MinGW 디버깅에 대한 자세한 내용은 debug/mingw-start-debugging.sh를 참조하세요.
내 빌드를 복제하려는 경우 빌드 지침을 여기에서 확인할 수 있습니다.
먼저 Mingw와 MSVC 패키지 중에서 선택하세요. 자세한 내용은 MSVC와 MinGW 패키지의 차이점 섹션을 참조하세요. 릴리스 패키지를 추출하기 전에 실행 중인 Mesa를 사용하는 모든 프로그램을 닫으십시오. 추출 후에는 2개의 배포 옵션에 액세스할 수 있으며 둘 다 Mesa를 설치한 디렉토리에 있습니다. 두 배포 유틸리티에는 모두 시작 메커니즘이 있으므로 한 세션에서 필요한 모든 배포를 수행할 수 있습니다. 배포 도구는 Mesa3D의 OpenGL 및 OpenGL ES 구성 요소와 OpenCL 클로버 독립 실행형만 지원합니다.
시스템 전체 배포 도구입니다. 클라우드 환경의 가상 머신과 같이 하드웨어 가속 OpenGL 지원이 부족한 시스템용으로 고안되었지만, RDP 연결처럼 하드웨어 가속 OpenGL을 사용할 수 없는 사용 사례에 대해 OpenGL 지원을 확장하는 OpenGL 1.1 드라이버 렌더링인박스 소프트웨어를 대체하기 위해 모든 Windows 시스템에서 사용할 수도 있습니다. . Windows를 실행하는 Virtualbox VM의 잠재적인 문제로 인해 Mesa3D 데스크톱 OpenGL 드라이버가 시스템 전체 배포 도구를 사용하여 내부에 설치된 경우 해당 VM에서 3D 가속을 비활성화하는 것이 좋습니다. #9를 참조하세요.
하드웨어 가속 OpenGL 지원 여부에 관계없이 단일 프로그램에 대해 Mesa3D를 배포하는 데 사용되는 애플리케이션별 배포 도구입니다. 앱별 배포 유틸리티 변경 사항은 지속적이며 업그레이드 및 재설치 후에도 유지됩니다. 앱별 배포 유틸리티는 사용하기로 선택한 Mesa 드라이버에 대한 심볼릭 링크를 생성하므로 Mesa 설치 디렉토리에서 DLL을 수동으로 복사할 필요가 없으므로 저장 공간을 절약하고 작업을 더 쉽게 만듭니다. 이 동작은 Mesa를 사용하는 모든 프로그램이 동일한 최신 버전을 사용하도록 보장합니다. 앱별 배포 유틸리티는 앱이 64비트이거나 32비트 및 필요한 드라이버. 32비트 응용 프로그램은 실행 중에 작업 관리자에 이름이 표시됩니다. 대부분의 응용 프로그램은 GPU 기능에 관계없이 Mesa를 사용하지만 일부 응용 프로그램은 시스템 디렉토리에서만 OpenGL을 로드할 만큼 똑똑할 수 있습니다. 응용 프로그램 파일 이름을 제공하면 응용 프로그램이 원하지 않을 때 Mesa3D를 사용하도록 강제하기 위해 .local 파일이 생성됩니다. 또한 Federico Dossena의 Mesainjector를 사용하여 이 문제를 해결할 수도 있습니다. Mesainjector에 대한 빌드 지침입니다.
200x 초반 및 이전 애플리케이션에는 MESA_EXTENSION_MAX_YEAR 환경 변수 세트가 필요할 수 있습니다. 레거시 소프트웨어 호환성 섹션을 참조하세요.
OpenGL 3.2 이상이 필요한 애플리케이션에는 OpenGL 컨텍스트 구성 재정의가 필요할 수 있습니다.
OpenGL 컨텍스트 구성 재정의, 다른 드라이버로 전환 및 이전 애플리케이션 호환성에 대한 예는 여기에서 확인할 수 있습니다.
공식 Mesa3D 문서는 여기에서 볼 수 있습니다.
OpenCL ICD 배포는 시스템 OpenCL 런타임(예: Windowssystem32
의 opencl.dll
)에 ICD 파일을 등록하여 수행됩니다. 시스템 OpenCL 런타임이 없는 경우 Intel OpenCL CPU 런타임을 설치하여 얻을 수 있습니다. AMD CPU에서도 작동합니다.
Vulkan 드라이버 배포는 ICD 검색 방법을 사용하여 Vulkan 런타임을 통해 수행됩니다. Vulkan 런타임은 Vulkan을 지원하는 그래픽 드라이버와 함께 번들로 제공되므로 수동으로 설치할 필요가 없을 수도 있습니다.
시스템 전체 배포를 실행하고 가능한 경우 제거 작업을 수행한 다음 종료합니다.
Everything 도구를 다운로드하고 실행하세요(어떤 버전이든 작동 가능).
애플리케이션 배포 도구별로 실행하고 실행 상태로 둡니다.
Everything 도구의 메뉴 아래 텍스트 필드에 libgallium_wgl.dll attrib:L
입력하고 Everything 도구를 계속 실행하세요.
Everything 도구의 각 검색 결과에 대해:
경로 열기 또는 파일 위치 열기 컨텍스트 메뉴 옵션을 통해 Windows 탐색기에서 해당 위치를 엽니다.
*.local 파일을 찾아서 제거하십시오. 단, 해당 위치에 배포하는 동안 파일 이름을 지정한 것이 확실한 경우에만 해당됩니다.
주소 표시줄에서 위치를 복사하여 애플리케이션 배포 도구별로 제공합니다.
추가 배포를 요청받을 때까지 모든 배포에 no를 보내고 거기에서는 yes를 보냅니다.
libgallium_wgl.dll에 대해 수행한 것과 동일한 방식으로 각각 osmesa.dll 및 graw.dll 파일 이름을 사용하여 4단계와 5단계를 반복합니다.
애플리케이션 배포 및 Everything 도구별로 닫습니다.
Mesa3D Vulkan 드라이버를 사용하도록 Vulkan 런타임을 구성하는 레지스트리 변경 사항과 환경 변수를 되돌립니다. 되돌려야 할 잠재적인 변경 사항에 대한 단서는 사용 참고 사항을 참조하세요.
OpenCL의 경우 8단계를 반복합니다.
경고: 응용 프로그램 배포 도구별로 특정 파일을 덮어쓴 프로그램은 다시 설치/복구해야 할 수 있습니다. 애플리케이션별 배포 도구는 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 3.1에서 제거되지 않은 OpenGL 3.0의 더 이상 사용되지 않는 기능을 제거하는 향후 호환 컨텍스트로 알려진 OpenGL 사양의 새로운 분기가 도입되었습니다. 대부분의 독점 드라이버는 OpenGL 3.1용 GL_ARB_compatibility 확장 및 OpenGL 3.2 이상용 호환성 컨텍스트 형식으로 제공되는 이러한 변경 사항에 대한 면제를 구현했습니다. 복잡성과 특히 GL_ARB_compatibility 및 호환성 컨텍스트에 대한 올바른 구현 테스트 부족으로 인해 Mesa3D 개발자는 Mesa 18.1이 GL_ARB_compatibility 지원을 도입한 후 Mesa 21.3에서 llvmpipe용 OpenGL 4.5에 대한 호환성 컨텍스트 지원을 추가할 때까지 이 영역의 작업을 연기하기로 결정했습니다. 결론적으로 OpenGL 호환성 컨텍스트를 요청하는 프로그램은 Mesa 18.0의 경우 OpenGL 3.0, Mesa 18.1의 경우 3.1, Mesa 21.3 이상의 경우 4.5 이상을 얻지 못합니다. 불행히도 이러한 종류의 프로그램은 개발자가 핵심 프로필에 필요한 컨텍스트 플래그 사용을 피하는 경향이 있는 Windows에서 널리 퍼져 있습니다. 다행히 Mesa3D는 요청된 OpenGL 컨텍스트를 재정의하는 메커니즘을 제공합니다. OpenGL 컨텍스트 구성을 재정의하는 두 가지 환경 변수가 있습니다.
MESA_GL_VERSION_OVERRIDE
OpenGL 컨텍스트 버전 및 유형을 지정하는 데 사용됩니다. 다음 형식의 값이 필요합니다.
OpenGLMinorVersion.OpenGLMinorVersion{FC|COMPAT].
FC는 앞으로 호환되는 컨텍스트를 의미합니다. COMPAT은 OpenGL 3.2 이상에 대한 호환성 컨텍스트와 OpenGL 3.1에 대해 활성화된 GL_ARB_compatibility를 의미합니다. 버전 번호 뒤에 문자열이 없다는 것은 OpenGL 3.0에서 더 이상 사용되지 않는 기능이 활성화되고 Mesa 18.1 이후 OpenGL 3.1에서 활성화된 GL_ARB_compatibility 및 OpenGL 3.2 이상에 대한 핵심 프로필과 같이 지정된 OpenGL 버전에 대한 Mesa3D 기본 컨텍스트 유형을 의미합니다. 예: 3.3FC는 OpenGL 3.3 이후 호환 컨텍스트를 의미하고, 3.1COMPAT는 GL_ARB_compatibility가 포함된 OpenGL 3.1을 의미하며, 3.2는 OpenGL 3.2 코어 프로필을 의미합니다. llvmpipe 드라이버의 기본값은 Mesa>=21.3의 경우 4.5COMPAT, Mesa>=18.1의 경우 3.1COMPAT, Mesa<=18.0의 경우 3.0COMPAT입니다.
이 변수가 제공하는 매우 중요한 기능은 불완전한 OpenGL 컨텍스트를 구성할 수 있다는 것입니다. 프로그램은 사용 중인 Mesa3D 드라이버에서 Khronos 인증이 완료된 최고 OpenGL 컨텍스트까지만 요청할 수 있습니다. 현재 llvmpipe는 모든 OpenGL 프로필에서 OpenGL 4.5에 대해 인증되었습니다. 현재 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의 기본값: MESA_GL_VERSION_OVERRIDE가 정의되지 않거나 코어 프로필과 일치하는 경우 Mesa 21.3의 경우 450, Mesa 18.1의 경우 140, Mesa 18.0의 경우 130입니다.
Windows에서 환경 변수를 설정하는 가장 쉬운 방법은 배치 파일을 작성하는 것입니다. 다음과 같이 해야 할 가능성이 높습니다.
기본적으로 선택된 Mesa3D 드라이버에 의해 노출되는 것보다 더 높은 OpenGL 및 GLSL 버전이 필요한 모든 애플리케이션에 대해;
데스크탑 OpenGL에 대해 기본이 아닌 드라이버를 선택하려는 경우;
이전 프로그램 호환성을 위해 확장 목록을 정리해야 하는 경우.
간단히 메모장을 열고 배치 스크립트를 작성하세요. 저장할 때 파일 이름을 .bat 또는 .cmd로 끝내고 저장 형식을 모든 파일로 변경하고 저장 위치를 응용 프로그램 실행 파일이 있는 곳으로 변경합니다. 배치 스크립트에 대한 기술이 있는 경우 CD 명령을 사용하여 스크립트 실행 중에 현재 디렉터리를 변경할 수 있으며 rpcs3 및 GPU Caps Viewer 예제에 표시된 대로 원하는 위치에 스크립트를 저장할 수 있습니다. Mesa에서 사용하는 대부분의 환경 변수에 대한 문서는 여기에서 확인할 수 있습니다. 전체 예제는 여기에서 확인할 수 있습니다.
Mesa3D가 제공하는 기능을 혼합하기 위해 동일한 배치 스크립트에 여러 환경 변수를 설정할 수 있습니다.