Lệnh terminal có thể hiển thị phiên bản OpenGL là gì?


95

Vì vậy, tôi muốn tìm ra phiên bản OpenGL của mình. Tôi có quyền truy cập vào Ubuntu thông qua SSH. Lệnh nào tôi sẽ thực hiện?

Câu trả lời:


122

Để kiểm tra phiên bản OpenGL,

glxinfo | grep "OpenGL version"

Bạn sẽ nhận được đầu ra như sau,

glxinfo | grep "OpenGL version"
OpenGL version string: 1.4 (2.1 Mesa 7.7.1)

Biên tập:

Bạn có thể gặp may mắn hơn với OpenGL hiện đại chỉ cần grepping cho "phiên bản" thay vì "phiên bản OpenGL" với sự khác biệt giữa cấu hình lõi và cấu hình, cũng như các phiên bản GLSL và GLES khác nhau:

glxinfo | grep 'version'
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
    Max core profile version: 4.1
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.0
OpenGL core profile version string: 4.1 (Core Profile) Mesa 11.1.2
OpenGL core profile shading language version string: 4.10
OpenGL version string: 3.0 Mesa 11.1.2
OpenGL shading language version string: 1.30
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.1.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00

Lưu ý rằng phiên bản thực tế được trình bày bởi "phiên bản cấu hình lõi" (4.1), trong khi "phiên bản OpenGL" được trình bày là 3.0.


6
Cẩn thận! glxinfo đang cho bạn biết phiên bản OpenGL được sử dụng bởi HIỂN THỊ của bạn chứ không phải máy từ xa! Tuy nhiên, nó sẽ cho bạn biết phiên bản GLX của máy từ xa (các bit "máy khách").
Giàu

Và nếu bạn nhận đúng thẻ nhưng sai phiên bản OpenGL, thì đó có thể là trình điều khiển nguồn mở / không rõ ràng - có thể liệt kê danh sách đen hoặc gỡ cài đặt chúng.
Kỹ sư

1
Tôi đã thực hiện một số chỉnh sửa để có thể tìm thấy thông tin tốt hơn với các phiên bản OpenGL hiện đại có nhiều cấu hình, đặc biệt là đây là kết quả hàng đầu trên tìm kiếm của Google về "phiên bản Linux kiểm tra opengl".
Taywee

5
Lưu ý: Trong Ubuntu 16.04, glxinfokhông có sẵn theo mặc định. Để có thể sử dụng nó, bạn cần cài đặt mesa-utilsgói.
starleaf1

1
@frank Hãy xem câu trả lời dưới đây, bởi thomasmichaelwallace trong phần Thư viện phát triển. Khi bạn chạy ứng dụng khách openGL trên máy từ xa, máy khách từ xa sẽ sử dụng các thư viện từ xa, nhưng hiển thị trên máy chủ của bạn, do đó đôi lúc hơi khó hiểu
Rich

19

tùy thuộc vào những gì bạn đang tìm kiếm:

Thực hiện GL mở

Bạn có thể sử dụng glxinfo, từ gói mesa-utils:

sudo apt-get install mesa-utils

glxinfo | grep "OpenGL version"

Thư viện phát triển

điều này phụ thuộc một chút

dpkg -s [package name]

sẽ cho bạn biết thông tin phiên bản, vv của bất kỳ gói.

nhưng bạn sẽ cần biết phần cụ thể / triển khai, v.v. của opengl mà bạn quan tâm. Tôi nghi ngờ, đối với bạn, đó sẽ là:

dpkg -s libglu1-mesa

14

Lưu ý: Tôi đã thêm câu trả lời này vào một ngày sau đó, bởi vì không có câu trả lời nào hiện có đề cập đến một khía cạnh quan trọng liên quan đến ssh và sẽ đưa ra các giá trị sai lệch cho những người làm theo các hướng dẫn trên.

  1. Sử dụng chuyển tiếp X khi ssh-ing. Điều này được kích hoạt với ssh -X.

    Không có chuyển tiếp x:

    $ ssh MYCOMP
    $ glxinfo
    Error: unable to open display
    

    Với chuyển tiếp x:

    $ ssh -X MYCOMP
    $ glxinfo | grep -i opengl
    OpenGL vendor string: NVIDIA Corporation
    OpenGL renderer string: GeForce 8800 GT/PCIe/SSE2
    OpenGL version string: 2.1.2 NVIDIA 310.44
    OpenGL shading language version string: 1.20 NVIDIA via Cg compiler
    OpenGL extensions:
    

    Tôi nên lưu ý ở đây rằng đây là cả card đồ họa saisố phiên bản sai . ('Sai' về những gì bạn mong đợi).

  2. Đặt DISPLAYbiến thành:0 , để cho phép truy cập vào trình điều khiển của card đồ họa từ phiên từ xa.

    $ ssh -X MYCOMP
    $ DISPLAY=:0
    $ glxinfo | grep -i opengl
     OpenGL vendor string: NVIDIA Corporation
     OpenGL renderer string: GeForce GTX 550 Ti/PCIe/SSE2
     OpenGL version string: 4.3.0 NVIDIA 310.14
     OpenGL shading language version string: 4.30 NVIDIA via Cg compiler
     OpenGL extensions:
    

    Điều này liệt kê đúng card đồ họa (cái trên máy tính từ xa), cũng như số phiên bản chính xác.


Đối với tôi, đó là localhost:10.0, không may dẫn đến X Error of failed request: GLXBadContext.
phil294

4

Đối với những người chỉ muốn số phiên bản, ví dụ để cung cấp cho nó trong đối số của một chương trình, bạn có thể sử dụng

$ glxinfo | awk '/OpenGL version/ {print $4}'
3.0

Lưu ý: optirun glxinfo | awk '/OpenGL version/ {print $4}'nếu bạn đang sử dụng ong nghệ


1

Bạn có thể lấy thông tin bằng cách chạy lệnh sau:

DISPLAY=:0 glxgears -info | grep GL_VERSION

Tiếng vang này giống như:

GL_VERSION    = 3.3.0 NVIDIA 340.93

Cũng cố gắng mà không có DISPLAY=:0vấn đề. Lệnh glxgearsnày nằm trong mesa-utilsgói có thể được cài đặt với:

sudo apt-get install mesa-utils

Công việc này cho tôi. Giải phóng iMX6 Yocto poky 1.6.2.
Jiu

0

Nếu bạn có quyền truy cập root vào một máy tính từ xa chạy Ubuntu 16.04, bạn có thể chạy

user@local_computer:~$ ssh root@remote.example.com
root@remote:~# export DISPLAY=:0
root@remote:~# export XAUTHORITY=/var/lib/lightdm/.Xauthority
root@remote:~# glxinfo | grep -i "OpenGL version"
OpenGL version string: 3.0 Mesa 11.2.0

0

Ubuntu 17.10, thiết bị đầu cuối mở và loại;

glxinfo | grep "OpenGL version"

Bạn sẽ nhận được một cái gì đó như thế này;

OpenGL version string: 3.0 Mesa 17.2.2

Nếu bạn nhận được một lỗi mà chương trình glxinfo không có sẵn, bạn sẽ cần phải nhập lệnh

sudo apt install mesa-utils
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.