메사(컴퓨터 그래픽스)
Mesa (computer graphics)원저작자 | 브라이언 폴 |
---|---|
개발자 | 현재:인텔, AMD, VMware 이전 버전:텅스텐[1] 그래픽스 |
초기 릴리즈 | 1995년 2월 |
안정된 릴리스 | 22.1.3[2] / 2022년 6월 ; 전( ) |
저장소 | |
기입처 | C++, C, 어셈블리 언어 |
운영 체제 | 크로스 플랫폼(BSD, Haiku, Linux 등) |
유형 | 그래픽스 라이브러리 |
면허증. | MIT 라이선스 |
웹 사이트 | mesa3d |
Mesa3D 및 The Mesa 3D Graphics Library라고도 불리는 Mesa는 OpenGL, Vulkan 및 기타 그래픽 API 사양의 오픈 소스 구현입니다.Mesa는 이러한 사양을 벤더 고유의 그래픽 하드웨어 드라이버로 변환합니다.
가장 중요한 사용자는 주로 인텔과 AMD가 각각의 하드웨어용으로 개발 및 자금을 조달한2개의 그래픽 드라이버입니다(AMD는 Mesa 드라이버 Radeon과 Radeon을 홍보합니다).더 이상 사용되지 않는 AMD Catalyst보다 SI가 우선하며 Intel은 Mesa 드라이버만 지원했습니다.)독자적인 그래픽스 드라이버(Nvidia GeForce 드라이버나 Catalyst 등)는 Mesa의 모든 것을 대체하고, 독자적인 그래픽스 API를 실장합니다.Nouveau라고 불리는 Mesa Nvidia 드라이버를 작성하기 위한 오픈 소스 작업은 대부분 커뮤니티에 의해 개발됩니다.
게임과 같은 3D 응용 프로그램 외에도 최신 디스플레이 서버(X.org의 Glamor 또는 Wayland의 Weston)는 OpenGL/EGL을 사용합니다. 따라서 모든 그래픽은 일반적으로 Mesa를 통과합니다.
Mesa는 freedesktop.org에 의해 주최되며, 1993년 8월에 Brian Paul에 의해 시작되었으며, 그는 여전히 이 프로젝트에서 활동하고 있습니다.Mesa는 이후 널리 채택되어 OpenGL 사양을 관리하는 Khronos 그룹의 그래픽 하드웨어 제조업체를 포함한 전 세계 다양한 개인 및 기업으로부터 많은 기여를 받고 있습니다.Linux의 경우 크라우드 [3]펀딩에 의해 개발도 부분적으로 추진되고 있습니다.
개요
렌더링 API 구현
Mesa는 그래픽 API를 수용하는 구현으로 알려져 있습니다.지금까지 Mesa가 구현한 주요 API는 OpenGL과 다른 Khronos Group 관련 사양(OpenVG, OpenGL ES, 최근의 EGL 등)입니다.그러나 Mesa는 다른 API를 구현할 수 있으며,[5] 실제로 2013년 7월부터 Glide(사용되지 않음)와 Direct3D 9에서 구현되었습니다.또한 Mesa는 Unix와 유사한 운영 체제에만 한정되지 않습니다. 예를 들어, Windows에서는 Mesa는 DirectX를 통한 OpenGL API를 제공합니다.
Mesa는 OpenGL 등의 그래픽스 API와 운영체제 커널 내의 그래픽스 하드웨어 드라이버 간에 변환 레이어를 구현합니다.지원되는 버전의 그래픽 API는 드라이버에 따라 달라집니다.이는 각 하드웨어 드라이버에 고유한 구현(즉, 상태)이 있기 때문입니다.이것은, 「클래식」드라이버에서는 특히 유효합니다만, Gallium 3D 드라이버에서는, 서포트되고 있는 확장과 버전을 균질화하는 공통의 코드를 공유하고 있습니다.
Mesa는 현재 OpenGL 준거[6][7] 상태를 mesamatrix.net에서 시각화한 지원 매트릭스를 유지합니다.Mesa 10은 Intel, AMD/ATI 및 Nvidia GPU 하드웨어용 OpenGL 3.3에 준거하고 있습니다.Mesa 11은 OpenGL 4.1 [8]준거 드라이버와 함께 발표되었습니다.
Mesa 12는 OpenGL 4.2 및 4.3과 인텔 Vulkan 1.0을 지원합니다.
Mesa 13은 OpenGL 4.4 및 4.5 (인텔 Gen 8+, Radeon GCN, Nvidia (Fermi, Kepler), 커뮤니티 드라이버 RADV2 Open을 통한 실험용 AMD Vulkan 1.0 지원 없음)를 인텔에서 지원했습니다.
2017년 1차 안정판은 17.0(새해 계수)[10][11][12]입니다.지원 기능은 OpenGL 4.5, 인텔 Haswell용 OpenGL 4.5, NVidia Maxwell [13][14]및 Pascal용 OpenGL 4.3(GM107+)[15]입니다.Maxwell 1(GeForce GTX 750Ti, GM1xx 등)을 통해 큰 성능 향상을 측정했습니다.Maxwell-2-Cards(GeForce GTX 980 및 GM2xx 탑재)는 NVidia [16]정보 없이 언더클럭됩니다.
OpenGL 4.4, 4.5 및 OpenGL ES 3.0+용 Khronos CTS 테스트 스위트는 현재(2017-01-24) 오픈 소스이며, Mesa 13과 17의 모든 테스트는 비용 [17]없이 가능합니다.
2017년의 두 번째 안정 버전인 17.1.0이 2017년 5월 10일에 출시되었으며, 몇 가지 흥미로운 개선 사항이 추가되었습니다.인텔 Ivy Bridge용 OpenGL 4.2+와 인텔 Open SWR Rasterizer용 OpenGL 3.3+가 [18][19]하이라이트입니다.
OpenGL의 모듈화된 특성으로 인해 Mesa는 OpenGL의 새로운 버전에 대한 완전한 지원을 요구하지 않고도 실제로 OpenGL의 새로운 버전에서 확장을 지원할 수 있습니다.예를 들어, 2016년 7월 Mesa는 OpenGL ES 3.1뿐만 아니라 5개를 제외한 모든 OpenGL ES 3.2 확장과 OpenGL 또는 OpenGL ES [20]버전에 포함되지 않은 여러 확장도 지원했습니다.
Mesa 및 Linux에 대한 미해결 질문은 High Dynamic Range(HDR)입니다.깨끗하고 기본적인 [21]구현을 위해 많은 문제와 미해결 지점이 파이프 안에 있습니다.
3rd Version 17.2는 2017년 9월부터 Intel 및 AMD용 OpenGL 4.6의 새로운 기능과 속도 향상을 통해 제공됩니다.Kepler의 [22]Nouveau에서 OpenGL 4.5에 대한 검정의 1.4%만이 불합격했습니다.
4번째 버전 17.3은 2017년 12월부터 준비되었습니다.많은 드라이버에서 많은 개량점을 이용할 수 있습니다.OpenGL 4.6은 거의 완전히 사용할 수 있습니다(Spir-V는 준비되지 않았습니다).AMD Vulkan 드라이버 RADV는 Kronos-Test에 [23]완전히 적합하게 되었습니다.
2018년 1차 버전은 18.0이며 2017년 [24]3월부터 동일한 방식으로 제공됩니다.OpenGL 4.6의 완전한 서포트는 준비되어 있지 않지만, RC3에서는 많은 기능과 개선점이 테스트되고 있습니다.인텔 i965 의 10 비트 컬러 지원도 하이라이트입니다.[25]인텔 Cannon Lake 및 AMD Vega의 실제 Linux 버전 지원이 새롭게 추가되었습니다.AMD Evergreen Chips(RV800 또는 R900)는 OpenGL 4.5를 거의 지원합니다.오래된 AMD R600 또는 RV700 칩은 OpenGL 4.x의 일부 기능에서만 OpenGL 3.3을 지원할 수 있습니다.Freedreno는 Adreno 하드웨어용 드라이버로 OpenGL 3.3을 거의 지원합니다.
2018년 2차 버전은 18.1이며 5월부터 제공됩니다.인텔 ANV 및 AMD RADV 드라이버의 대상은 Vulkan 1.1.72입니다.Spir-V를 탑재한 OpenGL 4.6도 주요 타깃입니다.AMD R600/Evergreen, Nvidia Tesla 및 이전 버전, Fermi, Kepler 또는 Intel Sandybridge, Ivybridge, Haswell 또는 Broadwell 등의 오래된 하드웨어용 드라이버의 기능 및 최적화를 상시 완료할 수 있습니다.ARM 아키텍처는 OpenGL ES를 주요 타깃으로 하는 Raspi용 Adreno 3xx/4xx/5xx 및 Broadwell VC4/VC5도 대폭 개선했습니다.
2018년 3차 버전은 18.2이며 9월에 캘린더 안정판으로 제공됩니다.OpenGL 4.6 with spir-V 및 Vulkan 1.1.80은 WIP에 포함되어 있습니다.가상 시스템용 소프트 드라이버 VIRGL이 OpenGL 4.3 및 OpenGL ES 3.2를 사용할 수 있습니다. RadeonSI는 OpenGL ES 3.2에도 대응하고 있습니다.ASTC 텍스처 압축 지원 및 OpenGL 4.4 호환성 모드 지원(18.1의 3.1)은 Radeon의 다른 주요 기능입니다.AMD GCN 카드용 SI.인텔과 AMD의 새로운 Vulkan 1.1 및 그 이상의 기능을 이용할 수 있습니다.메사매트릭스의 [26]벌칸 세부 정보를 참조하십시오.
2018년 4번째 버전은 18.3이며 안정 버전 18.3.1로 2018년 12월에 출시되었습니다.상세 및 새로운 하드웨어 지원의 많은 기능이 주요 부품입니다.OpenGL 4.6의 완전한 지원은 [27][28]준비되지 않았습니다.
2019년 1차 버전은 19.0으로 3월에 출시되었습니다.OpenGL 4.6의 완전한 지원은 아직 준비되지 않았지만,[29][30] 이 방법의 많은 개선 사항은 모든 드라이버에 있습니다.
2019년 두 번째 버전은 19.1입니다.TGSI에서 NIR로의 이행은 OpenGL 4.6과 Spir-V 및 기타 OpenCL로 이행하는 주요 기능 중 하나입니다.RadeonSI는 [31]NIR과 함께 dev-Version에서 잘 작동합니다.
2019년 세 번째 버전은 19.2입니다.OpenGL 4.6은 새로운 인텔 Iris [32]드라이버용 베타판입니다.
2019년 4번째 버전은 19.3입니다.OpenGL 4.6은 인텔 i965 대응으로 새로운 Iris 드라이버에는 옵션입니다.[33]
2020년의 첫 번째 버전은 20.0입니다.Vulkan 1.2는 AMD RADV 및 Intel ANV에 대응하고 있습니다.인텔 Iris는 인텔 Broadwell Gen 8+[34][35] 디폴트입니다.RadeonSI 드라이버는 기본적으로 TGSI가 아닌 NIR을 사용하도록 전환되었습니다.
2020년 두 번째 버전은 20.1입니다.많은 드라이버에서 많은 개선이 준비되어 있습니다.Zink는 OpenGL [36]over Vulkan의 새로운 가상 드라이버입니다.
2020년 3차 버전은 20.2입니다.OpenGL 3.0 for Zink는 새로운 기능 중 하나입니다.LLVMpipe는 OpenGL 4.3 이상(20.3에서는 4.5 이상)을 지원합니다.ARM Panfrost는 많은 모듈로 대부분 개선되었습니다.공유 가상 메모리는 Pascal [37][38][39]이후를 사용하는 Nouveau의 OpenCL에서 가능합니다.
2020년 4차 버전은 20.3입니다.v3d 및 v3dv는 Lasberry Pi 4와 같은 Broadcom 하드웨어를 탑재한 OpenGL 및 Vulkan 1.0의 새로운 드라이버입니다.OpenCL 1.2는 클로버 모듈에서 완전히 지원됩니다.Zink는 OpenGL 3.3+를 지원합니다.LLVMpipe 가상 드라이버는 4.6에서 OpenGL 4.5+를 지원하게 되었습니다.LLVMpipe의 벌칸 트리로서의 VALIUM이 [40][41][42]병합되었습니다.[43] [44]
Mesa 21.0에서는 d3d12가 OpenGL 3.0~3.3과 Marge됩니다.Microsoft와 Collabora는 WSL2의 새로운 에뮬레이션 d3d12를 Direct 3D 12를 탑재한 Windows 10으로 개발합니다.OpenCL 1.2도 d3d12의 타깃입니다.OpenGL 코드가 [45][46][47][48]개량된 벤치마크 SPECviewperf에서 팩터2 ~ 5의 가속화를 실시합니다.많은 Mesa 21.0 기능이 성능을 [49]향상시킵니다.New Release 21.0.0은 2021년 3월 11일부터 공개됩니다.
Mesa 21.1은 2021년의 [50]두 번째 릴리즈입니다.Zink에서는 OpenGL 4.6+ 및 OpenGL ES 3.1+를 사용할 수 있습니다.AMD 드라이버 600g은 NIR로 변경할 수 있습니다.구식 Radeeon HD 5000 및 6000 [51]카드에서는 더 많은 가능성이 있습니다.Qualcomm Turnip은 Vulkan 1.1+ 및 소프트웨어 에뮬레이션 Lavapipe Vulkan 1.1+에 도달합니다.구글 버트IO GPU 드라이버 Venus와 Vulkan 1.2+가 Messa 메인 [52]트리에서 낮은 성능으로 실험 상태로 병합되었습니다.
Mesa 21.2는 2021년의 세 번째 릴리즈입니다.Google Virtual Vulkan IO Driver Venus는 Vulkan 1.2+를 완전히 지원(메사매트릭스 추가)하여 공식 출시될 예정입니다.ARM 팬로스트:OpenGL ES 3.1+ 지원을 이용할 수 있으며 panVK는 새로운 Vulkan 드라이버입니다.ARM Apple M1의 초기 지원은 새로운 드라이버 아사히에서 시작되었습니다.21.2는 2021년 [53]8월 4일부터 이용 가능합니다.
오래된 계획은 오래된 드라이버를 클래식 트리로 분할하여 최신 갈륨 3D 부품의 프로그래밍, 지원, 버그 수정에 많은 이점을 제공하는 것입니다.여기서 문제가 되는 것은 인텔 i965와 인텔 Haswell에 대한 일반적인 구식 하드웨어 지원 및 이전 Windows 10 [54]지원입니다.인텔 Gen 4 Graphics to Haswell용 새로운 Galium 3D 드라이버 Crocus는 2021년에 분할 가능한 Galium 3D 영역을 완성하기 위해 개발 중입니다.Crocus는 21.[55]2에서 선택 가능합니다.버전 22.0 에서는, 클래식 드라이버는 폐기됩니다.Vulkan 1.3은 Intel Anvil 및 AMD [56]RADV에서 사용할 수 있습니다.
Microsoft는 WSL 2의 새로운 드라이버 「Dozen」을 개발 초기 단계에서, Mesa 22.1의 d3d12보다 Vulkan으로서 도입하고 있습니다.[57]
렌더링 API 표
메사 버전 | 첫 출시일 | 최종[58] 갱신 | 불칸 | OpenCL | 오픈GL | OpenGL ES | 오픈 VG | EGL | GLX | 다이렉트 3D |
---|---|---|---|---|---|---|---|---|---|---|
1.3.219 2022-06-30 | 3.0 2020-11-30 | 4.6 2017-07-31 | 3.2.6 2019-07-10 | 1.1 2008-12-03 | 1.5 2014-03-19 | 1.4 2005-12-16 | 12 2015-07-29 | |||
22.1 | 2022-05-20 | 22.1.3 [24][59] | 1.3.211: 1.3+(인텔 Gen8+, AMD GCN Gen2+, Lavapipe), 1.2+(Google Venus), 1.1+(Qualcomm Turnip), 1.0+(AMD GCN1, Broadcom v3, ARM Mali PanVK) | 1.0, 1.1, 1.2(완전 지원), 3.0(21.1의 일부 기능 포함) | 4.6(19.3: 인텔 Gen 8+, 20.0: AMD GCN, 21.1: Zink, llvmipe, 21.2: 인텔 Gen 7.5) | 3.2 (20.3: 인텔 i965, AMD radeonsi, llvmipe, VirGL, freedreno, Zink(21.3), 3.1: AMD r600, Nvidia nvC0, 소프트파이프, Broadcom v3d, ARM Panfrost(21.3), d3d(22.0) | --[60][61] | 1.5 | 1.4 | 9.0c[62][63] |
보수 22.0 | 2022-03-09 | 22.0.5 [24][64] | 1.3.204: 1.3 이상(인텔 Gen8+, AMD GCN Gen2+), 1.2 이상(Google Venus), 1.1 이상(Lavapipe, Qualcomm Turnip), 1.0 이상(AMD GCN1, Broadcom v3dv, ARM Mali PanVK) | |||||||
버전 더 이상 되지 않음: | 2021-11-17 | 21.3.9 [24][65] | 1.2.190 (인텔 Gen8+, AMD GCN Gen2+, Google Venus, Lavapipe), 1.0+ (AMD GCN1, Broadcom v3dv), 1.1+ (Qualcomm Turnip) | |||||||
버전 더 이상 되지 않음: 21.2 | 2021-08-04 | 21.2.6 [24][66] | 1.2.175(인텔 Gen8+, AMD GCN Gen2+, Google Venus), 1.0+(AMD GCN1, Broadcom v3dv), 1.1+(Lavapipe, Qualcomm Turnip) | |||||||
버전 더 이상 되지 않음: | 2021-05-05 | 21.1.8 [24][67] | 1.2.168(인텔 Gen8+, AMD GCN Gen2+), 1.0+(AMD GCN1, Broadcom v3dv), 1.1+(Lavapipe, Qualcomm Turnip) | |||||||
버전, 보수 21.0 | 2021-03-11 | 21.0.3[24][68] | 1.2.162(인텔 Gen8+, AMD GCN Gen2+), 1.0+(AMD GCN1, Broadcom v3dv) | |||||||
버전 더 이상 되지 않음: | 2020-12-03 | 20.3.5[24][69] | 1.2.158(인텔 Gen8+, AMD GCN Gen2+), 1.0+(AMD GCN1, Broadcom v3dv) | |||||||
버전 더 이상 되지 않음: | 2020-09-28 | 20.2.6[24][70] | 1.2.145(인텔 Gen8+, AMD GCN Gen2+), 1.0+(AMD GCN1) | 1.0, 1.1, 1.2(WIP) 적합성 테스트에 불합격하는 경우가 있습니다. | ||||||
버전 더 이상 되지 않음: | 2020-05-27 | 20.1.10[24][36] | 1.2.139(인텔 Gen8+, AMD GCN Gen2+), 1.0+(AMD GCN1) | |||||||
버전 더 이상 보수되지 않음: | 2020-02-19 | 20.0.8[24][71] | 1.2+ (인텔 Gen8+, AMD GCN Gen2+) | |||||||
버전 더 이상 되지 않음: 19.3 | 2019-12-11 | 19.3.5[24][72][73] | 1.1+ (인텔 Gen8+, AMD GCN Gen2+) (19.1: 1.1.104 19.0: 1.1.102, 18.3: 1.1.90, 18.2: 1.1.84) | |||||||
버전 더 이상 되지 않음: 19.2 | 2019-09-25 | 19.2.8[24] | 4.5 | |||||||
버전 더 이상 되지 않음: | 2019-06-11 | 19.1.8[24] | ||||||||
버전 더 이상 되지 않음: | 2019-03-13 | 19.0.8 | ||||||||
버전 더 이상 되지 않음: | 2018-12-07 | 18.3.6 | ||||||||
버전 더 이상 되지 않음: | 2018-09-07 | 18.2.8[26] | ||||||||
버전, 보수 18.1 | 2018-05-18 | 18.1.9[74] | 1.1 (인텔 Gen8+, AMD GCN Gen2+ (1.1.73) | |||||||
버전, 보수 18.0 | 2018-03-27 | 18.0.5 | 1.0+ (1.0.66) | |||||||
버전 더 이상 되지 않음: 17.3 | 2017-12-08 | 17.3.9 | 1.0 (PC: Intel Gen7+ Ivy Bridge, RADV AMD GCN만 해당) (헤더: 17.3: 1.0.63, 17.2: 1.0.54, 17.1: 1.0.42, 17.0: 1.0.3) | 갈륨에 의해 개발되었다. 컴퓨팅(클로버): 일부 CTS-테스트 실패 1.0 및 1.1에서는 1.2 (WIP), 따라서 1.0, 1.1, 1.2 불완전한[75][76] | ||||||
버전 더 이상 되지 않음: 17.2 | 2017-09-04 | 17.2.8 | ||||||||
버전 더 이상 되지 않음: | 2017-05-10 | 17.1.10 | ||||||||
버전 더 이상 보수되지 않음: | 2017년[77][10] 2월 13일 | 17.0.7 | ||||||||
버전, 보수 13.0 | 2016-11-01[78] | 13.0.6 | 4.4 (4.5 테스트 라벨 없음) | |||||||
버전, 보수 12.0 | 2016-07-08[79] | 12.0.6 | 4.3[79] | 3.1 | ||||||
버전 더 이상 되지 않음: | 2016-04-04[80] | 11.2.2 | — | 4.1 (인텔 3.3+) | ||||||
버전 더 이상 보수되지 않음: | 2015-12-15[81] | 11.1.4 | 3.0 | |||||||
버전, 보수 11.0 | 2015-09-12[82] | 11.0.9 | ||||||||
버전 더 이상 보수되지 않음: | 2015-06-15[83] | 10.6.9 | 3.3[84] | 1.4 | ||||||
버전, 보수 10.5 | 2015-03-06[85] | 10.5.9 | 1.1 | |||||||
버전 더 이상 보수되지 않음: | 2014-12-14[86] | 10.4.7 | ||||||||
버전 더 이상 보수되지 않음: | 2014-09-19[87] | 10.3.7 | — | |||||||
버전 더 이상 보수되지 않음: | 2014-06-06[88] | 10.2.9 | ||||||||
버전 더 이상 보수되지 않음: | 2014-03-04[89] | 10.1.6 | ||||||||
버전, 보수 10.0 | 2013-11-30[90] | 10.0.5 | ||||||||
버전, 보수 9.0 | 2012-10-08 | 9.0.3, 9.1.7, 9.2.5 | — | 3.1 | 2.0 | |||||
버전, 보수 8.0 | 2012-02-08 | 8.0.5 | 3.0 | |||||||
버전, 보수 7.0 | 2007-06-22 | 7.0.4, ..., 7.11.2 | 2.1 | — | — | — | ||||
버전 더 이상 보수되지 않음 | 2004-01-06 | 6.0.1 | 1.5 | 1.3 | ||||||
버전, 보수 5.0 | 2002-11-13 | 5.0.2 | 1.4 | |||||||
버전, 보수 4.0 | 2001-10-22 | 4.0.4 | 1.3 | |||||||
버전, 보수 3.0 | 1998-09 | 3.1, 3.2.1, 3.4.2.1 | 1.2 | |||||||
버전, 보수 2.0 | 1996-10 | 2.6 | 1.1 | |||||||
버전 더 이상 보수되지 않음 | 1995-02 | 1.2.8 | 1.0 | |||||||
범례: 구버전 이전 버전, 아직 유지 관리됨 최신 버전 최신 프리뷰 버전 향후 출시 |
불칸
크로노스 그룹은 2015년 3월 벌칸 API를 공식 발표했으며 2016년 2월 16일 벌칸 1.0을 공식 출시했다.Vulkan은 OpenGL과의 호환성을 깨고 일체형 시스템 개념을 완전히 폐기합니다.Galium3D의 개발자는 Vulkan을 Galium3D 2.0 – Galium3D와 유사한 것으로 불렀습니다.OpenGL 스테이트 머신을 구현하는 코드와 하드웨어 고유의 코드를 분리합니다.
버전 1.3은 Mesa 22.0에서 즉시 사용할 수 있습니다.OpenGL ES 3.1을 지원하는 하드웨어는 Vulkan 레벨 1.3 [91]이전에서 실행해야 합니다.
갈륨3D가 TGSI를 섭취하면 벌칸은 SPER-V(Vulkan과 같이 표준 휴대용 중간 표현 버전 V)를 섭취합니다.
인텔은 정식 사양이 공개된 날 하드웨어용 벌칸 드라이버를 출시했지만, 4월에야 메인라인화 되어 2016년 7월에 출시된 Mesa 12.0의 일부가 되었습니다.i965 드라이버는 이미 Galium3D 사양에 따라 작성되지 않았지만, Vulkan 드라이버의 경우 Galium3D 위에 플랜지하는 것이 더 의미가 없습니다.마찬가지로 NIR로 플랜지할 기술적 이유는 없지만 인텔의 직원들은 Vulkan 드라이버를 그렇게 [92]구현했습니다.
3월에[when?] 발매된 AMD의 독자 사양의 벌칸 드라이버는, 향후의 프리 오픈·소프트웨어로서 공개되어 메사에 메인 라인이 되는 것으로 알려져 갈륨3D도 [93]포기될 것으로 예상된다.
RADV는 AMD의 무료 프로젝트로 버전 [9]13부터 이용 가능합니다.Kronos-Test에 준거한 버전은 17.3입니다.실제는 Mesa 18.1 이후 Vulkan 1.0 및 1.1을 완전히 지원합니다.
Nvidia는 출시 당일 Vulkan 지원 GeForce 드라이버를 출시했으며 Imagination Technologies(PowerVR), Qualcomm(Adreno) 및 ARM(Mali)도 Android 및 기타 운영체제용 Vulkan 드라이버를 동일하게 실행했거나 최소한 발표했습니다.그러나 이러한 GPU에 대한 추가 무료 및 오픈 소스 Vulkan 구현이 언제 나타날지는 아직 알 수 없습니다.
Mesa Software Driver VIRGL은 가상 머신을 [94]지원하는 GSOC 프로젝트와 함께 2018년에 벌칸 개발을 시작합니다.
Lavapipe는 CPU 기반의 소프트웨어 벌칸 드라이버로 LLVMpipe의 형제입니다.Mesa Version 21.1은 Vulkan 1.1+[95]를 지원합니다.
Google은 Vulkan 1.2+[52]를 완벽하게 지원하는 Mesa 21.1 가상 머신용 Venus Vulkan 드라이버를 도입했습니다.
Qualcomm Turnip 및 Broadcom v3dv는 Qualcomm Adreno 및 Broadcom Rasberry 4 하드웨어의 새로운 드라이버입니다.Turnip은 OpenGL의 freedreno의 벌칸 형제입니다.V3dv는 Mesa 20.3 이후 Vulkan 1.0+를 지원합니다.버전 21.1에서는 Turnip은 Vulkan 1.1+[96][97][98]를 지원합니다.
ARM Mali의 Panfrost PanVK는 Vulkan 1.1로 이동 중이지만 Mesa 22.[99]0에서는 1.0만 사용할 수 있습니다.
명시적 펜싱
하나의 버퍼와 메모리의 나머지 부분을 분리하는 일종의 메모리 장벽은 펜스라고 불립니다.펜스는 렌더링 및 표시 작업이 완료되기 전에 버퍼를 덮어쓰지 않도록 하기 위한 것입니다.그래픽 드라이버와 GPU 하드웨어 간의 동기화에 암묵적인 펜싱을 사용합니다.이 펜스는 버퍼가 다른 컴포넌트에서 작동하거나 재사용할 수 있도록 한 컴포넌트에서 더 이상 사용되지 않을 때 신호를 보냅니다.과거에 Linux 커널에는 펜스가 버퍼에 직접 연결되는 암묵적인 펜싱 메커니즘이 있었습니다(cf).GEM 핸들 및 FD)는 인식되지 않습니다.명시적 펜싱을 사용하면 사용자 공간에 펜스가 노출되어 사용자 공간은 Direct Rendering Manager(DRM) 서브시스템과 GPU 양쪽에서 펜스를 얻을 수 있습니다.Vulkan은 명시적 펜싱을 필요로 하며 트레이스 및 디버깅에 이점을 제공합니다.
리눅스 커널 4.9는 안드로이드의 동기화 프레임워크를 메인라인에 [100]추가했다.
범용 버퍼 관리
GBM(Generic Buffer Management)은 Mesa에 연결된 그래픽 렌더링에 버퍼를 할당하는 메커니즘을 제공하는 API입니다.GBM은 DRM 또는 openwfd에서 EGL의 네이티브 플랫폼으로 사용하는 것을 목적으로 하고 있습니다.작성된 핸들을 사용하여 EGL을 초기화하고 렌더링 대상 [101]버퍼를 작성할 수 있습니다.
Mesa GBM은 그래픽 드라이버 고유의 버퍼 관리 API(예를 들어 다양한 libdrm_* 라이브러리)를 추상화한 것입니다.Mesa GPU 드라이버를 호출하여 내부적으로 구현됩니다.
예를 들어 Wayland 컴포지터 Weston은 OpenGL ES 2를 사용하여 렌더링을 수행하며, OpenGL ES 2는 EGL을 호출하여 초기화합니다.서버는 「베어 KMS 드라이버」로 동작하기 때문에, Mesa GBM 인터페이스에 의존하기 때문에, 실제로는 GBM 플랫폼이라고 불릴 수 있는 EGL DRM 플랫폼을 사용합니다.
XDC2014에서 Nvidia의 직원 Andy Ritger는 [102]GBM을 대체하기 위해 EGL을 강화할 것을 제안했습니다.이는 커뮤니티에서 긍정적으로 받아들여지지 않았고, Nvidia는 결국 마음을 [103]바꿔 다른 접근방식을 취했습니다.
비디오 액셀러레이션 API 구현
비디오 스트림의 부호화 및 디코딩에 필요한 계산에는 다음 3가지 방법이 있습니다.
- 비디오 압축 또는 압축 해제 알고리즘(일반적으로 CODEC라고 불린다)의 소프트웨어 실장을 사용하여 CPU 상에서 이 소프트웨어를 실행합니다.
- 비디오 압축 또는 압축 해제 알고리즘(일반적으로 코덱이라고 함)의 소프트웨어 구현을 사용하여 GPU(3D 렌더링 엔진)에서 이 소프트웨어를 실행합니다.
- 비디오 압축 또는 압축 해제 알고리즘의 완전한 하드웨어 구현(또는 부분)을 사용합니다.GPU/CPU/APU/SoC의 칩에 이러한 ASIC를 통합하는 것은 매우 일반적인 일이 되어, 풍부한 가용성이 확보되고 있습니다.마케팅상의 이유로 기업은 Pure Video(Nvidia), Unified Video Decoder(U) 등의 ASIC 브랜드를 확립하고 있습니다.AMD(Video Coding Engine), AMD(Quick Sync Video(Intel), DaVinci(Texas Instruments), CedarX(Allwinner), Crystal HD(Broadcom) 등 일부 ASIC는 반도체 지적재산권 코어로 라이선싱이 가능합니다.일반적으로 버전마다 다른 비디오 압축 및/비디오 압축 해제 알고리즘을 지원합니다.하드웨어 초기화 및 낮은 수준의 작업을 수행하기 위해 커널 드라이버에 속합니다.사용자 공간에서 실행되는 Mesa에는 소프트웨어용 API(VLC 미디어 플레이어, GStreamer, HandBrake 등)가 구현되어 있어 ASIC에 편리하게 액세스할 수 있습니다.
- 비디오 액셀러레이션 API(VAAPI)– AMD 및 인텔에서 사용되는 Linux용 가장 일반적인 API
- 비디오 디코딩 및 프레젠테이션 API for Unix (VDPAU)– Nvidia에서 사용
- DirectX 비디오 액셀러레이션 (DXVA)– Microsoft Windows만
- OpenMAX IL – Khronos Group이 비디오 압축용으로 설계
- Distributed Codec Engine (DCE; 분산 코덱 엔진)– Texas Instruments 설계
- X-Video Bitstream Acceleration (XvBA)– Xv로 확장 - VAAPI 성공
- X-Video Motion Compension (XvMC)– Xv로 확장 - VAAPI 성공
예를 들어 Nouveau는 Mesa의 일부로 개발되었지만 Linux 커널 컴포넌트도 포함하고 있습니다.Nouveau는 PureVideo 브랜드 ASIC를 지원하며 VDPAU를 통해 일부는 XvMC를 [104]통해 액세스합니다.
프리 Radeon 드라이버는 VDPAU 및 OpenMAX를 [105]통해 Unified Video Decoder 및 Video Coding Engine을 지원합니다.
V4L2는 웹캠 또는 TV 튜너에 의해 제공되는 비디오 비트스트림용 커널-투-사용자 공간 인터페이스입니다.
디바이스 드라이버
그래픽 칩셋에 사용할 수 있는 자유 및 오픈 소스 디바이스 드라이버는 Mesa에 의해 "결정"됩니다(기존 API의 자유 및 오픈 소스 구현은 Mesa 내부에서 개발되기 때문입니다).현재 그래픽 드라이버를 쓰는 프레임워크는 "클래식"과 "갤륨3D"[106] 두 가지가 있습니다.Mesa에서 이용할 수 있는 드라이버의 일부(전부는 아니지만)에 대한 개요는 mesamatrix.net에서 확인할 수 있습니다.
AMD/ATI R100에서 R800, Intel 및 Nvidia 카드용 디바이스 드라이버가 있습니다.이전에는 PlayStation 3, S3 Virge & Savage 칩셋, VIA 칩셋, Matrox G200 및 G400 [107]등의 IBM/Toshiba/Sony Cell APU용 드라이버가 존재했습니다.
프리 및 오픈 소스 드라이버는 독자적인 클로즈드 소스 드라이버와 경쟁합니다.하드웨어 문서의 가용성과 인적 능력에 따라 자유 및 오픈 소스 드라이버는 새로운 하드웨어의 3D 가속 지원에서 다소 뒤처집니다.또한, 3D 렌더링 성능은 몇 가지 주목할 만한 [108][109][110][111]예외를 제외하고는 일반적으로 상당히 느렸습니다.오늘날 Nouveau는 대부분의 NVIDIA GPU에 대해 여전히 해당되지만 AMD Radeon GPU에서는 오픈 드라이버가 독자 사양 드라이버의 퍼포먼스와 일치하거나 초과합니다.
다이렉트 렌더링 인프라스트럭처(DR)
PC의 3D 그래픽 카드가 주류가 되면서 일부 기업의 지원을 받는 개인들이 Mesa에 [when?]하드웨어 가속 3D 렌더링 지원을 추가하는 작업을 시작했습니다.다이렉트 렌더링 인프라스트럭처(DR)는 디바이스 드라이버와 하드웨어를 사용한 인터페이스 Mesa, OpenGL 및 기타 3D 렌더링 API 라이브러리에 대한 이러한 접근 방식 중 하나였습니다.기본적인 사용성 수준에 도달한 후, Mesa에 DRI 지원이 공식적으로 추가되었습니다.이것에 의해, Mesa [112]라이브러리를 사용할 때에 실현 가능한 하드웨어 서포트의 범위가 큰폭으로 넓어졌습니다.
DRI에 적응하면서 Mesa 라이브러리는 마침내 풀 스케일 OpenGL 프레임워크의 프론트 엔드 컴포넌트 역할을 이어받았습니다.이 컴포넌트는 완전한 소프트웨어 렌더링 기능을 그대로 유지하면서 다양한 수준의 3D 하드웨어 지원을 제공할 수 있습니다.전체 시스템은 많은 다른 소프트웨어 [112]컴포넌트를 사용했습니다.
설계상 이들 컴포넌트는 모두 신중하게 상호작용해야 하지만 이들 컴포넌트 간의 인터페이스는 비교적 고정되어 있습니다.그럼에도 불구하고, Mesa 스택과 상호작용하는 대부분의 컴포넌트가 오픈 소스이기 때문에, 실험 작업은 종종 여러 컴포넌트와 그들 사이의 인터페이스를 동시에 변경함으로써 이루어집니다.이러한 실험이 성공하면 다음 메이저 또는 마이너 릴리즈에 통합할 수 있습니다.이는 예를 들어 2007-2008년 기간에 개발된 DRI 규격 업데이트에 적용된다.이 실험의 결과인 DR2는 잠금 장치 없이 향상된 백 버퍼 지원으로 작동합니다.이를 위해 Mesa의 특별한 git 브랜치를 만들었습니다.[113]
DRI3는 2013년부터 Intel[114][115] 드라이버에 의해 지원되며 2016년부터[116] 일부 Linux 디스트리뷰션에서는 기본 제공되므로 Vulkan 지원 등을 사용할 수 있습니다.2016년 후반(X)부터 AMD 하드웨어에서도 기본 설정입니다.Org Server 1.18.3 이후).[117]
소프트웨어 렌더러
Mesa는 또한 라고 불리는 소프트웨어 렌더링의 구현을 포함합니다. 그래픽스 하드웨어 액셀러레이터가 없을 때 예비로서 CPU 상에서 셰이더를 실행할 수 있는 swrast.Gallium 소프트웨어 래스터라이저는 소프트파이프라고 불리며 [118][119]런타임에 CPU 코드를 생성하는 LLVlvmipe를 지원하는 경우입니다.Mesa 10.x OpenGL 3.3+는 Softpipe(10.3) 및 LLVMpipe(10.2)에서 지원되기 때문입니다.OpenGL 4.x의 기능의 약 80%는 Mesa 17.3에 구현되어 있습니다(메사매트릭스 참조).
Mesa 12.0에서는 대규모 데이터 세트용 클러스터로 새로운 인텔 Rasterizer OpenSWR을 이용할 수 있습니다.게임이나 아트 이미지보다 엔지니어링 시각화에 중점을 두고 있으며 x86 프로세서에서만 작동합니다.[120]한편 OpenGL 3.1+는 현재 지원됩니다.[121]LLVMPIPE와 관련된 29 ~51의 가속도 값이 일부 [122]예에서 측정되었습니다.OpenGL 3.3+는 Mesa 17.1 이후 OpenSWR에서 지원됩니다.
VirGL은 OpenGL 3.3을 지원하여 2015년부터 Mesa 11.1에서 구현된 가상 머신용 Rasterizer로, Mesa 18부터 Mesamatrix에 소개되었습니다.실제로 새로운 Mesa 18.2에서는 OpenGL 4.3 및 OpenGL ES 3.2를 다른 제품보다 더 많이 지원합니다.OpenGL 4.4 및 4.5 기능의 약 80%가 현재 사용 가능합니다.벌칸 개발은 GSOC 2018 [123][124][125][94][126][127]프로젝트부터 시작합니다.
D3d12는 Direct3D 12를 사용한 OpenGL 3.3+ 및 OpenCL 1.2+의 WSL2 에뮬레이션을 위한 Microsoft의 프로젝트입니다.D3D12는 21.[45]0으로 통합되었습니다.
비너스는 새로운 벌칸 버트입니다.Google의 가상 시스템에서 GPU용 IO GPU 드라이버입니다.금성은 21.1년에 합병되었고 일반인들은 21.2년에 도입되었다.[52]
메가 드라이버
복수의 드라이버를 1개의 「메가」드라이버에 번들 하는 아이디어는, Emma Anholt에 의해서 제안되었습니다.공유 Mesa 코드의 1개의 카피를 복수의 드라이버간에 사용할 수 있습니다(각 드라이버에 개별적으로 존재하는 것이 아니라).또, 내부 라이브러리 인터페이스가 [129]삭제되기 때문에, 개별의 공유 라이브러리보다 뛰어난 퍼포먼스를 제공합니다.VDPAU 및 XvMC의 상태 추적기는 별도의 [130]라이브러리가 되었습니다.
셰이더db
shader-db는 다양한 컴퓨터 게임과 벤치마크에서 수집된 약 20,000개의 셰이더와 이들을 컴파일하고 통계정보를 수집하기 위한 스크립트입니다.Shader-db는 최적화를 검증하기 위한 것입니다.
예기치 않게 많은 수의 셰이더가 수기로 작성되지 않고 생성되고 있는 것을 알 수 있었습니다.즉, 이러한 셰이더는 원래 HLSL로 작성되어 HLSL2GLSL 등의 일부 번역 프로그램에 의해 GLSL로 변환됩니다.문제는 생성된 코드가 최적과는 거리가 먼 경우가 많다는 것입니다.Matt Turner는 Mesa의 컴파일러가 이렇게 비대해진 셰이더를 처리하는 부담을 떠안게 하는 것보다 번역 프로그램에서 이것을 수정하는 것이 훨씬 더 쉬웠다고 말했다.
shader-db는 자유 오픈소스 소프트웨어로 간주할 수 없습니다.합법적으로 사용하려면 셰이더가 속한 모든 컴퓨터 게임에 대한 라이센스가 있어야 합니다.
소프트웨어 아키텍처
Mesa에서 말하는 "사용자 모드 그래픽 장치 드라이버(UMD)"는 일반적으로 장치 드라이버라고 불리는 것과 거의 공통점이 없습니다.몇 가지 차이점이 있습니다.
- 기존 커널 모드 그래픽스 디바이스 드라이버에서 동작하도록 되어 있습니다.예를 들어, 이 드라이버는 소스 코드에서 발견된 Linux 커널의 일부로 사용할 수 있습니다.
/drivers/gpu/drm/
각 UMD는 특정 라이브러리, 이름 libdrm_specific 및 일반 라이브러리 libdrm의 도움을 받아 커널 모드와 통신합니다.이 섹션은 libdrm 위의 사용자 모드 부분에만 대해 설명합니다. - 예를 들어, 유한 상태 기계의 구현이 있다.OpenGL. 이 OpenGL 상태 머신의 구현은 여러 UMD 간에 공유될 수 있습니다.
- 예를 들어 GLSL을 수집하여 최종적으로 기계 코드를 출력하는 일종의 컴파일러로 구성되어 있습니다.파서는 여러 UMD 간에 공유되거나 고유할 수 있습니다.
Mesa의 중간 표현
Mesa의 목표 중 하나는 각 GPU에 의해 실행되는 코드의 최적화이며, 다른 하나는 코드의 공유이다.이 문서에서는 소프트웨어의 일부를 문서화하는 대신 컴파일 및 최적화 과정에서 사용되는 중간 표현에 대해 설명합니다.Abstract Syntax Tree(AST; 추상 구문 트리) 및 Static Single Assignment Form(SSA 형식)을 참조하십시오.
스피르-V
SPIR-V는 표준 휴대용 중간 표현의 특정 버전입니다.그래픽스 애플리케이션은 GLSL 대신 SPER-V를 출력합니다.후자에 비해 SPR-V는 바이너리 방식으로 다른 드라이버 구현의 GLSL 컴파일러 프런트엔드 간의 구현 차이를 방지합니다.이는 애플리케이션 비호환성과 버그의 주요 원인이었습니다.또한 SPIR-V 바이너리도 일반적으로 몇 가지 일반적인 최적화를 통과합니다.또한 SPIR-V의 바이너리 표현은 일부 소프트웨어 벤더에게 지적재산권 보호의 한 형태로 어필할 수 있는 난독화 기능을 어느 정도 제공합니다.그러나 SPIR-V에는 충분한 반영 정보와 SPIR-V를 고품질의 사람이 판독할 수 있는 고급 코드로 되돌리는 도구가 포함되어 있습니다.UMD는 지원되는 하드웨어에 고유한 최적화만 적용하면 됩니다.
GLSL IR
- cgit.freedesktop.org/mesa/mesa/tree/src/compiler/glsl/README
- XDC2014, Matt Turner:YouTube 동영상, Matt Turner - GLSL 컴파일러: 우리가 어디에 있었고 어디로 가고 있는지
- XDC2015, Matt Turner:동영상 유튜브, www.x.org/wiki/Events/XDC2015/Program/turner_glsl_compiler.pdf
메사 IR
NIR
NIR(New Internal Representation)는 TGSI [131][132]제한을 극복하기 위해 도입되었습니다.NIR는 Spir-V 지원의 기반으로서 지난 릴리스와 실제 릴리스에서 확장되었으며 2016년 이후 주요 개발 영역입니다.LLVMpipe, i965, RadeonSI, Nouveau, freedreno, VC4는 TGSI에서 NIR로 변경되었습니다.RADV, Zink 및 기타 새로운 드라이버는 NIR로 시작됩니다.OpenGL 4.6을 완전히 지원하는 모든 드라이버는 NIR by SPIR-V 지원과 관련이 있습니다.또, AMD r600에는, HD5000 및 HD6000 시리즈를 보다 효과적으로 서포트하기 위한 NIR 가 탑재되어 있습니다.R600의 이 옵션은 Mesa 21.0 이후 디폴트입니다.
- 코너 애보트 - NIR 또는 Mesa XDC2014 GLSL IR를 넘어서는 경우
- cgit.freedesktop.org/mesa/mesa/tree/src/compiler/nir/README
- fosdem.org/2016/schedule/event/i965_nir/attachments/slides/1113/export/events/attachments/i965_nir/slides/1113/nir_vec4_i965_fosdem_2016_rc1.pdf
- Radeon의 NIRSI
- Nouveau 업데이트 2018
- Nouveau with NIR in Mesa 19.3
TGSI
TGSI(Tungsten Graphics Shader Infrastructure)는 2008년에 Tungsten Graphics에 의해 도입되었습니다.모든 Galium 3D 스타일의 UMD는 TGSI를 흡수합니다.NIR는 현재 주요 개발 영역입니다.따라서 TGSI는 r300g 디폴트인프라스트럭처와 같은 오래된 드라이버만을 대상으로 하며 몇 년 안에 폐지될 예정입니다.
GLSL-To-TGSI 코드는 Mesa 22.2에서 삭제됩니다.기본값은 모든 기본 NIR 드라이버에 대해 GLSL-to-NIR를 사용하는 새로운 NIR-to-TGSI입니다.일부 이전 TGSI 드라이버는 이 NIR 코드 경로에서 지원됩니다.이후 NIR-To-TGSI는 네이티브 NIR 드라이버에만 [133]권장되지 않습니다.
LLVM IR
UMDsradeonsi
그리고.llvmpipe
머신 코드를 출력하지 않고 LLVM IR을 실행합니다.여기서부터는 LLVM이 최적화 및 머신 코드로 컴파일합니다.즉, 특정 최소 버전의 LLVM도 설치해야 합니다.
RADV ACO IR
RADV ACO는 Radeon GPU(GCN 1+, GFX6+) GPU 위에 있는 Vulkan Spir-V 셰이더의 엔드 바이너리 코드를 최적화 및 생성하기 위해 NIR에 가까운 자체 IR을 사용합니다.버전 20.1.0 이후 ACO는 RADV(Vulkan 드라이버)에서만 사용되며 Radeon에서는 사용되지 않습니다.아직 SI입니다.
Mesa의 GLSL 컴파일러
Mesa의 GLSL 컴파일러는 자체 IR을 생성합니다.각 드라이버는 LIR와 요구 사항이 매우 다르기 때문에 HIR(고급 IR)과 LIR(저급 IR)를 구분합니다.
갈륨3d
원저작자 | 텅스텐 그래픽스 (현 VMware) |
---|---|
프리뷰 릴리즈 | 2010년[134] 4월 24일 0.4, 전( |
저장소 | |
기입처 | C++, C, 어셈블리 언어 |
운영 체제 | 크로스 플랫폼 |
유형 | 그래픽스 라이브러리 |
면허증. | MIT 라이선스 |
웹 사이트 | www |
Gallium 3D는 여러 운영체제, 렌더링 또는 비디오 액셀러레이션 API용 3D 그래픽 칩셋용 디바이스 드라이버 프로그래밍을 용이하게 하기 위한 인터페이스 세트 및 지원 라이브러리[135] 모음입니다.무료 오픈 소스 그래픽 디바이스 드라이버 소프트웨어입니다.
기능 매트릭스는 mesamatrix.net 에서 제공하고 있습니다.
Galium 3D의 개발은 2008년 텅스텐 [136]그래픽스에서 시작되었으며, 구현은 freedesktop.org에서 호스팅하는 Mesa 3D의 일부로 무료 오픈 소스 소프트웨어로 제공됩니다.드라이버 개발을 용이하게 하고, 그렇지 않으면 여러 드라이버의 중복된 코드를 한 번에 번들하여 최신 하드웨어 아키텍처를 지원하는 것이 주된 목표입니다.이것은, 예를 들면, 메모리 관리를 커널 DRI 드라이버에 맡기는 등, 보다 효율적인 분담을 실현하는 것에 의해서 행해집니다.
Galium3D는 2009년부터[137] Mesa의 일부로서 현재 Nvidia(nouveau 프로젝트),[138][139] AMD의 R300-R900,[140][141][142] 8세대 이상의 iGPU용 인텔의 'Iris' 드라이버 및 기타 자유 및 오픈 소스 GPU 디바이스 드라이버에 사용되고 있습니다.
소프트웨어 아키텍처
Galium3D는 그래픽스 디바이스 드라이버를 세 부분으로 분할하여 디바이스 드라이버 프로그래밍을 용이하게 합니다.이는 Galium3D State Tracker Interface와 Galium3D WinSys Interface의 2가지 인터페이스를 도입함으로써 실현됩니다.이 세 가지 컴포넌트는 다음과 같습니다.
갈륨3D 상태 추적기
- 디바이스 드라이버가 주소 지정되는 각 그래픽 API에는 자체 State Tracker가 있습니다.예를 들어 OpenGL용 Galium3D State Tracker와 Direct3D 또는 GLX용 Galium3D State Tracker가 있습니다.각 State Tracker는 Galium3D State Tracker 인터페이스의 구현을 포함하고 있으며, Galium3는 모두 공유됩니다.
Galium3D 하드웨어 디바이스 드라이버
- 이것은 기본 3D 그래픽 액셀러레이터에 고유한 실제 코드입니다. 단, Gallium 3D WinSys 인터페이스가 허용하는 범위 내에서만 가능합니다.사용 가능한 그래픽 칩마다 고유한 Galium 3D 하드웨어 디바이스 드라이버가 있으며 각각 Galium 3D State Tracker 인터페이스와 Galium 3D WinSys 인터페이스를 구현합니다.Galium 3D 하드웨어 디바이스 드라이버는 셰이더를 기술하는 중간 언어인 TGSI(Tungsten Graphics Shader Infrastructure)만 인식합니다.이 코드는 GLSL에서 TGSI로 변환된 셰이더를 GPU에 의해 구현된 명령 세트로 변환했습니다.
갈륨3D 윈시스
- 이는 운영 체제의 기본 커널에 고유하며 각 커널은 Galium3D WinSys 인터페이스를 구현하여 사용 가능한 모든 Galium3D 하드웨어 디바이스 드라이버와 인터페이스합니다.
기존 그래픽스 드라이버와의 차이점
Galium3D는 최신 하드웨어에서 발견되는 셰이더 유닛과 같은 표준 하드웨어 기능을 제공하는 통합 API를 제공합니다.따라서 OpenGL 1.x/2.x, OpenGL 3.x, OpenVG, GPGPU 인프라스트럭처 또는 Direct3D(와인 호환성 레이어에서 볼 수 있음)와 같은 3D API에는 Galium3D API를 대상으로 하는 스테이트 트래커라고 하는 단일 백엔드만 필요합니다.반면 클래식한 스타일의 DRI 디바이스 드라이버는 하드웨어 플랫폼마다 다른 백엔드가 필요하며 다른 API는 OpenGL로 변환해야 합니다.단, 코드 [144][145][146]복제는 불필요합니다.AMD Catalyst는 OpenGL과 Direct3D를 모두 실장하고 GeForce용 벤더 드라이버는 모두 실장하는 등 모든 벤더 디바이스 드라이버는 독자 사양과 클로즈드 소스의 특성을 가지고 있기 때문에 이러한 식으로 기술되어 있습니다.
Gallium 3D에서는 Direct Rendering Manager(DRM) 커널 드라이버가 메모리를 관리하고 Direct Rendering Interface(DR2) 드라이버는 GPU 처리 [147]지향적입니다.유저 스페이스 모드에서 커널 스페이스 모드로의 이행중에, Rade on 드라이버나 인텔의 드라이버등의 일부의 Mesa 3D 드라이버는 DRI1과 DRI2를 서포트해, 시스템에서 이용 가능한 경우는 DRI2를 사용했습니다.Galium3D는 다음과 같은 오래된 카드에서는 사용할 수 없는 수준의 셰이더 지원이 추가로 필요합니다.ATi r100-r200 에서는, 이러한 카드의 유저는, 3D 의 사용을 위해서 DRI2 와 함께 Mesa 3D 를 계속 사용할 필요가 있습니다.
텅스텐 그래픽스 셰이더 인프라스트럭처
TGSI(Tungsten Graphics Shader Infrastructure)는 Vulkan API 및 OpenCL 2.1에서 사용되는 LLVM Intermediate Representation 또는 새로운 Standard Portable Intermediate Representation(SPIR)과 같은 중간 표현입니다.OpenGL Shading Language로 작성된 셰이더는 TGSI로 변환/컴파일되고 최적화가 이루어지며 TGSI 셰이더는 사용된 GPU 명령어 세트의 셰이더로 컴파일됩니다.
NIR는 완전한 SPER-V를 지원하는 Mesa의 새로운 레이어 표현으로, 2019년 이후 OpenGL 4.6을 지원하는 모든 최신 드라이버의 주요 개발 영역입니다.
LLVM 사용률
또한 Gallium3D의 모듈러 구조를 사용하여 LLVM 컴파일러 스위트를 사용하여 셰이더 코드를 [148]즉시 최적화하는 모듈을 만드는 작업이 진행 중입니다.
라이브러리는 TGSI(Tungsten Graphics Shader Infrastructure)라고 불리는 확장 가능한 바이너리 중간 표현을 사용하여 각 셰이더 프로그램을 나타냅니다.이러한 표현을 LLVM은 타깃 하드웨어에 최적화된 GLSL 셰이더로 변환합니다.
도입
클린룸 리버스 엔지니어링을 통해 얻은 정보를 기반으로 작성되었거나 작성 중인 여러 프리 소스 그래픽 디바이스 드라이버는 Galium 3D에서 제공하는 드라이버 모델(예: nouveau 등)을 채택하고 있습니다(전체 목록은 Free 및 Open-source 그래픽 디바이스 드라이버를 참조하십시오).주된 이유는 Galium3D 드라이버 모델이 [original research?]작성에 필요한 코드의 양을 줄였기 때문일 수 있습니다.물론, 무료 소프트웨어 라이센스에 따라 라이센스가 부여되므로, 이 코드는 언제든지 DRI 또는 다른 드라이버 모델을 구현하기 위해 다시 작성될 수 있습니다.
역사
Gallium3D의 원저작자는 Tungsten Graphics의 Keith Whitwell과 Brian Paul이었습니다([149]2008년 VMware가 인수).
마일스톤
2011년 가을 현재, 적어도 10개의 알려진 성숙하고 제대로 작동하는 [150][failed verification][citation needed]Galium 3D 드라이버가 있습니다.Nouveau 팀이라는 이름의 Nvidia 그래픽 카드용 오픈 소스 드라이버는 Galium 3D [139][151]프레임워크를 사용하여 드라이버를 개발합니다.
2008-07-13: Nouveau 개발은 Galium 프레임워크 전용으로 이루어집니다.오래된 DRI 드라이버가 [152]Freedesktop.org의 Mesa 저장소의 마스터브런치에서 삭제되었습니다.
2009년 2월 11일:갈륨-0.2 지점은 [153]메사의 메인라인 마스터 지점으로 통합되었습니다.개발은 메사 본선에서 이루어집니다.
2009-02-25: Galium3D는 FreeB뿐만 아니라 Linux에서도 실행 가능SD [154]커널
2009-05-01:Tungsten Graphics의 Jack Rusin은 OpenVG 상태 트래커를 Mesa 3D에 [155]추가했습니다.이것에 의해, Galium 3D 베이스의 드라이버로 스케일러블 벡터 그래픽스를 하드웨어 가속화할 수 있습니다.
2009-07-17: Mesa3D 7.5가 출시되었으며, 갈륨3D가 [156]포함된 첫 번째 버전입니다.
2010-09-10: Evergreen GPU의 초기 지원이 r600g [157]드라이버에 추가되었습니다.
2010-09-21:ATI 하드웨어용 Galium 3D 드라이버는 R300-R500 및 R600-Evergreen GPU용으로 각각 r300g 및 r600g으로 알려져 있습니다.
2010-09-21: Direct3D 10 및 [158]11을 지원하기 위한 주요 커밋이 이루어졌습니다.따라서 Linux 시스템에서 최신 Direct3D 구현을 사용할 수 있게 될 수도 있습니다.
2011-11-30: Intel 965g 및 Cell Galium 드라이버가 Mesa의 마스터브런치에서 유지보수되지 않고 파손되어 [159][160]삭제되었습니다.
2013-11-30: OpenGL 3.2, 3.3 및 OpenCL 1.0+ 탑재 Mesa 10
2014-11-18: Direct3D [161]9를 지원하기 위한 코드에 대한 주요 커밋이 이루어졌습니다.
2015-09-15: OpenGL 4.0, 4.1 및 OpenCL 1.2 탑재 Mesa 11 (미완료)
2015-12-15: OpenGL 3.3을 탑재한 가상 머신용 Mesa 11.1 드라이버 VIRGL
2016-07-08: OpenGL 4.2, 4.3 및 Vulkan 1.0 탑재 Mesa 12 (인텔 ANV 및 AMD RADV)
2016-11-01: OpenGL 4.4 및 OpenGL ES 3.2 탑재 Mesa 13
2017-02-13: OpenGL 4.5 탑재 Mesa 17.0 및 OpenGL 3.0 및 3.1 탑재 freedreno 드라이버
2017-05-10: 인텔 Ivy Bridge용 Mesa 17.1 OpenGL 4.2+ (Windows용 인텔 드라이버 이상, 인텔 Open SWR Rasterizer용 OpenGL 3.3+ (대규모 시뮬레이션 클러스터 컴퓨터에 중요)
2017-12-08: Mesa 17.3 AMD Vulkan 드라이버 RADV는 Vulkan 1.0의 Kronos 테스트에 완전 준거
2018-05-18: Mesa 18.1과 Vulkan 1.1(인텔 ANV 및 AMD RADV)
2018-09-07: 소프트 드라이버 VIRGL용 OpenGL 4.3 탑재 Mesa 18.2(클라우드 클러스터 컴퓨터의 가상 머신에 중요), 아드레노 A5xx 탑재 Freedreno용 OpenGL ES 3.1
2019-06-11: Mesa 19.1은 8세대 이상의 iGPU용 인텔 차세대 'iris' 그래픽 드라이버와 함께 출시되었습니다.
2019-12-11: Mesa 19.3은 7세대 이상 인텔 i965 및 Iris Gen 8+ 옵션 탑재 OpenGL 4.6 출시
2020-03-18: Mesa 20.0은 OpenGL 4.6과 AMD GCN 및 Vulkan 1.2를 인텔용으로 출시
2020-05-27: Mesa 20.1은 클로버에서 OpenCL을 위한 NIR 벡터화 지원 및 공유 가상 메모리 지원 출시
2020-11-30: 클로버에서 OpenCL 1.2 완전 지원 Mesa 20.3
2021-03-11: Mesa 21.0의 "D3D12" 초기 지원: OpenGL 3.3+ 탑재 Windows 10에서의 WSL2용 Direct 3D 12, ARM Freereno:OpenGL 3.3 이상
2021-05-05: Mesa 21.1 Google Virt 초기 지원I/O GPU 드라이버의 「Venus」(Vulkan 1.2+ 탑재), Zink: OpenGL 4.6+, OpenGL ES 3.1+, Qualcomm Turnip, Lavapipe:벌칸 1.1+
2021-08-04: Mesa 21.2 새로운 인텔 Crocus OpenGL 4.6 드라이버의 초기 지원(구 i965용 인텔 Sandy Bridge to Haswell), ARM Panfrost용 Vulkan 드라이버 panVK
2022-03-09: Mesa 22.0, Intel Anvil 및 AMD RADV에 의한 Vulkan 1.3 완전 지원
성능
역사
이 섹션은 확장해야 합니다.추가가 가능합니다. (2014년 9월) |
프로젝트 개시자 Brian Paul은 그래픽 애호가였습니다.그는 OpenGL API를 사용하여 간단한 3D 그래픽 라이브러리를 구현하면 재미있을 것이라고 생각했습니다. 그러면 VOGL(매우 평범한 GLike Library)[163] 대신 사용할 수 있습니다.1993년부터, 그는 1995년 [164]2월에 소프트웨어를 인터넷에 공개하기 전까지 18개월의 파트 타임 개발에 소비했다.그 소프트웨어는 호평을 받았고 사람들은 그 개발에 기여하기 시작했다.Mesa는 모든 3D 컴퓨터 그래픽을 CPU로 렌더링하는 것으로 시작했지만, Mesa의 내부 아키텍처는 그래픽 프로세서가 가속하는 3D 렌더링에 연결할 수 있도록 개방되어 있었습니다.이 첫 번째 단계에서는 디스플레이 서버에서 간접적으로 렌더링이 이루어졌으며, 약간의 오버헤드와 현저한 속도가 이론적인 최대값에 뒤떨어졌습니다.Diamond Monster 3D는 Voodoo Graphics 칩셋을 사용하여 Mesa에서 최초로 지원되는 3D 하드웨어 장치 중 하나였습니다.
1997년 Mesa에 최초의 진정한 그래픽 하드웨어 지원이 추가되었으며, 당시 새로운 3dfx Voodoo I/II 그래픽 카드와 그 [112]후속 제품들을 위한 Glide API를 기반으로 합니다.글라이드를 액셀러레이션 레이어로 사용하는 것의 가장 큰 문제는 글라이드가 컴퓨터 게임에만 적합한 풀스크린을 실행하는 습관이었다.또, Glide가 화면 메모리의 잠금을 취득했기 때문에, 표시 서버는 다른 GUI 태스크를 실행할 [165]수 없게 되었다.
「 」를 참조해 주세요.
레퍼런스
- ^ Marshall, David (16 December 2008). "VMware's year end acquisition of Tungsten Graphics". InfoWorld. Retrieved 6 August 2011.
- ^ "[ANNOUNCE] mesa 22.1.3".
- ^ "Improve OpenGL support for the Linux Graphics Drivers - Mesa". Indiegogo. 11 December 2013. Retrieved 21 January 2015.
- ^ "AMD exploring new Linux driver Strategy". 22 March 2014. Retrieved 23 March 2014.
- ^ "Direct3D 9 Support Released For Linux Via Gallium3D, Running Games - Phoronix". Phoronix.com. Retrieved 1 August 2018.
- ^ "mesa/mesa - The Mesa 3D Graphics Library". Retrieved 2 November 2016.
- ^ "The OpenGL vs Mesa matrix". 25 March 2015. Retrieved 29 March 2015.
- ^ "Mesa 11.0 Has Been Branched, The Release March Begins". 22 August 2015. Retrieved 22 August 2015.
- ^ a b "Archived copy". Archived from the original on 4 November 2016. Retrieved 3 November 2016.
{{cite web}}
: CS1 maint: 제목으로 아카이브된 복사(링크) - ^ a b "Mesa 17.0.0 Officially Released". Phoronix. 13 February 2017. Retrieved 13 February 2017.
- ^ "mesa/mesa - The Mesa 3D Graphics Library". Cgit.freedesktop.org. Retrieved 1 August 2018.
- ^ "The Big Changes, Improvements of Mesa 17.0 - Phoronix". Phoronix.com. Retrieved 1 August 2018.
- ^ "mesa/mesa - The Mesa 3D Graphics Library". Cgit.freedesktop.org. Retrieved 1 August 2018.
- ^ "Program" (PDF). www.x.org. 2016.
- ^ "mesa/mesa - The Mesa 3D Graphics Library". Cgit.freedesktop.org. Retrieved 1 August 2018.
- ^ "A Look at the Huge Performance Boosts With Nouveau Mesa 17.0-devel on Maxwell - Phoronix". Phoronix.com. Retrieved 1 August 2018.
- ^ "Khronos Open-Sources OpenGL / OpenGL ES Conformance Tests - Phoronix". Phoronix.com. Retrieved 1 August 2018.
- ^ "The Grand Features of Mesa 17.1: Vega, RadeonSI Shader Cache, Maturing Vulkan, New OpenGL Extensions - Phoronix". Phoronix.com. Retrieved 1 August 2018.
- ^ "Mesa Release Notes". Mesa3d.org. Retrieved 1 August 2018.
- ^ "The OpenGL vs Mesa matrix". mesamatrix.net. Retrieved 31 July 2016.
- ^ "Title" (PDF). Retrieved 1 August 2018.
- ^ "Event listing" (PDF). www.x.org.
- ^ "Mesa 17.3 Features - Vulkan Updates, Better Performance - Phoronix". Phoronix.com. Retrieved 1 August 2018.
- ^ a b c d e f g h i j k l m n "Release calendar". Mesa3d.org. Retrieved 1 August 2018.
- ^ "Mesa 18.0 Features Include Many OpenGL/Vulkan Improvements, Intel Shader Cache & Extras - Phoronix". Phoronix.com. Retrieved 1 August 2018.
- ^ a b "Mesa 18.2 Is Releasing Soon With Many OpenGL / Vulkan Driver Improvements - Phoronix". www.phoronix.com.
- ^ "The Shiny New Features of Mesa 18.3 For Open-Source Intel / Radeon Graphics Drivers - Phoronix". www.phoronix.com.
- ^ "Mesa Made Massive Progress In 2018 On Open-Source Vulkan / OpenGL Drivers - Phoronix". www.phoronix.com.
- ^ "The New Features on Deck for Mesa 19.0: Vulkan Additions, FreeSync, Soft FP64 & More - Phoronix".
- ^ "Mesa 18.2 vs. 18.3 vs. 19.0 January Benchmarks for RadeonSI/RADV - Phoronix".
- ^ "Running the RadeonSI NIR Back-End with Mesa 19.1 Git - Phoronix".
- ^ "Intel's Iris Gallium3D Driver Now Has Better OpenGL Compatibility Profile Support - Phoronix".
- ^ "Mesa 19.3 is Introducing a Lot of Open-Source OpenGL + Vulkan Driver Improvements - Phoronix".
- ^ "Mesa 20.0-rc1 Released with Intel Gallium3D Default, OpenGL 4.6 for RadeonSI, Vulkan 1.2 - Phoronix".
- ^ "Mesa 20.0 Released with Big Improvements for Intel, AMD Radeon Vulkan/OpenGL - Phoronix".
- ^ a b "Mesa 20.1 Features Include Big Improvements for Open-Source Intel, Radeon Graphics Drivers - Phoronix".
- ^ "Zink is Now OpenGL 3.0 Complete for Generic GL over Vulkan - Phoronix".
- ^ "Mesa 20.2 Development Ends After Many New Features Land - Phoronix".
- ^ "Mesa 20.2's Nouveau Enables HMM, OpenCL SVM Now Supported - Phoronix".
- ^ "V3DV Developers Lay Out Plans for Upstreaming the Raspberry Pi 4 Vulkan Driver in Mesa - Phoronix".
- ^ a b c "OpenCL 1.2 Support Merged for Mesa's Gallium3D Clover While OpenCL 3.0 is Being Tackled - Phoronix".
- ^ "Zink in Mesa 20.3 Now Hits OpenGL 3.3, Can Run Blender with This OpenGL-on-Vulkan - Phoronix".
- ^ "OpenGL 4.5 Now Enabled for LLVMpipe with Mesa 20.3, to be Back-Ported for 20.2 - Phoronix".
- ^ "VALLIUM Merged into Mesa 20.3 as Vulkan Front-End to Gallium3D - Phoronix".
- ^ a b "Mesa 21.0 Merges Direct3D 12 Gallium3D Driver - Phoronix".
- ^ https://xdc2020.x.org/event/9/contributions/621/attachments/701/1297/XDC_-_Mesa_for_Mapping_Layers.pdf[베어 URL PDF]
- ^ "Microsoft + Collabora Working to Map OpenGL/OpenCL over DirectX 12 - Phoronix".
- ^ "Mesa Now 2~5x Faster for SPECViewPerf Following OpenGL Optimizations - Phoronix".
- ^ "Mesa 21.0 Has Many New Features Especially for Radeon Open-Source Graphics - Phoronix".
- ^ "Mesa 21.1-rc1 Released with RADV Optimizations, Faster Zink, Many Other New Features - Phoronix".
- ^ "Mesa%2021.1 - Phoronix".
- ^ a b c "Google's VirtIO-GPU "Venus" Vulkan Driver Merged into Mesa 21.1 - Phoronix".
- ^ "Mesa 21.2 Released with New Intel Crocus Driver, PanVK, Early M1 Code - Phoronix".
- ^ "Proposal Raised for Dropping Mesa's Classic OpenGL Drivers from Mainline This Year - Phoronix".
- ^ "Crocus Gallium3D Nears Mainline Mesa for Gallium3D i965 Through Haswell Graphics - Phoronix".
- ^ "Mesa 22.0-rc1 Released with Many Radeon & Intel Linux GPU Driver Features, Vulkan 1.3".
- ^ "Mesa's "Dozen" Close to Providing Vulkan over Direct3D 12".
- ^ "Release Notes — the Mesa 3D Graphics Library latest documentation".
- ^ "Mesa 22.1 Released - Phoronix".
- ^ Larabel, Michael (4 March 2015). "OpenVG Support Stripped From Gallium3D". Phoronix. Retrieved 11 July 2015.
- ^ https://gitlab.freedesktop.org/mesa/mesa/commit/3acd7a34ab05b87521b74f626ec637e7fdcc6595
- ^ "latest patches to "nine" state tracker". Cgit.freedesktop.org. 4 February 2016.
- ^ Larabel, Michael (14 December 2014). "Mesa 10.4 Officially Released With Direct3D 9 State Tracker". Phoronix. Retrieved 11 July 2015.
- ^ "Mesa 22.0 Released - Phoronix".
- ^ "Mesa 21.3 Released - Phoronix".
- ^ "Mesa 21.2 Released with New Intel Crocus Driver, PanVK, Early M1 Code - Phoronix".
- ^ "Mesa 21.1 Released with RADV Variable Rate Shading, More Intel Vulkan Improvements - Phoronix".
- ^ "Mesa 21.0 Released with Numerous RADV Improvements, New Vulkan Extensions, Many Fixes - Phoronix".
- ^ "Mesa 20.3 Released with Big Improvements for Open-Source Graphics Drivers - Phoronix".
- ^ "Mesa 20.2.2 Released with a Random Assortment of Fixes - Phoronix".
- ^ "RadeonSI NIR Benchmarks Show Great Progress with Mesa 20.0 - Phoronix".
- ^ "Mesa 19.3-RC1 Released with OpenGL 4.6 for Intel, Many Vulkan Driver Improvements - Phoronix".
- ^ "Mesa 19.3 is Introducing a Lot of Open-Source OpenGL + Vulkan Driver Improvements - Phoronix".
- ^ "Mesa 18.0 Should Arrive Today With Many Vulkan/OpenGL Driver Improvements - Phoronix". Phoronix.com. Retrieved 1 August 2018.
- ^ "GalliumCompute". Dri.freedesktop.org. Retrieved 24 January 2019.
- ^ "Clover Status Update" (PDF). Retrieved 27 March 2020.
- ^ "[Mesa-announce] mesa 17.0.0". Retrieved 13 February 2017.
- ^ "[Mesa-announce] mesa 13.0.0". Retrieved 2 November 2016.
- ^ a b "Mesa 12.0 Released With OpenGL 4.3 Support, Intel Vulkan & Many Other Features". 8 July 2016. Retrieved 8 July 2016.
- ^ "[Mesa-announce] Mesa 11.2.0". Retrieved 4 April 2016.
- ^ "[Mesa-announce] Mesa 11.1.0". Retrieved 15 December 2015.
- ^ "[Mesa-announce] Mesa 11.0.0". Retrieved 26 September 2015.
- ^ "[Mesa-announce] Mesa 10.6.0". Retrieved 15 June 2015.
- ^ Larabel, Michael (26 October 2013). "Features To Be Found in Mesa 10.0". Phoronix.
- ^ "[Mesa-announce] Mesa 10.5.0". Retrieved 7 March 2015.
- ^ "[Mesa-announce] Mesa 10.4.0 released". Retrieved 7 March 2015.
- ^ "[Mesa-announce] Mesa 10.3 released". Retrieved 7 March 2015.
- ^ "[Mesa-announce] Mesa 10.2 released". Retrieved 7 March 2015.
- ^ "[Mesa-announce] Mesa 10.1 released". Retrieved 7 March 2015.
- ^ "[Mesa-announce] Mesa 10.0 released". Retrieved 7 March 2015.
- ^ "Vulkan 1.3 Released with Dynamic Rendering in Core, New Roadmap Guidance for Modern GPUs".
- ^ "Program" (PDF). www.x.org.
- ^ "Radeon Vulkan Driver Added To Mesa, Fresh Radeon Vulkan vs. OpenGL Benchmarks + AMDGPU-PRO - Phoronix". Phoronix.com. Retrieved 1 August 2018.
- ^ a b "Vulkan Virgl Has Kicked Off For Supporting This Graphics/Compute API Within VMs - Phoronix". www.phoronix.com.
- ^ "Lavapipe CPU-Based Vulkan Ported to Windows - Phoronix".
- ^ "The Open-Source Qualcomm "TURNIP" Vulkan Driver Adds Important Performance Feature - Phoronix".
- ^ "TURNIP Vulkan Driver up and Running on Qualcomm's KGSL - Phoronix".
- ^ "Raspberry Pi 4 Vulkan Driver "V3DV" Merged into Mesa 20.3 - Phoronix".
- ^ "PanVK Pulls Back from Advertising Vulkan 1.1 for Now".
- ^ "Bringing Android explicit fencing to the mainline". LWN.net. 5 October 2016.
- ^ "libgbm in the Debian repositories". Packages.debian.org.
- ^ "Enabling Alternative Window Systems with a non-Mesa Graphics Driver Implementation". X.org.
- ^ "NVIDIA Wants Feedback On Its Device Memory Allocator Project". Phoronix.
- ^ "Nouveau Video Acceleration". freedesktop.org.
- ^ "Radeon Feature Matrix". freedesktop.org.
- ^ Toral, Iago (8 August 2014). "Diving into Mesa". Retrieved 19 May 2016.
- ^ "Direct Rendering Infrastructure Status Page". freedesktop.org.
- ^ "How to improve gaming performance on your Linux machine - APC". Apcmag.com. 25 July 2013. Retrieved 1 August 2018.
- ^ "Linux: Mesa, Gallium3D, Nouveau and NVIDIA Drivers, OpenGL Test (GTX 280, GTX 480, GTX 580) – Geeks3D". Geeks3d.com. Retrieved 1 August 2018.
- ^ "Nouveau Driver Remains Much Slower Than NVIDIA's Official Driver - Phoronix". Phoronix.com. Retrieved 1 August 2018.
- ^ "Intel/NVIDIA/AMD Compete on Open/Closed Source Linux GPU Driver Performance - Phoronix". Phoronix.com. Retrieved 1 August 2018.
- ^ a b c Paul, Brian (10 August 2000). "Introduction to the Direct Rendering Infrastructure". Dri.sourceforge.net. Retrieved 25 January 2012.
- ^ "DRI2". X.org. Archived from the original on 16 April 2013. Retrieved 25 January 2012.
- ^ "DRI3 and Present [LWN.net]". lwn.net. Retrieved 1 August 2018.
- ^ "[PATCH 0/6] Add DRI3000 support to core and i965 drivers". Lists.freedesktop.org. Retrieved 1 August 2018.
- ^ "xorg-x11-drv-intel-2.99.917-19.20151206.fc23 (re)enabled dri3 by default - kde - Fedora Mailing-Lists". lists.fedoraproject.org. Retrieved 3 December 2016.
- ^ "Radeon-AMDGPU-1.19-Updates". Google.de. Retrieved 3 December 2016.
- ^ "LLVMpipe: OpenGL With Gallium3D on Your CPU". Phoronix.com. 30 April 2010. Retrieved 4 November 2014.
- ^ "llvmpipe". mesa3d.org. Retrieved 8 June 2015.
- ^ "OpenSWR". openswr.org. Retrieved 1 August 2018.
- ^ "Mesamatrix: The OpenGL vs Mesa matrix". mesamatrix.net. Retrieved 1 August 2018.
- ^ "OpenSWR". openswr.org. Retrieved 1 August 2018.
- ^ "Archived copy". Archived from the original on 28 August 2018. Retrieved 28 August 2018.
{{cite web}}
: CS1 maint: 제목으로 아카이브된 복사(링크) - ^ "Tracking Mesa's VirGL OpenGL Features - Phoronix". www.phoronix.com.
- ^ "Mesa's VirGL Now Has OpenGL 4.2 Support To Offer Guest VMs - Phoronix". www.phoronix.com.
- ^ "The Current Performance of Virgl3D, Future Plans - Phoronix". www.phoronix.com.
- ^ "Archived copy" (PDF). Archived from the original (PDF) on 1 October 2018. Retrieved 13 December 2018.
{{cite web}}
: CS1 maint: 제목으로 아카이브된 복사(링크) - ^ https://archive.fosdem.org/2019/schedule/event/virtual_gpu/attachments/slides/3353/export/events/attachments/virtual_gpu/slides/3353/Virgl_Presentation_FOSDEM2019.pdf[베어 URL PDF]
- ^ "DRI megadrivers". X.org. 25 September 2013.
- ^ "VDPAU & XvMC state trackers are now separate libraries". Phoronix.com. 23 June 2014.
- ^ "Introduction — NIR 0.0.1 documentation".
- ^ "NIR: A new compiler IR for Mesa".
- ^ "Mesa Prepares to Drop Old GLSL-To-TGSI - Big Code Removal, Win for Performance & Fixes".
- ^ "Build configuration file". cgit.freedesktop.org. Gallium documentation.
- ^ Fonseca, José (27 April 2008). "Gallium3D: Introduction". Retrieved 20 June 2014.
- ^ Fonseca, José. "MESA3D.org: Introduction". Retrieved 28 October 2016.
- ^ "Gallium3D Now in Mainline Mesa Code-Base!". Phoronix. 11 February 2009. Retrieved 26 October 2010.
- ^ "The state of Nouveau, part 2". LWN.net. 26 February 2008. Retrieved 7 March 2008.
- ^ a b "Nouveau Companion 36". Nouveau.freedesktop.org. 7 March 2008. Archived from the original on 7 March 2013. Retrieved 1 April 2008.
- ^ "ATI R300 Gallium3D DRI Support Is "Done"". Phoronix. 9 November 2009. Retrieved 15 November 2010.
- ^ "Radeon "R600g" Gallium3D Driver Merged To [Mesa] Master". Phoronix. 27 May 2010. Retrieved 26 October 2010.
- ^ "X.Org Wiki GalliumStatus". Xorg. 22 September 2010. Retrieved 7 December 2010.
- ^ "iris: Add a new experimental Gallium driver for Intel Gen8+ GPUs (!283) · Merge Requests · Mesa / mesa". GitLab. Retrieved 21 September 2019.
- ^ "TG-Gallium3D". Tungsten Graphics. Archived from the original on 3 May 2008. Retrieved 1 April 2008.
- ^ Rusin, Zack (6 February 2008). "GPGPU". Retrieved 1 April 2008.
- ^ Rusin, Zack (7 February 2008). "OpenVG and accelerating 2D". Retrieved 1 April 2008.
- ^ "DRI2". 4 October 2007. Archived from the original on 4 July 2008. Retrieved 1 April 2008.
- ^ Rusin, Zack (2 November 2007). "Gallium3D LLVM". Retrieved 1 April 2008.
- ^ Marshall, David (16 December 2008). "VMware's year end acquisition of Tungsten Graphics". InfoWorld.
- ^ "Gallium". Freedesktop.org. 2 November 2011. Retrieved 24 August 2012.
- ^ "Nouveau Companion 37". Nouveau.freedesktop.org. 21 March 2008. Archived from the original on 8 February 2012. Retrieved 1 April 2008.
- ^ "nouveau: say goodbye to the old DRI driver... (cgit on FDO)". Cgit.freedesktop.org. 13 July 2008.
- ^ "Gallium3D Now in Mainline Mesa Code-Base!". Phoronix.com. 11 February 2009.
- ^ Larabel, Michael (25 February 2009). "Gallium3D, EGL Now Buildable on FreeBSD". Phoronix.
- ^ "OpenVG state tracker is in Mesa 3D". Sourceforge.net. 1 May 2009.
- ^ "Mesa 7.5 Release Notes / 17 July 2009". Mesa3d.org. 17 July 2009. Archived from the original on 13 June 2010. Retrieved 12 September 2017.
- ^ "r600g: add initial evergreen support (cgit on FDO)". Cgit.freedesktop.org. 10 September 2010.
- ^ "d3d1x: add new Direct3D 10/11 COM state tracker for Gallium". Cgit.freedesktop.org. 21 September 2010.
- ^ Larabel, Michael (30 November 2011). "The Gallium3D Intel 965 Driver Gets Dropped". Phoronix. p. 1. Retrieved 1 December 2011.
- ^ Larabel, Michael (30 November 2011). "The Gallium3D Cell Driver Gets Dropped Too". Phoronix. p. 1. Retrieved 1 December 2011.
- ^ "nine: Add state tracker nine for Direct3D9 (v3)". Cgit.freedesktop.org. 18 November 2014.
- ^ "Mesa 19.1 Released With Experimental Intel Gallium3D, Other New GL/VLK Drivers Too - Phoronix". www.phoronix.com. Retrieved 21 September 2019.
- ^ "Mesa Introduction". Mesa Team. Retrieved 8 June 2015.
- ^ "Project History". Mesa Documentation. Retrieved 11 March 2021.
- ^ "What's the relationship between Glide and DRI?". dri.freedesktop.org. Retrieved 25 January 2012.
외부 링크
- 공식 웹사이트
- Edge, Jake (October 2013). "The history of Mesa".
갈륨3외부 링크d
- freedesktop.org - Gallium3D, an article on the current state of Gallium3D
- Fonseca, José (April 2008), Introduction into Gallium3D
- Rusin, Zack (21 September 2007), Gallium3D
- Corbet, Jonathan (November 2007), Memory management for graphics processors
- Generic GPU-Accelerated Video Decoding, Google Summer of Code 2008 project using Gallium, archived from the original on 31 July 2008
- Rusin, Zack (2008), Gallium3D: Graphics Done Right (PDF) (presentation), Akademy
- Rusin, Zack (2008), Gallium3D: Graphics Done Right (presentation), Akademy, archived from the original (video) on 1 January 2011
- Update on Gallium3D ports to AROS and Haiku (PDF), FOSDEM 2010, 7 February 2010
사용자 모드 | 사용자 응용 프로그램 | bash, LibreOffice, GIMP, Blender, A.D 0, Mozilla Firefox, ... | ||||
---|---|---|---|---|---|---|
시스템 컴포넌트 | init 데몬: RC 열기, 실행, systemd... | 시스템 데몬: polkitd, smbd, sshd, udevd... | 창 관리자: X11, Wayland, SurfaceFlinger(Android) | 그래픽스: Mesa, AMD Catalyst... | 기타 라이브러리: GTK, Qt, EFL, SDL, SFML, FLTK, GNU 스텝... | |
C 표준 라이브러리 | fopen ,execv ,malloc ,memcpy ,localtime ,pthread_create ...(최대 2000개의 서브루틴)glibc는 고속, musl은 경량, uClibc는 임베디드 시스템을, 바이오닉은 Android용으로 작성되었습니다.모두 POSIX/SUS 호환을 목표로 하고 있습니다. | |||||
커널 모드 | Linux 커널 | stat ,splice ,dup ,read ,open ,ioctl ,write ,mmap ,close ,exit , 등(약 380개의 시스템콜)Linux 커널 시스템콜 인터페이스(SCI)는 POSIX/SUS 호환성을 목표로 하고 있습니다. | ||||
프로세스 스케줄링 서브시스템 | IPC 서브시스템 | 메모리 관리 서브시스템 | 가상 파일 서브시스템 | 네트워크 서브시스템 | ||
기타 컴포넌트: ALSA, DRI, evdev, klibc, LVM, 디바이스 매퍼, Linux Network Scheduler, Netfilter Linux 보안 모듈: SELinux, TOMOYO, AppArmor, Smack | ||||||
하드웨어(CPU, 메인 메모리, 데이터 스토리지 디바이스 등) |
- ^ "Admin Guide README". git.kernel.org.