2012-09-12 40 views
10

Chính xác thì có nghĩa là gì khi nói rằng Mesa là một triển khai OpenGL? Không phải trình điều khiển của thẻ Nvidia của tôi có thực hiện tất cả các chức năng OpenGL, v.v. không? Vì vậy, cho rằng các trình điều khiển của card Nvidia của tôi đang thực hiện các cuộc gọi Opengl và đưa chúng đến phần cứng, chính xác thì Mesa làm gì? Ai đó có thể làm rõ sự khác biệt giữa Mesa và người lái xe?Mesa khác với trình điều khiển OpenGL như thế nào?

Trả lời

14

Ai đó có thể làm rõ sự khác biệt giữa Mesa và trình điều khiển không?

Mesa cung cấp giao diện OpenGL phía máy khách cho trình điều khiển GPU nguồn mở dựa trên kiến ​​trúc DRI2/DRM. Hay nói cách khác: Nó cũng là một phần của tài xế.

Nếu bạn có trình điều khiển độc quyền từ NVidia hoặc AMD đã cài đặt, bạn không cần Mesa. Nếu bạn muốn sử dụng trình điều khiển nguồn mở (nouveau, radeon, radeonhd, intel), bạn cần Mesa.

1

Tôi tin LinuxQuestions.org thành viên diễn đàn geeman2.0 cung cấp một lời giải thích tốt cho vấn đề này:

OpenGL và Mesa là không thực sự hai sự lựa chọn riêng biệt, nhưng thay vì Mesa là một loại hình cụ thể của OpenGL.

OpenGL đơn giản là giao diện xác định tập hợp các chức năng tiêu chuẩn cần thiết để vẽ đồ họa 3D. Nó không liên quan đến mã thực tế mà làm cho các chức năng này xảy ra, nó chỉ xác định những gì các chức năng được gọi và những gì họ có nghĩa vụ phải làm.

Triển khai OpenGL cung cấp mã thực tế chạy các phương thức được chỉ định theo tiêu chuẩn OpenGL. Nếu không có cài đặt thực hiện, bạn không thể chạy bất kỳ chương trình opengl nào.

Mesa chỉ là một trong nhiều triển khai OpenGL và là tiêu chuẩn nhất được bao gồm trong bản phân phối Linux. Nó làm tất cả công việc trong phần mềm, đó là lý do tại sao nó chậm.

Khi bạn cài đặt trình điều khiển Nvidia hoặc ATI cho một cạc đồ họa lạ mắt, các trình điều khiển này cung cấp triển khai OpenGL mới chạy trên cạc đồ họa. Việc triển khai này sẽ thay thế cho triển khai Mesa, nhưng nó vẫn là một triển khai OpenGL. Nghĩa là, tất cả các trình điều khiển của Mesa/ATI/NVidia đều thực hiện cùng một tập hợp các chức năng, chúng chỉ làm theo các cách khác nhau, và tất cả chúng đều là OpenGL.

Source

Các vấn đề liên quan