คำสั่งเทอร์มินัลที่สามารถแสดงเวอร์ชั่น OpenGL คืออะไร?


94

ดังนั้นฉันต้องการทราบว่าเป็นรุ่น OpenGL ของฉันหรือไม่ ฉันสามารถเข้าถึง Ubuntu ผ่าน SSH ฉันจะใช้คำสั่งใด

คำตอบ:


121

ในการตรวจสอบเวอร์ชั่น OpenGL

glxinfo | grep "OpenGL version"

คุณจะได้รับผลลัพธ์ดังนี้

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

แก้ไข:

คุณอาจโชคดีขึ้นด้วย OpenGL สมัยใหม่เพียงแค่ grepping สำหรับ "version" แทนที่จะเป็น "OpenGL version" ที่ให้ความแตกต่างระหว่างคอร์และโปรไฟล์ที่เข้ากันได้รวมถึง GLSL และ GLES รุ่นต่างๆ:

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

โปรดสังเกตว่าเวอร์ชันจริงจะแสดงโดย "โปรไฟล์โปรไฟล์หลัก" (4.1) ในขณะที่ "รุ่น OpenGL" แสดงเป็น 3.0


6
ระวัง! glxinfo กำลังบอกคุณถึงเวอร์ชั่นของ OpenGL ที่ใช้โดย DISPLAY ของคุณไม่ใช่เครื่องระยะไกล! อย่างไรก็ตามมันจะบอกรุ่น GLX ของเครื่องระยะไกล (บิต "ไคลเอนต์")
รวย

และถ้าคุณได้รับการ์ดที่ถูกต้อง แต่เวอร์ชันของ OpenGL ผิดอาจเป็นไดรเวอร์นูโว / โอเพ่นซอร์สไม่ว่าจะเป็นบัญชีดำหรือถอนการติดตั้ง
วิศวกร

1
ฉันได้ทำการแก้ไขบางอย่างเพื่อให้สามารถพบข้อมูลที่ดีขึ้นด้วยรุ่น OpenGL สมัยใหม่ที่นำเสนอหลายโปรไฟล์โดยเฉพาะอย่างยิ่งเนื่องจากนี่คือผลลัพธ์สูงสุดในการค้นหาโดย Google สำหรับ "Linux check opengl version"
Taywee

5
หมายเหตุ: ใน Ubuntu 16.04 glxinfoจะไม่สามารถใช้งานได้ตามค่าเริ่มต้น เพื่อให้สามารถใช้งานได้คุณจะต้องติดตั้งmesa-utilsแพคเกจ
starleaf1

1
@frank ดูคำตอบด้านล่างโดย thomasmichaelwallace ในส่วน Library Development เมื่อคุณเรียกใช้ไคลเอนต์ openGL บนเครื่องรีโมตไคลเอนต์ระยะไกลจะใช้รีโมตไลบรารี่ แต่จะแสดงบนเซิร์ฟเวอร์ของคุณดังนั้นมันจึงค่อนข้างสับสนตลอดเวลา
Rich

19

ขึ้นอยู่กับสิ่งที่คุณกำลังมองหา:

การใช้งาน Open GL

คุณสามารถใช้ glxinfo จากแพ็คเกจ mesa-utils:

sudo apt-get install mesa-utils

glxinfo | grep "OpenGL version"

ห้องสมุดพัฒนา

สิ่งนี้ขึ้นอยู่กับ

dpkg -s [package name]

จะแจ้งข้อมูลเวอร์ชั่น ฯลฯ ของแพ็คเกจใด ๆ

แต่คุณจะต้องรู้ว่าส่วนใด / การใช้งานเฉพาะของ opengl ที่คุณสนใจฉันสงสัยว่าสำหรับคุณมันจะเป็น:

dpkg -s libglu1-mesa

14

หมายเหตุ:ฉันได้เพิ่มคำตอบนี้ในภายหลังเพราะไม่มีคำตอบที่มีอยู่ในด้านที่สำคัญเกี่ยวกับ ssh และจะให้ค่าทำให้เข้าใจผิดแก่ผู้ที่ทำตามคำแนะนำข้างต้น

  1. ใช้ X-forwardingเมื่อ ssh-ing ssh -Xนี้จะเปิดใช้งานด้วย

    โดยไม่ต้องส่งต่อ x:

    $ ssh MYCOMP
    $ glxinfo
    Error: unable to open display
    

    ด้วยการส่งต่อ 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:
    

    ฉันควรทราบที่นี่ที่ว่านี้เป็นทั้งกราฟิกการ์ดที่ไม่ถูกต้องและหมายเลขรุ่นที่ไม่ถูกต้อง ('ผิด' ในแง่ของสิ่งที่คุณคาดหวัง)

  2. ตั้งค่าDISPLAYตัวแปรเป็น:0เพื่ออนุญาตการเข้าถึงไดร์เวอร์ของการ์ดกราฟิกจากเซสชันระยะไกล

    $ 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:
    

    รายการนี้แสดงการ์ดกราฟิกที่ถูกต้อง (การ์ดหนึ่งบนคอมพิวเตอร์ระยะไกล) รวมถึงหมายเลขรุ่นที่ถูกต้อง


สำหรับผมแล้วมันเป็นโชคไม่ดีที่เกิดขึ้นในlocalhost:10.0 X Error of failed request: GLXBadContext
phil294

4

สำหรับผู้ที่ต้องการเพียงหมายเลขรุ่นเท่านั้นตัวอย่างเช่นเพื่อให้ในข้อโต้แย้งของโปรแกรมคุณสามารถใช้

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

หมายเหตุ: optirun glxinfo | awk '/OpenGL version/ {print $4}'หากคุณใช้ภมร


1

คุณสามารถรับข้อมูลโดยใช้คำสั่งต่อไปนี้:

DISPLAY=:0 glxgears -info | grep GL_VERSION

echos นี้คล้ายกับ:

GL_VERSION    = 3.3.0 NVIDIA 340.93

ลองโดยไม่ใช้DISPLAY=:0ในกรณีที่มีปัญหา คำสั่งglxgearsอยู่ในmesa-utilsแพ็คเกจซึ่งสามารถติดตั้งได้กับ:

sudo apt-get install mesa-utils

งานนี้สำหรับฉัน Freescale iMX6 Yocto poky 1.6.2
Jiu

0

หากคุณมีสิทธิ์เข้าถึงรูทไปยังคอมพิวเตอร์ระยะไกลที่ใช้ Ubuntu 16.04 คุณสามารถเรียกใช้ได้

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, open terminal และ type;

glxinfo | grep "OpenGL version"

คุณจะได้รับสิ่งนี้

OpenGL version string: 3.0 Mesa 17.2.2

หากคุณได้รับข้อผิดพลาดว่าโปรแกรม glxinfo ไม่พร้อมใช้งานคุณจะต้องป้อนคำสั่ง

sudo apt install mesa-utils
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.