GNU/Linux >> Belajar Linux >  >> Ubuntu

Memahami Versi Opengl Glxinfo?

Apa perbedaan antara semua string versi yang berbeda dalam output dari perintah glxinfo?

Saya sudah menanyakan ini di sini, tetapi tidak mendapatkan banyak tanggapan dan, bagaimanapun, tampaknya ada lebih banyak pertanyaan terkait di AskUbuntu.

Keluaran glxinfo|grep OpenGL berikut,

 glxinfo |grep Open
    Vendor: Intel Open Source Technology Center (0x8086)
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2) 
OpenGL core profile version string: 4.5 (Core Profile) Mesa 13.0.2
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 13.0.2
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 13.0.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
.

Mengapa "profil inti" 4.5, sedangkan string versi OpenGL adalah 3.0?

Jawaban yang Diterima:

OpenGL ES adalah subset dari spesifikasi OpenGL asli dan dirancang untuk sistem tertanam seperti ponsel pintar. Saya tidak 100% yakin mengapa nomor versi tidak sesuai, tetapi tidak. Versi terbaru adalah 4.5 untuk OpenGL dan 3.2 untuk OpenGL ES. Ini menjelaskan alasan bagian OpenGL ES dari output Anda. Dalam kasus Anda, Anda memiliki dukungan untuk versi terbaru OpenGL dan OpenGL ES.

Anda akan melihat bahwa entri OpenGL dan OpenGL ES memiliki string versi dan string versi bahasa bayangan. Sebelum OpenGL 3.3, nomor versi OpenGL dan nomor versi bahasa bayangan tidak cocok. Saya percaya ini adalah alasan mereka memiliki entri terpisah dalam output (karena mereka jelas dapat berbeda untuk perangkat keras yang lebih lama). Seperti yang terlihat pada keluaran Anda, nomor versi (4.5) cocok dengan versi bahasa bayangan (juga 4.5).

Bagian tersulit (dan bagian yang saya tidak yakin 100%) adalah “string versi OpenGL”.

Dari apa yang saya lihat di beberapa mesin yang sama sekali berbeda, ini tampaknya dibatasi pada versi 3.0. Versi bahasa shading untuk 3.0 adalah 1.3 jadi string versi bahasa shading masuk akal untuk versi OpenGL ini. Namun, mengapa versi dibatasi pada 3.0? Pikiran saya adalah sebagai berikut:

Versi 3.0 memperkenalkan penghentian (lihat tautan ini). Di sinilah dua profil terpisah berasal, "Inti" dan "Kompatibilitas". Setiap implementasi OpenGL hanya perlu mengimplementasikan spesifikasi "inti" agar valid.

Terkait:Mac OS X tidak bisa boot dari menu grub di Ubuntu Precise di Apple MBA (5,2)?

Jika Anda membaca catatan rilis Mesa untuk versi tertentu, Anda akan melihat pernyataan yang berkaitan dengan masalah profil inti/kompatibilitas ini. Berikut ini diambil dari catatan rilis untuk versi terbaru 17.0.0 di sini:

Mesa 17.0.0 implements the OpenGL 4.5 API, but the version reported by glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) / glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used. Some drivers don't support all the features required in OpenGL 4.5. OpenGL 4.5 is only available if requested at context creation because compatibility contexts are not supported.

Perhatikan bagian terakhir “OpenGL 4.5 hanya tersedia jika diminta pada pembuatan konteks karena konteks kompatibilitas tidak didukung” . Oleh karena itu, menurut saya "string versi OpenGL" adalah versi yang didukung untuk konteks profil "kompatibilitas" (atau dengan kata lain, untuk mendukung fitur yang tidak digunakan lagi sebelum versi 3.0).


Ubuntu
  1. Bagaimana Cara Menggunakan Dua Versi Anggur Yang Berbeda Pada Instalasi Yang Sama?

  2. Versi Paket yang Diperbarui?

  3. Tidak Dapat Mengupgrade Gnupg?

  1. Versi Xpra Di Ubuntu 16.04?

  2. Cara bekerja dengan beberapa versi java di Linux

  3. Memahami Versi RPM dan Skema Penamaan

  1. Cara Memeriksa Versi PHP

  2. Versi PHP dan MySQL mana yang digunakan VPS Anda?

  3. Memahami Cadangan Plesk Anda